Привет всем. Хочу при закртии шорта сразу открываь лонг, и наоборот, при закртии лонга сразу открывать шорт
Делаю вот так
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-StopLoss*Point,Bid-TakeProfit*Point,"macd sample",mgk,0,Red);
Это закрытие лонга с открытием шорта.
А воти обратная операция
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"macd sample",mgk,0,Green);
А где выбор ордера для работы, то бишь для закрытия
А где выбор ордера для работы, то бишь для закрытия
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?
if (z<0)
Взято из стандратного советника macd sample. Позу то он закрывает, а вот противоположную сразу открывать не хочет. Прикрутил механизм для выдачи ошибок если ордер падает.
Похоже с кусочками не разобраться. Нужен весь код
И потом, удобнее открывать сначала встречный ордер с удвоенным лотом, а потом делать перекртытие встречных (в обозримом будущем))). Это будет быстрее и по одной и той же цене (+\- спред, разумеется). Ну, и конечно, ДЦ должен подерживать операцию перекрыть встречные (CkoseBy).
А так - да, выложите весь код скрипта. Не фига так не понять.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет всем. Хочу при закртии шорта сразу открываь лонг, и наоборот, при закртии лонга сразу открывать шорт
Делаю вот так
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-StopLoss*Point,Bid-TakeProfit*Point,"macd sample",mgk,0,Red);
Это закрытие лонга с открытием шорта.
А воти обратная операция
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"macd sample",mgk,0,Green);