Нкжна помощь в завершении бота.

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

кто может подсказать как решить проблему закрытия ордера? Есть код выполнения на закрытие

код закрытия

выполняет не правильное закрытие сделки

  не правильное закрытие

при установке правильного условия 


бот отказывается принимать это условие

сделка без закрытия

вопрос остается открытым в чем причина? И как правильно написать код?

Aleksey Semenov
3783
Aleksey Semenov  
всё херня - переделывай, для начала ордер можно было бы и выбрать для приличия функцией OrderSelect(), а там уже видно будет
Konstantin Nikitin
9235
Konstantin Nikitin  

Во первых правильно вставьте код.
По коду у вас проверка по ASK позиции BUY. А закрывается она по BID. Вполне может быть что из-за этого и не правильные закрытия. Спред ни кто не отменял.

Ну и выбор ордера вполне логичен. Хотя может он у вас выбран уже в другой функции.
Ihor Herasko
21797
Ihor Herasko  
1leprecon1:

вопрос остается открытым в чем причина?

В том, что непонятно, какой именно ордер выбран. Вполне возможно, что OrderType(), OrderTicket() и OrderLots() указывают на Луну.

И как правильно написать код?

О таких проблемах лучше писать соответствующем разделе форума (для МТ4), а код вставлять через Alt+S.

1leprecon1
86
1leprecon1  
Ihor Herasko:

В том, что непонятно, какой именно ордер выбран. Вполне возможно, что OrderType(), OrderTicket() и OrderLots() указывают на Луну.


Если указывает на луну то почему проверку закрытия ордера проходит? Включая проверку закрытия условия по RSI.
1leprecon1
86
1leprecon1  
Konstantin Nikitin:

Во первых правильно вставьте код.
По коду у вас проверка по ASK позиции BUY. А закрывается она по BID. Вполне может быть что из-за этого и не правильные закрытия. Спред ни кто не отменял.

Ну и выбор ордера вполне логичен. Хотя может он у вас выбран уже в другой функции.
Спред ни кто не отменял, но условие отношение МА к Ask
Ihor Herasko
21797
Ihor Herasko  
1leprecon1:
Если указывает на луну то почему проверку закрытия ордера проходит? Включая проверку закрытия условия по RSI.

Какой-то ордер всегда выбран. Вот его и закрывает советник. Но что там в реальности происходит - непонятно. Поэтому сначала выбирают нужный ордер (OrderSelect()), а уже потом совершают с ним действия.

1leprecon1
86
1leprecon1  
Ihor Herasko:

Какой-то ордер всегда выбран. Вот его и закрывает советник. Но что там в реальности происходит - непонятно. Поэтому сначала выбирают нужный ордер (OrderSelect()), а уже потом совершают с ним действия.

Но ордер один, больше ордеров нет соответственно и выбирать ему не из чего. Стратегия линейная. Или бот через определенное время может потерять адрес ордера? %-/
Ihor Herasko
21797
Ihor Herasko  
1leprecon1:
Но ордер один, больше ордеров нет соответственно и выбирать ему не из чего. Стратегия линейная. Или бот через определенное время может потерять адрес ордера? %-/

История счета тоже пустая? Ордер может быть выбран из истории счета.

В любом случае ордер нужно выбрать. Покажите, что происходит до вызова функции CheckForClose(). Там есть вызов OrderSelect()?

Evgeniy Chumakov
2755
Evgeniy Chumakov  
bool CloseOrder_b = False;
bool CloseOrder_s = False;

for(int pos = 0; pos < OrdersTotal(); pos++){
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue;

if(OrderSymbol() == Symbol() && OrderMagicNumber() == ... && OrderType() == OP_BUY && ...){
CloseOrder_b = OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),(int)MarketInfo(Symbol(),MODE_SPREAD),clrNONE);}

if(OrderSymbol() == Symbol() && OrderMagicNumber() == ... && OrderType() == OP_SELL && ...){
CloseOrder_s = OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),(int)MarketInfo(Symbol(),MODE_SPREAD),clrNONE);}

}

Подставь свои условия в код.

1leprecon1
86
1leprecon1  
Ihor Herasko:

История счета тоже пустая? Ордер может быть выбран из истории счета.

В любом случае ордер нужно выбрать. Покажите, что происходит до вызова функции CheckForClose(). Там есть вызов OrderSelect(с

сделал проверку ошибок 

выводит именно ошибку условия, то-есть ему не нравится именно условие. Наипростейшее МА по отношению к Ask

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