Первое условие для вставки кода: SRC!
Для открытия только одного ордера поставьте вначале условие: if(OrdersTotal() == 0)
borilunad:
Первое условие для вставки кода: SRC!
Для открытия только одного ордера поставьте вначале условие: if(OrderTotal() == 0)
Имеете виду после if (OT==OP_BUY), потому что здесь идея ставить BUY или SELL вручную и чтоб в тоже самое время советник поставил STOP одер в противоположную сторону.
XEKTOR68:
здесь идея ставить BUY или SELL вручную и чтоб в тоже самое время советник поставил STOP одер в противоположную сторону.
evillive:
Если советник должен только модифицировать позиции, открытые вручную, то ему следует ампутировать насовсем строки содержащие OrderSend...
По-мойму он там отложки хочет тыкать противонаправленные стоповые
Если советник должен только модифицировать позиции, открытые вручную, то ему следует ампутировать насовсем строки содержащие OrderSend...
Ну тогда комментарий к отложке с магиком той позиции, которой данная отложка будет соответствовать...
evillive:
Если советник должен только модифицировать позиции, открытые вручную, то ему следует ампутировать насовсем строки содержащие OrderSend...
Если советник должен только модифицировать позиции, открытые вручную, то ему следует ампутировать насовсем строки содержащие OrderSend...
artmedia70:
Вам нужно постоянно сканировать открытые позиции и установленные ордера. Как только появляется новая позиция, открытая вручную, для которой ещё не выставлен ордер - выставлять отложку и привязывать её ко вновь открытой позиции. Как вы это решите делать - ваша головная боль. Тут много вариантов. Но идея примерно такая.
Все ордера будут закрьiватся вручную,ну скажем советник полу - автомат,потому что будем работать, скажем по какомоту индикатору и как он ттолько дает сигнал, то мьi вставляем ордера вручную.Следим за рьiнком и может на стоплосс или трейлингстоп или вручную закрьiваем все ордера при получений прибьiли, а по стоплоссу они будут закриватся сами.
Вам нужно постоянно сканировать открытые позиции и установленные ордера. Как только появляется новая позиция, открытая вручную, для которой ещё не выставлен ордер - выставлять отложку и привязывать её ко вновь открытой позиции. Как вы это решите делать - ваша головная боль. Тут много вариантов. Но идея примерно такая.
Если нужен только один ордер я использовал условия.
int total=OrdersTotal();
if(total<1)
{
.....
функции стратегии.
.....
}
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте Всем,помогите по советнику,открьiвает больше ордеров а надо открьiть только один.Вот и код.Заранее Всем спасибо!
extern int TakeProfit=100;
extern int StopLoss=30;
extern int Magic = 0;
extern int Slippage = 3;
extern double Lot = 0.01;
extern double TrailingStop = 20;
//--------------------------------------------------------------------
int start()
{
double OOP;
int OT;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
OT = OrderType();
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
if (OT==OP_BUY)
{
if (OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(OOP-30*Point,Digits),Slippage,0,0,"",Magic,0,Red));
{
if (OT==OP_SELL)
{
if (OrderSend(Symbol(),OP_BUYSTOP,Lot,NormalizeDouble(OOP+30*Point,Digits),Slippage,0,0,"",Magic,0,Blue));
}
}
}
}
}
}
//return(0);
}
//+------------------------------------------------------------------+
//if(TrailingStop>0)
//{
//if(Bid-OrderOpenPrice()>Point*TrailingStop)
//{
//if(OrderStopLoss()<Bid-Point*TrailingStop)
//{
//OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
//return(0);
//}
//}
//}
//}
//else // go to short position
//if(TrailingStop>0)
//{
//if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
//{
//if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
//{
//OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
//return(0);
//}
//}
//}
//}
//}
//+------------------------------------------------------------------+