Как пишется "текущая цена" на mql4 ? - страница 2

 
Figar0:

Не путайте человека, текущая цена для текущего инструмента Bid,

Bid<High[0], текущая цена любого указанного инструмента MarketInfo("EURUSD",MODE_BID);


Здравствуйте, у меня график EURJPY, на нём советнику нужно узнать текущую цену покупки EURUSD. Судя по вашему комментраию, нажно использовать MarketInfo("EURUSD",MODE_BID).

Но запись такого вида:

Alert(MarketInfo("EURUSD",MODE_BID));

всегда возвращает 0

А при использовании функции DoubleToStrMorePrecision(MarketInfo("EURUSD",MODE_BID), 16) выводит 0.000000000000000

Проблема решена. Оказывается, у моего брокера инструменты были обозначены не стандартным образом, а, например, вот так "EURUSD.m". Поэтому выражение MarketInfo("EURUSD.m",MODE_BID) возвращало нужный вариант.

 
подскажите пожалуйста  как это  написать В ЭКСПЕРТЕ  (ЕСЛИ ТЕКУЩАЯ ЦЕНА) = 1.06000 ТО ВЫПОЛНИТЬ (Buy 0.1 лот) И ПОСТАВИТЬ  (TEIK PROFIT 1.06300) 
 
hahol64pu:
подскажите пожалуйста  как это  написать В ЭКСПЕРТЕ  (ЕСЛИ ТЕКУЩАЯ ЦЕНА) = 1.06000 ТО ВЫПОЛНИТЬ (Buy 0.1 лот) И ПОСТАВИТЬ  (TEIK PROFIT 1.06300) 

написать более подробное техническое задание (ТЗ) и обратиться к фрилансерам

https://www.mql5.com/ru/job

Фриланс-сервис на MQL5.com
Фриланс-сервис на MQL5.com
  • www.mql5.com
Заказы на разработку программ для трейдинга
 
hahol64pu:
подскажите пожалуйста  как это  написать В ЭКСПЕРТЕ  (ЕСЛИ ТЕКУЩАЯ ЦЕНА) = 1.06000 ТО ВЫПОЛНИТЬ (Buy 0.1 лот) И ПОСТАВИТЬ  (TEIK PROFIT 1.06300) 

Так и написать:

if(Bid==1.0600)

if(OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,1.06300,"",0,0,clrGreen))<0) Print("UhOh, error ",_LastError);

Только нужно понимать, что цена может очень долго плясать рядом с заданным значением и так с ним и не сравняться. То есть на предыдущем тике, скажем,  было 1.05999, а на следующем - 1.06001. Ну и всё, условие не выполняется, ордера нет.

Ну и на ECN стоплосс-тейкпрофит запрещают ставить при открытии ордера, только вторым заходом, модификацией уже открытого ордера можно.

 
Vitalie Postolache:

Так и написать:

if(Bid==1.0600)

if(OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,1.06300,"",0,0,clrGreen))<0) Print("UhOh, error ",_LastError);

Только нужно понимать, что цена может очень долго плясать рядом с заданным значением и так с ним и не сравняться. То есть на предыдущем тике, скажем,  было 1.05999, а на следующем - 1.06001. Ну и всё, условие не выполняется, ордера нет.

Ну и на ECN стоплосс-тейкпрофит запрещают ставить при открытии ордера, только вторым заходом, модификацией уже открытого ордера можно.

И еще посчитать ордера, чтобы не открылось более одного

а это уже АТС получается

 
СПАСИБО БОЛЬШОЕ . С МЕНЯ КОНЬЯК .  ТОЛЬКО   " ПРОГРАММА ВЫДАЁТ ДО 32-Х ЦЫКЛОВ В СУТКИ" ТАМ ГДЕ ЦЕНА СОВПАДАЕТ. КАК-БЫ СДЕЛАТЬ ЧТОБ НЕ БЫЛО ПАВ ТОРА. ПОКА НЕ ЗАКРОЕТСЯ ПЕРВЫЙ .
 
hahol64pu:
СПАСИБО БОЛЬШОЕ . С МЕНЯ КОНЬЯК .  ТОЛЬКО   " ПРОГРАММА ВЫДАЁТ ДО 32-Х ЦЫКЛОВ В СУТКИ" ТАМ ГДЕ ЦЕНА СОВПАДАЕТ. КАК-БЫ СДЕЛАТЬ ЧТОБ НЕ БЫЛО ПАВ ТОРА. ПОКА НЕ ЗАКРОЕТСЯ ПЕРВЫЙ .
Капслок заклинило? Считать ордера и не реагировать на сигнал, пока их больше одного.
 
 { 
        if(Ask==1.0770)
        if(OrderSend(Symbol(),OP_SELL,0.01,Bid,10,0,1.0740,"",1,0,clrGreen)<0) Print("UhOh, error ",_LastError);
     }

     где ошибка ? почему не пакупаит ?  

 
 

извиняюсь .  почему не продаёт ?

 
hahol64pu:
        if(Ask==1.0770)
        if(OrderSend(Symbol(),OP_SELL,0.01,Bid,10,0,1.0740,"",1,0,clrGreen)<0) Print("UhOh, error ",_LastError);
     }

     где ошибка ? почему не пакупаит ?  

извиняюсь .  почему не продаёт ?

Потому что такой цены не было может быть.
Причина обращения: