Новичек задает вопрос

 

Здравствуйте уважаемые форумчате. Подскажите пожалуйста как сделать так что бы например при пересечении ЕМА цены вверх открывалась только одна позиция на покупку, при следующем пересечении вверх тоже одна, а не несколько.(Аналогичное для продажи).

 

if ( OrdersTotal()==0)

OrderSend(....)

 

Но допустим сработал мой тейкпрофит, OrdersTotal() опять стал равен нулю, ЕМА попрежнему выше цены-открывается опять ордер, а мне этого не надо.... Будет опять надо когда ЕМА опять пересечет цену вверх и опять 1 раз...

 
Xantrax:

Но допустим сработал мой тейкпрофит, OrdersTotal() опять стал равен нулю, ЕМА попрежнему выше цены-открывается опять ордер, а мне этого не надо.... Будет опять надо когда ЕМА опять пересечет цену вверх и опять 1 раз...




 Условие на покупку пропишите конкретно пересечение ценой ЕМА, т.е. сравнивайте значение ЕМА и цены на 2-ом и 1-ом барах, например: если на втором баре цена ниже ЕМА, а на первом уже выше, то бай...см. учебник, создание обычного эксперта, ф-ия определения торговых критериев, все очень подробно расписано, только в варианте не ЕМА и цены, а гистограммы МАСД и его сигнальной линии...те же пересечения, тот же один ордер в рынке одновременно и т.д. Читайте азбуку...
 
Xantrax:

Но допустим сработал мой тейкпрофит, OrdersTotal() опять стал равен нулю, ЕМА попрежнему выше цены-открывается опять ордер, а мне этого не надо.... Будет опять надо когда ЕМА опять пересечет цену вверх и опять 1 раз...



if ( iOpen(Symbol(),Period_M1,0) < iMA(...) && Ask>iMA(....))

 

If (я спросил) then (я не расшифровал азбуку && не могу написать) //а так как мой вариант не работает поэтому и обратился на форум

else (обратился на форум)

Спасибо.

 

Paukas, спасибо большое, но можно еще словесные комментарии какие-нибудь? к написанному.... Что такое iOpen?

 
Xantrax:

Paukas, спасибо большое, но можно еще словесные комментарии какие-нибудь? к написанному.... Что такое iOpen?



Ф1 в редакторе в падлу нажать?...
 
Xantrax:

Paukas, спасибо большое, но можно еще словесные комментарии какие-нибудь? к написанному.... Что такое iOpen?


В МТ хелп есть F1 - кнопка. Пишите и F1

double iOpen( string symbol, int timeframe, int shift)
Возвращает значение цены открытия указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о ценах открытия находится в предопределенном массиве Open[].
Параметры:
symbol - Символьное имя инструмента. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift - Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
  Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
 
Xantrax:

If (я спросил) then (я не расшифровал азбуку && не могу написать) //а так как мой вариант не работает поэтому и обратился на форум

else (обратился на форум)

Спасибо.

then нету в языке. Совсем.
 

MA1=iMA(NULL,0,Period_MA1,0,MODE_EMA,PRICE_CLOSE,0);

if ( iOpen("EURUSD",30,0) < MA1 && Ask>MA1)

OrderSend("EURUSD",OP_BUY,0.01,Ask,2,Bid-SL*Point,Bid+TP*Point,NULL,1,0,Blue);

Странно, значит присваиваем значение единственной ЕМА1 переменной. Далее судя из написанного кода: если цена открытия последнего бара(а последний бар (свеча) это уже сформировавшаяся свеча или всетаки прошлая свеча?) меньше текущего значения ЕМА1 и значение ASK больше МА.... (бррр, а такое вообще может быть?)

Причина обращения: