Ваши вопросы по языку MQL4

MakarFX

Элитный участник
Получается ты это
Код:
   if(newbar!=time[0])
     {
      newbar=time[0]; cnt++;
     }
убрал из "OnTick()"?
 

MakarFX

Элитный участник
В итоге ты нагрузил свой советник лишним кодом и лишней работой и как следствие снизил скорость работы.
 

Milord

Местный знаток
всем привет!
Возник такой вопрос - как прописать в коде советника работу трала на нужной валютной паре или этого не надо делать ,если в терминале открыть 2 окна с разными парами,и в каждое окно установить советник,и трал автоматически будет тралить ту пару,в окне которой он установлен?
Другими словами,мне нужно чтобы на каждой валютной паре работал трал со своими параметрами,как это лучше сделать,какие есть варианты реализации такой идеи?
 

MakarFX

Элитный участник
всем привет!
Возник такой вопрос - как прописать в коде советника работу трала на нужной валютной паре или этого не надо делать ,если в терминале открыть 2 окна с разными парами,и в каждое окно установить советник,и трал автоматически будет тралить ту пару,в окне которой он установлен?
Другими словами,мне нужно чтобы на каждой валютной паре работал трал со своими параметрами,как это лучше сделать,какие есть варианты реализации такой идеи?
C-подобный:
для buy
if(OrderStopLoss()<=Bid-Tral*_Point)
   stoploss=Bid-Tral*_Point;
    потом модификация

для sell
if(OrderStopLoss()>=Ask+Tral*_Point)
   stoploss=Ask+Tral*_Point;
    потом модификация
 

mobidik

-----
всем привет!
Возник такой вопрос - как прописать в коде советника работу трала на нужной валютной паре или этого не надо делать ,если в терминале открыть 2 окна с разными парами,и в каждое окно установить советник,и трал автоматически будет тралить ту пару,в окне которой он установлен?
Другими словами,мне нужно чтобы на каждой валютной паре работал трал со своими параметрами,как это лучше сделать,какие есть варианты реализации такой идеи?
Гораздо проще и без гемороя - в каждом окне свой тралл.
C-подобный:
Код:
для buy
if(OrderStopLoss()<=Bid-Tral*_Point)
   stoploss=Bid-Tral*_Point;
    потом модификация

для sell
if(OrderStopLoss()>=Ask+Tral*_Point)
   stoploss=Ask+Tral*_Point;
    потом модификация
Не верно! Нужно сперва определить по какой паре ордер, затем узнать её цены Bid/Ask, Point, а не цены текущего графика и т.д.
 

AlexeyVik

Программист mql4 mql5
Если тралить позиции разных инструментов, то тем более надо проверить символ. Иначе будешь получать сплошные ошибки неправильных цен.
 

Milord

Местный знаток
Гораздо проще и без гемороя - в каждом окне свой тралл.

Не верно! Нужно сперва определить по какой паре ордер, затем узнать её цены Bid/Ask, Point, а не цены текущего графика и т.д.
Если не писать код,а просто установить в каждом окне свой тралл,то нужно ли в каждом окне в настройках писать разные магик номера ,чтобы тралл не тралил ордера с другой пары?
 

MakarFX

Элитный участник
Если не писать код,а просто установить в каждом окне свой тралл,то нужно ли в каждом окне в настройках писать разные магик номера ,чтобы тралл не тралил ордера с другой пары?
Трал в терминале ставится не символ, а на каждый ордер отдельно.
 

mobidik

-----
Если не писать код,а просто установить в каждом окне свой тралл,то нужно ли в каждом окне в настройках писать разные магик номера ,чтобы тралл не тралил ордера с другой пары?
Насколько я Вас понял: есть два окна, в которых установлены советники. Они, в свою очередь, не имеют тралла, но есть желание траллить ордера. Берем отдельно советник, который только траллит позиции. У него должны быть настройки как минимум по меджику / символу. Открываем еще по одному окну по парам на которых работает советник устанавливающий позиции, т.к., два советника не будут работать в одном окне и в каждом из них устанавливаем советник тралла со своими настройками. При этом, тралл не должен иметь доступа к позиция иного символа / меджика да бы не было конфликта в работе основного советника.
 

Milord

Местный знаток
Насколько я Вас понял: есть два окна, в которых установлены советники. Они, в свою очередь, не имеют тралла, но есть желание траллить ордера. Берем отдельно советник, который только траллит позиции. У него должны быть настройки как минимум по меджику / символу. Открываем еще по одному окну по парам на которых работает советник устанавливающий позиции, т.к., два советника не будут работать в одном окне и в каждом из них устанавливаем советник тралла со своими настройками. При этом, тралл не должен иметь доступа к позиция иного символа / меджика да бы не было конфликта в работе основного советника.
А если поставить в 2 окнах на разных парах по советнику,в которых уже есть встроенный тралл,то нужно ли в этих советниках писать разные магик номера,при условии что советники стоят на одном счёте?
И еще вопрос - если нужно закрыть все открытые ордера,то какой код даст быстрое по скорости закрытие,имеет ли значение как организовать цикл перебора ордеров от последнего или от первого или нет разницы,если можно приведите кусок кода?
ЗАРАНЕЕ СПАСИБО!
 
Последнее редактирование:

star603

Новичок форума
В итоге ты нагрузил свой советник лишним кодом и лишней работой и как следствие снизил скорость работы.
А если использовать включаемые файлы?. То есть пользовательские функции написать включаемом файле и присоединить к советнику. При таком способе повыситься производительность?. Но у такого способа есть не достаток, как я думаю. Включаемые файлы надо будет с собой таскать. А в текущем варианте все в одном файле.
При текущем варианте я проверил. Все сделки у меня открываются так как надо. Я пока не понимаю как может проявляться замедление советника. Как мне наглядно это увидеть?
Сам советник будет громоздким со многими стратегиями и функциями, которые я буду добавлять. Другой варианта реализации (того что мне надо) я пока не представляю. Но ведь я в любое время могу вычленить и написать отдельно каждую стратегию отдельно (там будет убираться только строки отвечающие за стратегии которые я хочу удалить).
 

star603

Новичок форума
Скажите пожалуйста есть какой нибудь способ протестировать роботу совы сразу на несколько валютных парах?
 

MakarFX

Элитный участник
Скажите пожалуйста есть какой нибудь способ протестировать роботу совы сразу на несколько валютных парах?
МТ5
А если использовать включаемые файлы?
Это ничего не изменит. При компиляции все ресурсы прописываются в один файл.
 
Верх