Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 384

 
le0nid2014:
...

if (OrdersTotal() == 0 && ********** )

  OrderSend("USDCHF",OP_BUY,Lots,Ask,0,0,0,"5891",MagicNumb,0,Red);


if (OrdersTotal() == 0 && ***********)

  OrderSend("USDCHF",OP_SELL,Lots,Bid,0,0,0,"58892",MagicNumb,0,Red);

...
Не в ту степь глядите. Вам уже всё сказано. Я даже пример абстрактный привёл выше. Или поиск лень написать?
 
Artyom Trishkin:
В двух советниках должны быть одинаковые магики. И запущены должны быть на разных графиках одного инструмента. А вообще конечно проще доработать основной, чем городить ещё один.

Доработать не получиться он их Маркета.

на 2 графиках он не тянет. так как условия не могу найти подходящих. он откроет ордера в 2 стороны когда их останеться 0. а необходимо что бы 2 направления работали 

 
Artyom Trishkin:

Ну так, а проверка-то - и есть вызов функции, возвращающая флаг:

if(!Функция_проверки_наличия_позиции(symbol, OP_BUY,magic)) Функция_открытия_позиции(symbol, OP_BUY,Lots,stop_loss,take_profit,magic,comment);
if(!Функция_проверки_наличия_позиции(symbol, OP_SELL,magic)) Функция_открытия_позиции(symbol, OP_SELL,Lots,stop_loss,take_profit,magic,comment);

Тут, во-первых, если дальше по коду нужно будет еще раз узнать, есть ли ордер - придется заново вызывать функцию. А если запоминать значение в переменные - можно далее их передавать без доп. вызова функции. Во-вторых, тут дело вкуса, не люблю городить сложные конструкции, особенно, если несколько условий, либо в функцию передается много аргументов. Ухудшает понимание кода.
 
Vitalie Postolache:
Нда, ошибочка вышла, когда говорил про "без инклюдов", эта функция как раз в инклюднике Trade.mqh.

нет проблем. закрыл противоположной

вообще 5-рка очень даже впечатлила. особенно тем, что для торговли нужно. концовка вообще махом как то написалась, сигнал дольше делаешь.

на 4-рке с этой точки зрения вроде как и хуже получается....

 и то что мультивалютно - прелесть, глазам своим не верю.

БРАВО разработчикам! //переход в первый раз составил ровно 1 день.

 
Tapochun:
Тут, во-первых, если дальше по коду нужно будет еще раз узнать, есть ли ордер - придется заново вызывать функцию. А если запоминать значение в переменные - можно далее их передавать без доп. вызова функции. Во-вторых, тут дело вкуса, не люблю городить сложные конструкции, особенно, если несколько условий, либо в функцию передается много аргументов. Ухудшает понимание кода.
Судя по вопросу, там больше ничего и не нужно.
 
le0nid2014:

Доработать не получиться он их Маркета.

на 2 графиках он не тянет. так как условия не могу найти подходящих. он откроет ордера в 2 стороны когда их останеться 0. а необходимо что бы 2 направления работали 

Он должен работать на одном графике, а второй - простенький, открывающий две позиции - на другом. Как его сделать уже вам всё рассказали.
 
Artyom Trishkin:
Судя по вопросу, там больше ничего и не нужно.
Проекты расширяются, нужно стараться думать на перспективу.
 
Tapochun:
Проекты расширяются,

Artyom Trishkin:
Он должен работать на одном графике, а второй - простенький, открывающий две позиции - на другом. Как его сделать уже вам всё рассказали.

 

Вы не много не адекват. Досвиданние

 
Tapochun:
Проекты расширяются, нужно стараться думать на перспективу.

Да, спасибо за науку. Буду думать обязательно, чего уж там...

ЗЫ. Что мешает потом возвратить проверку не в условие, а в переменную и уже её проверять? Наверное дичайшая сложность сего проекта в будущем...

И ещё: если проект расширяется, то и время выполнения кода может увеличиваться. Получится так, что после занесения данных в переменную будет ещё много расчётов. Так вот, не может ли случиться, что к тому времени, когда нужна будет повторная проверка, ордер уже будет закрыт (по стопу например, ... или тейку ...), а программа после этого считает неверное значение, находящееся в переменной?

Вот именно - думать нужно заранее о больших проектах, и о всех вероятных ситуациях, которые могут произойти. Так что я останусь при своём убеждении - всегда иметь самые свежие данные непосредственно перед их использованием. Насколько это возможно.

 

le0nid2014:

Вы не много не адекват. Досвиданние

Это вы мне? Хорошо, и вам не хворать. Но вернётесь в конце к тому, что я и предложил, тем самым пополнив ряды неадекватов