Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
04.10.2020, 18:07
Лучший ответ
Выплачено: 182669 RUB
Интересно было бы глянуть на то, что вы называете "Все уже перепробовал".
04.10.2020, 18:49
Лучший ответ
Выплачено: 36 RUB
04.10.2020, 22:14
Лучший ответ
Выплачено: 182669 RUB
Сообщение от Skyrider60 Посмотреть сообщение
https://www.mql5.com/ru/docs/constan...ject/obj_hline
Не, ну где находится справочник и что в нем есть я знаю. Меня интересовал именно ваш код, в котором вы "все уже перепробовали".

Сообщение от Skyrider60 Посмотреть сообщение
У Вас есть работающий код?
Конечно есть. За 5 минут набросал скрипт прям по вашей хотелке. И от того кода, что в справочнике, он практически ничем не отличается.
MQL код:

//+------------------------------------------------------------------+
//| Test_HLineDraw.mq5 |
//| Copyright 2020, ir0407 at forexdengi.com |
//| https://forexdengi.com/members/6104-ir0407 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, ir0407 at forexdengi.com"
#property link "https://forexdengi.com/members/6104-ir0407"
#property version "1.00"

string LineName = "MyHLine";

//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- Получаем хай предыдущего дня
double LinePrice = GetDayHighPrice(1);
//--- сбросим значение ошибки
ResetLastError();
//--- создадим горизонтальную линию
long chart_ID = ChartID();
if(!ObjectCreate(chart_ID, LineName, OBJ_HLINE, 0, 0, LinePrice))
{
Print(__FUNCTION__, ": не удалось создать горизонтальную линию! Код ошибки = ", GetLastError());
return;
}
//--- установим цвет линии
ObjectSetInteger(chart_ID, LineName, OBJPROP_COLOR, clrRed);
//--- установим стиль отображения линии
ObjectSetInteger(chart_ID, LineName, OBJPROP_STYLE, STYLE_DASHDOT);
//--- разрешим выделять линию мышом
ObjectSetInteger(chart_ID, LineName, OBJPROP_SELECTABLE, true);
}

//+------------------------------------------------------------------+
double GetDayHighPrice(int DayIndex)
{
double Result = 0.0, DaysHigh[];
ArraySetAsSeries(DaysHigh, true);
int Copied = CopyHigh(Symbol(), PERIOD_D1, 0, DayIndex + 1, DaysHigh);
if(Copied > 0 && Copied > DayIndex) Result = DaysHigh[DayIndex];
return(Result);
}
04.10.2020, 22:48
Лучший ответ
Выплачено: 36 RUB
Как скрипт работает, но нужна эта функция в советнике.
04.10.2020, 23:07
Лучший ответ
Выплачено: 182669 RUB
Сообщение от Skyrider60 Посмотреть сообщение
Как скрипт работает, но нужна эта функция в советнике.
А какая разница?
05.10.2020, 00:06
Лучший ответ
Выплачено: 36 RUB
Есть разница, не работает в советнике. Скрипт, как советник не устанавливается.
  • #1 Свернуть

    Нарисовать линию в советнике MT5

    Подскажите, как правильно и просто нарисовать линию на графике в советнике для MT5, например, по хаю предыдущего дня. Все уже перепробовал, не работает в MT5.
    Прошу простой и рабочий способ, пожалуйста.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Интересно было бы глянуть на то, что вы называете "Все уже перепробовал".

    Комментарий

    • #3 Свернуть

      https://www.mql5.com/ru/docs/constan...ject/obj_hline

      У Вас есть работающий код?

      Комментарий

      • #4 Свернуть

        Сообщение от Skyrider60 Посмотреть сообщение
        https://www.mql5.com/ru/docs/constan...ject/obj_hline
        Не, ну где находится справочник и что в нем есть я знаю. Меня интересовал именно ваш код, в котором вы "все уже перепробовали".

        Сообщение от Skyrider60 Посмотреть сообщение
        У Вас есть работающий код?
        Конечно есть. За 5 минут набросал скрипт прям по вашей хотелке. И от того кода, что в справочнике, он практически ничем не отличается.
        MQL код:

        //+------------------------------------------------------------------+
        //| Test_HLineDraw.mq5 |
        //| Copyright 2020, ir0407 at forexdengi.com |
        //| https://forexdengi.com/members/6104-ir0407 |
        //+------------------------------------------------------------------+
        #property copyright "Copyright 2020, ir0407 at forexdengi.com"
        #property link "https://forexdengi.com/members/6104-ir0407"
        #property version "1.00"

        string LineName = "MyHLine";

        //+------------------------------------------------------------------+
        //| Script program start function |
        //+------------------------------------------------------------------+
        void OnStart()
        {
        //--- Получаем хай предыдущего дня
        double LinePrice = GetDayHighPrice(1);
        //--- сбросим значение ошибки
        ResetLastError();
        //--- создадим горизонтальную линию
        long chart_ID = ChartID();
        if(!ObjectCreate(chart_ID, LineName, OBJ_HLINE, 0, 0, LinePrice))
        {
        Print(__FUNCTION__, ": не удалось создать горизонтальную линию! Код ошибки = ", GetLastError());
        return;
        }
        //--- установим цвет линии
        ObjectSetInteger(chart_ID, LineName, OBJPROP_COLOR, clrRed);
        //--- установим стиль отображения линии
        ObjectSetInteger(chart_ID, LineName, OBJPROP_STYLE, STYLE_DASHDOT);
        //--- разрешим выделять линию мышом
        ObjectSetInteger(chart_ID, LineName, OBJPROP_SELECTABLE, true);
        }

        //+------------------------------------------------------------------+
        double GetDayHighPrice(int DayIndex)
        {
        double Result = 0.0, DaysHigh[];
        ArraySetAsSeries(DaysHigh, true);
        int Copied = CopyHigh(Symbol(), PERIOD_D1, 0, DayIndex + 1, DaysHigh);
        if(Copied > 0 && Copied > DayIndex) Result = DaysHigh[DayIndex];
        return(Result);
        }

        Комментарий

        • #5 Свернуть

          Как скрипт работает, но нужна эта функция в советнике.

          Комментарий

          • #6 Свернуть

            Сообщение от Skyrider60 Посмотреть сообщение
            Как скрипт работает, но нужна эта функция в советнике.
            А какая разница?

            Комментарий

            • #7 Свернуть

              Есть разница, не работает в советнике. Скрипт, как советник не устанавливается.

              Комментарий

              • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
              • #8 Свернуть

                Сообщение от Skyrider60 Посмотреть сообщение
                Скрипт, как советник не устанавливается.
                Скрипт и не должен устанавливаться, как советник. Разберитесь в чем разница между советником и скриптом. Оформите код в виде советника(измените название всего одной функции) и будет вам счастье.
                Сообщение от Skyrider60 Посмотреть сообщение
                Есть разница, не работает в советнике.
                Уважаемый. Рзница между советником и скриптом только лишь в том, что скрипт выполняется только один раз, не зависимо от прихода тиков, а советник запускается с каждым тиком. Только и всего. И код из этого скрипта, без каких либо малейших изменений, будет прекрасно работать и в советнике.

                Комментарий

                working...
                X