Как закрыть ордер по пересечению 2 скользящих?

 

Не обращайте внимание на Stoploss. Хочу чтобы он двигался на уровне с MA_21, пытаюсь решить этот вопрос. Мой вопрос в следующем: Ордера открываются по условию, а закрываться не хотят. Условие закрытие ордера я опередил как противоположная ситуация с открытием:

if(CountTrades()== 0 && MA_7_1 < MA_31_1 && MA_7_2 >= MA_31_2) ---- Открываем ордер на покупку по пересечению двух скользящих

Далее написал так:  if(MA_7_1 > MA_31_1 && MA_7_2 <= MA_31_2)

                                {

                                       if(!OrderClose(ticket,Lots,Bid,Slippage,clrNONE))

                                       Comment("Не удалось закрыть ордер на продажу");

                                }


Ордера как BUY так и SELL не закрываются, выполнение условия не происходит. Помогите начинающему программисту!

      

Файлы:
 
Владимир Любченко:

Не обращайте внимание на Stoploss. Хочу чтобы он двигался на уровне с MA_21, пытаюсь решить этот вопрос. Мой вопрос в следующем: Ордера открываются по условию, а закрываться не хотят. Условие закрытие ордера я опередил как противоположная ситуация с открытием:

if(CountTrades()== 0 && MA_7_1 < MA_31_1 && MA_7_2 >= MA_31_2) ---- Открываем ордер на покупку по пересечению двух скользящих

Далее написал так:  if(MA_7_1 > MA_31_1 && MA_7_2 <= MA_31_2)

                                {

                                       if(!OrderClose(ticket,Lots,Bid,Slippage,clrNONE))

                                       Comment("Не удалось закрыть ордер на продажу");

                                }


Ордера как BUY так и SELL не закрываются, выполнение условия не происходит. Помогите начинающему программисту!

      


Мухи отдельно котлеты отдельно!

Не должно быть в одном блоке, открытие и закрытие.

Вернее может но не вашем случаи.

 
Alekseu Fedotov:

Мухи отдельно котлеты отдельно!

Не должно быть в одном блоке, открытие и закрытие.

Вернее может но не вашем случаи.

Тоесть событие о закрытии позиции не должно быть внутри цикла... я понял, попробую доработать. Спасибо!

 
Добрый день. Владимир получилось реализовать? У меня похожая задача,тоже голову ломаю как реализовать.
 
Владимир Любченко:

Тоесть событие о закрытии позиции не должно быть внутри цикла... я понял, попробую доработать. Спасибо!

Да сами внимательно посмотрите на свой код. У вас задается ticket только что открытого ордера. Ну мод его понятен. И тут-же идет команда на закрытие ордера по этому тикету. Но уже с другими условиями.
Просмотр на закрытие нужно проводить в цикле с проверкой условия.

 

Пересечение МА-шек на реальном рынке будет неоднократным, т.е. то выше то ниже и т.д.

Это прямой убыток, как минимум на стоимость спреда.

 
ualexzt:
Добрый день. Владимир получилось реализовать? У меня похожая задача,тоже голову ломаю как реализовать

Здравствуйте, скорее всего она решилась как-то сама по себе :) Правильно сказал человек с верху, действия о закрытии, открытии ордеров следует производить отдельно.  

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