- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- ПОДСКАЖИТЕ С РЕШЕНИЕМ
- Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6.
Привет всем! Написал советник, в тестере все замечательно работает а как только перехожу на реальный рынок функция OrderClose не работает!!! В чем может быть причина?
Так я открываю ордера
ticket3=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"Продаж",Magic,0,Red);
ticket4=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"Продаж",Magic,0,Red);
if (ticket3>0 || ticket4>0)
PlaySound ("WooHoo!.wav");
так модифицирую:
if(ticket3>0)
{
if(OrderSelect(ticket3,SELECT_BY_TICKET,MODE_TRADES)==true)
if(!OrderModify(ticket3,Bid,SL1,TP1,0,clrNONE))
Print ("Помилка модифікації ордера на продажу!");
}
if(ticket4>0)
{
if(OrderSelect(ticket4,SELECT_BY_TICKET,MODE_TRADES)==true)
if(!OrderModify(ticket4,Bid,SL1,TP2,0,clrNONE))
Print ("Помилка модифікації ордера на продажу!");
}
ну и так пытаюсь закрыть:
if(ticket3>0 && Bid<=MiddleLine)
{
if(OrderSelect(ticket3,SELECT_BY_TICKET,MODE_TRADES)==true)
if(OrderClose(ticket3,Lots,Bid,Slippage,clrBisque)==true)
PlaySound ("CoinsDrop2.wav");
}
if(ticket4>0 && Bid<=LowLine)
{
if(OrderSelect(ticket4,SELECT_BY_TICKET,MODE_TRADES)==true)
if(OrderClose(ticket4,Lots,Bid,Slippage,clrBisque)==true)
PlaySound ("CoinsDrop2.wav");
}
Но ОНО не хочет работать на реале (вернее закрываются не все ордера)
Помогите пожалуйста, если еще нужна инфа просто скажите что именно...
После проверки по тикету добавить проверку по типу?
if(OrderSelect(ticket4,SELECT_BY_TICKET,MODE_TRADES)==true)
{
if (OrderType() == OP_SELL) //или бай
OrderClose(ticket4,Lots,Bid,Slippage,clrBisque);
}
или наоборот:
if (OrderType() == OP_SELL) //или бай
{
if(OrderSelect(ticket4,SELECT_BY_TICKET,MODE_TRADES)==true)
OrderClose(ticket4,Lots,Bid,Slippage,clrBisque);
}
Честно говоря не совсем понимаю смысл... по тикету ведь выбирается конкретный ордер (его и нужно закрыть)
я не понимаю почему на тестере работает а на реале нет... Вот главный вопрос!
Честно говоря не совсем понимаю смысл... по тикету ведь выбирается конкретный ордер (его и нужно закрыть)
Ордер-то конкретный, но если ты заранее знаешь какого он типа (на продажу или покупка) то можешь сразу закрывать. Только я же тебе сказал - покупные по ask закрывай, а на продажу по bid.
Или у тебя советник только продаёт?
Ордер-то конкретный, но если ты заранее знаешь какого он типа (на продажу или покупка) то можешь сразу закрывать. Только я же тебе сказал - покупные по ask закрывай, а на продажу по bid.
Или у тебя советник только продаёт?
у меня открываются по 2 ордера на покупку и на продажу их я закрываю по линиях Боллинжера (покупка:1-й ордер закрывается по средней линии, 2-й ордер - по Hight; продажа:1-й ордер закрывается по средней линии, 2-й ордер - по Low;) и они закрываются покупные по ask и продажу по bid... в тестере...
То што вы запоминаете тикет позиции при отправке запроса на открытие позиции это хорошо
Но нет ни какой гарантии что этот тикет сохранится в переменной в дальнейшей работе программы.
а как же тогда выбирать конкретный ордер из 2 открытых селов или баев?
Проверяй по условию. Если у тебя цена находятся на уровне, где нужно закрыть ордера на покупку (выполнено условие закрытия ордеров на покупку) то запускай проверку на открытые ордера, фильтруй по магику и потом если ордер buy закрывай его.
Также и с sell ордерами.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования