Как правильно прописать OrderClose для альпари???

 

Здравствуйте.

Вопрос такой???

Мне надо, чтобы: если ордер на покупку открылся, и цена упала на 1 пункт ниже,сработал ордер клос.На покупке у меня работает.

А на продаже по цене Bid не работает. Если ставлю, закрыть продажу по цене Ask, то минус 6 пунктов получается, вместо одного.


extern int tp=1;

//--------------------------------------------------------------------------

// код закрытия открытых ордеров при минус 1

//---------------------------------------------------------------------------

if (Ask < NormalizeDouble(OrderOpenPrice() - tp*Point,Digits)) // Купил по цене Ask ; цена упала ниже, и по цене Ask закрылся

for(i = OrdersTotal(); i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol())
{
if(OrderType() == OP_BUY)
{
OrderClose(OrderTicket(), OrderLots(), Ask, 1, Yellow);
}
}

}



if (Bid > NormalizeDouble(OrderOpenPrice() + tp*Point,Digits)) // продал по цене Bid, и цена поднялась выше на 1 пункт, по цене Bid не закрывает,

// доводит до SL


for(i = OrdersTotal(); i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol())
{
if(OrderType() == OP_SELL)
{

OrderClose(OrderTicket(), OrderLots(), Bid, 1, Yellow); // здесь,если Ask поставлю в тестере нормально показывает -1(закрывает);

// а на реале -6 пунктов

}
}
}

//--------------------------------------------------------------------------//


как правильно для продажи закрытие ордера написать, при -1 пункт???

 

Ты путаешь цены. Если Buy открывается по Ask то закрывается по Bid. А у тебя написано

if(OrderType() == OP_BUY)
{
OrderClose(OrderTicket(), OrderLots(), Ask, 1, Yellow); // Это не правильно
}

И соответственно Sell открывается по Bid и закрывается по Ask

if(OrderType() == OP_SELL)
{

OrderClose(OrderTicket(), OrderLots(), Bid, 1, Yellow); // здесь,если Ask поставлю в тестере нормально показывает -1(закрывает);

// а на реале -6 пунктов
}

Вот и получается, что Buy совсем не закрывает а Sell закрывает с учётом спреда...

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