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

 
Igor Makanu:

советники не имеют индикаторных буферов и не рисуют в терминале

почитайте в справке чем отличаются эксперты от скриптов и от индикаторов

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

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

 

Здравствуйте! помогите передать массив в функцию

имеем структуру

struct pattern
  {
   double            x;
   datetime          y;
 };  

объявляю пару статических массивов типа этой структуры

pattern last_pattern_up[NUMBER_OF_SYMBOLS][NUMBER_OF_PERIODS], last_pattern_dn[NUMBER_OF_SYMBOLS][NUMBER_OF_PERIODS];

теперь хочу в функцию передать статический массив, но выдает ошибку -'[' - array required

void MyFunction(pattern &array)
{
   Print(array[1][1].x," ",array[1][1].y);
   }

Как правильно передать массив в функцию?

 
Tango_X:

Здравствуйте! помогите передать массив в функцию

имеем структуру

объявляю пару статических массивов типа этой структуры

теперь хочу в функцию передать статический массив, но выдает ошибку -'[' - array required

Как правильно передать массив в функцию?

void MyFunction(pattern &array[][NUMBER_OF_PERIODS])
 
Artyom Trishkin:

спасибо! супер!

 
Alexander Layzerevich:

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

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

только отдельно эксперт, который вызывает индикатор через iCustom() и отдельно индикатор на чарт

причем эксперт при вызове индикатора будет использовать новую копию индикатора, т.е. если Вы запустите эксперт на графике и измените настройки эксперта (те которые передаете в iCustom() ), то на чарте индикатор ни как не прореагирует на это

в тестере, по окончании тестирования будет отображен индикатор который вызывал эксперт, при тестировании в визуальном режиме можно бросить индикатор на график тестера....

в общем зависит от задачи и желания, как вариант можно сделать применение шаблона из эксперта, но как изменять в шаблоне параметры, что то не припомню... может кто и делал такое

 
Alexander Layzerevich:

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

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

Отрисовывать линиями (OBJ_TREND)

 
Alexander Layzerevich:

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

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

Если рисовать из эксперта линии индикатора без использования индикатора вообще, а лишь по расчётам, перенесённым из индикатора в эксперт, то только графическими объектами - трендовыми линиями. Правда затратно это. Но можно ограничиться областью видимости баров на графике.

 

Спасибо за советы.

Фактически, Индикатор делает тоже самое.

т.е. у меня есть расчётные значения, их надо соединить линиями. (OBJ_TREND)

 
Igor Makanu:

хотя бы один параметр нужно изменить при модификации ордера, ошибка №1 - если ничего не потребовалось изменять после отправки запроса на сервер

распринтуйте что оправляете на сервер, сразу увидите

Ошибка осталась, хоть я и добавил дополнительное условие на проверку наличия стопа или профита

if(OrderMagicNumber() == id_number && (OrderStopLoss() == 0 || OrderTakeProfit() == 0))


А также для трейлинга

if(OrderMagicNumber() == id_number && OrderStopLoss() != 0)
           {
            if(OrderType() == OP_BUY)
              {
               if(OrderComment() == "1" && Bid - OrderOpenPrice() >= a1 && OrderStopLoss() != OrderOpenPrice() + l1) {bol = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+l1,OrderTakeProfit(),0,clrNONE);};
               if(OrderComment() == "2" && Bid - OrderOpenPrice() >= a2 && OrderStopLoss() != OrderOpenPrice() + l2) {bol = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+l2,OrderTakeProfit(),0,clrNONE);};
              }
            else
              {
               if(OrderComment() == "1" && OrderOpenPrice() - Ask >= a1 && OrderStopLoss() != OrderOpenPrice() - l1) {bol = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-l1,OrderTakeProfit(),0,clrNONE);};
               if(OrderComment() == "2" && OrderOpenPrice() - Ask >= a2 && OrderStopLoss() != OrderOpenPrice() - l2) {bol = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-l2,OrderTakeProfit(),0,clrNONE);};
              };
           };
 
Alexandr Sokolov:

Ошибка осталась, хоть я и добавил дополнительное условие на проверку наличия стопа или профита

А также для трейлинга

OrderStopLoss() != NormalizeDouble(OrderOpenPrice() - l1,_Digits)
Причина обращения: