Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MQL5 Cloud Network это сеть распределенных вычислений. Оцени сам!
Александр
21
Александр 2010.11.19 17:08 

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

Vladimir Paukas
4099
Vladimir Paukas 2010.11.19 17:19  

if ( OrdersTotal()==0)

OrderSend(....)

Александр
21
Александр 2010.11.19 17:23  

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

Роман
7939
Роман 2010.11.19 17:31  
Xantrax:

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




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

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



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

Александр
21
Александр 2010.11.19 17:37  

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

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

Спасибо.

Александр
21
Александр 2010.11.19 17:46  

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

Роман
7939
Роман 2010.11.19 17:48  
Xantrax:

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



Ф1 в редакторе в падлу нажать?...
Vladimir Paukas
4099
Vladimir Paukas 2010.11.19 17:50  
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));
Vladimir Paukas
4099
Vladimir Paukas 2010.11.19 17:52  
Xantrax:

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

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

Спасибо.

then нету в языке. Совсем.
Александр
21
Александр 2010.11.19 18:04  

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 больше МА.... (бррр, а такое вообще может быть?)

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий