Ты путаешь цены. Если 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 закрывает с учётом спреда...
спасибо
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Вопрос такой???
Мне надо, чтобы: если ордер на покупку открылся, и цена упала на 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 пункт???