не работают перевертыши

 

Привет всем. Хочу при закртии шорта сразу открываь лонг, и наоборот, при закртии лонга сразу открывать шорт

Делаю вот так

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);

 
NIkolay2000:

Привет всем. Хочу при закртии шорта сразу открываь лонг, и наоборот, при закртии лонга сразу открывать шорт

Делаю вот так

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);


А где выбор ордера для работы, то бишь для закрытия
 
Vinin:

А где выбор ордера для работы, то бишь для закрытия

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).

А так - да, выложите весь код скрипта. Не фига так не понять.

 
Да вроде уже все заработало. Спасибо за помощь.
Причина обращения: