invalid price

 
Здравствуйте! Не могу понять, почему советник выдает сигнал на закрытие позиции, хотя выполняются не все условия. При этом позиция не закрывается, а в закладке "Эксперты" выдается:
2005.10.07 04:53:45 Kosa_L_H1 USDCHF,H1: invalid price 1.27270000 for OrderClose function
(В советнике закрытие покупки ставлю по Bid)
 
Приведите, пожалуйста, полный код эксперта.
 
Приведите, пожалуйста, полный код эксперта.

Там ничего особо навороченного, просто покупка закрывается, когда было подряд три понижения по дневным закрытиям. Причем должно пройти не менее 3 дней от покупки. Так вот советник, как только проходит три дня понижения подряд(даже если не прошло три дня от покупки) начинает выдавать это сообщение. Если же от покупки прошло три дня, он все нормально закрывает. Вообще, в принципе, он все правильно открывает и закрывает, только мне не нравятся эти сообщения
 
К сожалению, без кода никак помочь нельзя.
Но скорее всего Вы на самом деле используете неправильные цены. Например, закрываете sell по биду или buy по аску. Только _полный_ код может прояснить ситуацию.
 
Здравствуйте! Не могу понять, почему советник выдает сигнал на закрытие позиции, хотя выполняются не все условия. При этом позиция не закрывается, а в закладке "Эксперты" выдается:
2005.10.07 04:53:45 Kosa_L_H1 USDCHF,H1: invalid price 1.27270000 for OrderClose function
(В советнике закрытие покупки ставлю по Bid)


А может, виноваты вы, когда не делаете нормализацию цены?
Должно быть, не 1.27270000, а 1.2727.
 
А может, виноваты вы, когда не делаете нормализацию цены?
Должно быть, не 1.27270000, а 1.2727.

это - одно и то же. правильно нормализованная цена. только вывод разный
 
К сожалению, без кода никак помочь нельзя.
Но скорее всего Вы на самом деле используете неправильные цены. Например, закрываете sell по биду или buy по аску. Только _полный_ код может прояснить ситуацию.

закрытие позиций:
if (presens1==1) // если есть открытые покупки
{ for (cnt=0; cnt<OrdersTotal(); cnt++) //рассматриваем все открытые позиции
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderType()==OP_BUY &&
Symbol()== OrderSymbol()) // по данной валютной паре
{
LTT1 = OrderOpenTime();
}
{
if ((Bid > iMA_60_H1 && // если цена спроса больше скользей средней по 60 и
Bid > iBANDS_High_H1 && // цена спроса больше верхней линии кр.Боллинджера и
close_D1[1]>close_D1[2]&& //повышение по дневным
MacdCurrent > 0 ) // MACD больше нуля и
||(close_D1[1]<close_D1[2]&& close_D1[2]<close_D1[3] && close_D1[3]<close_D1[4] &&
CurTime()-LTT1 >= 259200)) //разница во времени от открытия (трое суток)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,DarkOrange);
Alert ("Закрытие позиции!"," / ", Symbol()," / ",Bid," / ","Sell" ) ;
}
}
}
}
}
 
Как я и предполагал, все сделки закрываете по биду вне зависимости от типа операции.
Нарушенная логика, нет гарантированной проверки на то, что ордер точно BUY.
Условие if (OrderType()==OP_BUY && Symbol()== OrderSymbol()) совершенно отвязано от команды закрытия сделки.
 
Как я и предполагал, все сделки закрываете по биду вне зависимости от типа операции.
Нарушенная логика, нет гарантированной проверки на то, что ордер точно BUY.
Условие if (OrderType()==OP_BUY && Symbol()== OrderSymbol()) совершенно отвязано от команды закрытия сделки.

Исправьте, пожалуйста, мой код. Куда же вставить это if (OrderType()==OP_BUY && Symbol()== OrderSymbol()) ? Я запуталась
 
Да ну его нахрен этот форекс.;)

Нужно убрать закрывающую, а потом открывающую фигурные скобки между строчками
LTT1 = OrderOpenTime();
и
if ((Bid > iMA_60_H1 && // если цена спроса больше скользей (скользящей?) средней по 60 и

Это если проверка закрытия относится только к Buy-ордерам. Не совсем понятно, почему нет проверки и закрытия Sell-ордеров. Или их вообще нет в тактике? Без полного кода тяжело разбираться.
 
Да ну его нахрен этот форекс.;)

Нужно убрать закрывающую, а потом открывающую фигурные скобки между строчками
LTT1 = OrderOpenTime();


и

if ((Bid > iMA_60_H1 && // если цена спроса больше скользей (скользящей?) средней по 60 и



Спасибо, я так и думала :-)

Это если проверка закрытия относится только к Buy-ордерам. Не совсем понятно, почему нет проверки и закрытия Sell-ордеров. Или их вообще нет в тактике? Без полного кода тяжело разбираться.

Советник только от покупки