Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2309

 
Подскажите, пожалуйста, как пользоваться 

DRAW_FILLING

?

На примере подокна: как закрасить полностью подокно графика? В описании ничего не сказано. Открыл Ишимоку - так и не понял, как там облака зарисовываются


UPD

На ум приходит создание гистограммы до потолка одним цветом, но при увеличении масштаба начнутся прорезаться щели


UPD

#property indicator_label3  "Senkou Span A;Senkou Span B"


Судя по Ишимоку, нужно отдельной директивой указать в кавычках два имени буферов, между которыми будет зарисовка

 
Ivan Butko #:
Подскажите, пожалуйста, как пользоваться 

DRAW_FILLING

?

На примере подокна: как закрасить полностью подокно графика? В описании ничего не сказано. Открыл Ишимоку - так и не понял, как там облака зарисовываются


UPD

На ум приходит создание гистограммы до потолка одним цветом, но при увеличении масштаба начнутся прорезаться щели


UPD


Судя по Ишимоку, нужно отдельной директивой указать в кавычках два имени буферов, между которыми будет зарисовка


индикаторные буферы должны быть последовательны и два цвета заливки будут задавать их отношения (больший/меньший)

 
Maxim Kuznetsov #:


индикаторные буферы должны быть последовательны и два цвета заливки будут задавать их отношения (больший/меньший)

Точно. 

Благодарю Вас

 

Здравствуйте!

Подскажите,пожалуйста, что не так с кодом функции? 

Я так понимаю, не заполняется массив, т к. выводит в принте всякую галиматью вместо  значения переменной profit. Причем в цикле переменная принимает правильное значение, проверено принтом. А при выводе принтом в конце кода в массиве оказываются левые громадные числа.

 double antyMar(){

    double arrayProfit[10];

    ArrayInitialize(arrayProfit,0);

    for(int i=1; i<=8; i++)         

     {

      if(OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY)==true)

        {

         int Tip=OrderType();                   // Тип ордера

         if(Tip == OP_BUY || Tip == OP_SELL)

           {

            double profit = OrderProfit();

            Print("i= ",i," ArraySize(arrayProfit)= ",ArraySize(arrayProfit)," profit =",profit);

            ArrayFill(arrayProfit,i-1,1,profit);

             }

        }  

      }

         for(int i=0;i<ArraySize(arrayProfit);i++) printf("arrayProfit[%d] = %d",i,arrayProfit[i]); 

 

      return 1;   

  }
 
odyn #:

Здравствуйте!

Подскажите,пожалуйста, что не так с кодом функции? 

Я так понимаю, не заполняется массив, т к. выводит в принте всякую галиматью вместо  значения переменной profit. Причем в цикле переменная принимает правильное значение, проверено принтом. А при выводе принтом в конце кода в массиве оказываются левые громадные числа.

 double antyMar(){

    double arrayProfit[10];

    ArrayInitialize(arrayProfit,0);

    for(int i=1; i<=8; i++)         

     {

      if(OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY)==true)

        {

         int Tip=OrderType();                   // Тип ордера

         if(Tip == OP_BUY || Tip == OP_SELL)

           {

            double profit = OrderProfit();

            Print("i= ",i," ArraySize(arrayProfit)= ",ArraySize(arrayProfit)," profit =",profit);

            ArrayFill(arrayProfit,i-1,1,profit);

             }

        }  

      }

         for(int i=0;i<ArraySize(arrayProfit);i++) printf("arrayProfit[%d] = %d",i,arrayProfit[i]); 

 

      return 1;   

  }

1. Вставляйте код правильно, есть кнопка "</>"

2. У вас массив объявлен как double, а выводите вы его как целое (%d) https://www.mql5.com/ru/docs/common/printformat

3. Это не ошибка, но повод подумать: у вас функция объявлена как double, а возвращает целое "1". Есть смысл или поменять тип, или писать явно "1.0", чтобы показать, что это не ошибка, а так и задумано.

 
JRandomTrader #:

1. Вставляйте код правильно, есть кнопка "</>"

2. У вас массив объявлен как double, а выводите вы его как целое (%d) https://www.mql5.com/ru/docs/common/printformat

3. Это не ошибка, но повод подумать: у вас функция объявлена как double, а возвращает целое "1". Есть смысл или поменять тип, или писать явно "1.0", чтобы показать, что это не ошибка, а так и задумано.

Спасибо за ответ!

я поменял 1 на "1.0", но єто ожидаемо ничего не изменило в результате.

 
JRandomTrader #:
2. У вас массив объявлен как double, а выводите вы его как целое (%d) https://www.mql5.com/ru/docs/common/printformat

Да!! все заработало! спасибо!

 

Подскажите, пожалуйста, как перезапустить валидацию индикатора? 

Обычно секунду занимает. А тут исправил одну строчку (итерация лишняя была, уходил в бар с индексом -1 на MN1), отправил обновить, а валидация всё идёт и идёт... 

Простенький индикатор

UPD

Тут же соседний простой индикатор исправил тоже (забыл принт проверки убрать, чтобы не маячил в журнале), отправил на валидацию - через одну наносекунду уже опубликован.

UPD

Результат валидации
test on EURUSD,H1 (netting) tester process creation error [metatester64.exe][1455]; please check if it is blocked by antivirus software tester agent start erro
Какой-то антивирус...
 

Всем доброго времени суток! Вопрос по тестеру на mql4.

В функции OrderSend почти  к каждому параметру привязана функция, которая возвращает значение этого параметра. ВОПРОС Какая функция возвращает значение самого последнего параметра  ЦВЕТ СТРЕЛКИ?

Спасибо за помощь.



 
ANDREY #:

Всем доброго времени суток! Вопрос по тестеру на mql4.

Спасибо за помощь.

Пару строк не дочитали


arrow_color=clrNONE

[in]  Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике.