Написал советник который открывает одновременно две позиции в разные стороны, но появилась проблема: немогу отследить закрытие всех своих ордеров и соответственно дать команду на торговлю. В данной версии лоты выставляются с каждым тиком. Цель: Выставить два ордера, как оба сработали - опять выставляем два ордера.
//+------------------------------------------------------------------+
extern int StopLoss = 10;
extern int TakeProfit = 20;
extern int magicnumber = 777;
extern double lot = 0.1;
int start()
{
int a = 0;
for(int z=0; z<=OrdersTotal(); z++) // перебираем все ордера
{
if(OrderMagicNumber() == magicnumber) // если маг номер совпал - считаем кол-во наших ордеров
{
a++; // сколько наших ордеров
}
}
if (a ==0) // если после перебора ордеров наших ордеров нет - торгуем
{
OrderSend(Symbol(),OP_BUY,lot,Ask,1,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Doubler BUY",magicnumber,0,Green);
OrderSend(Symbol(),OP_SELL,lot,Bid,1,Ask+StopLoss*Point,Ask-TakeProfit*Point,"Doubler SELL",magicnumber,0,Red);
}
return(0);
}
//+------------------------------------------------------------------+
Похоже несколько советников на разные графики повесили, а магик им не поменяли просто.
//+------------------------------------------------------------------+ extern int StopLoss = 10; extern int TakeProfit = 20; extern int magicnumber = 777; extern double lot = 0.1; int start() { int a = 0; for(int z=0; z<=OrdersTotal(); z++) // перебираем все ордера !!! ОШИБКА - надо z<OrdersTotal() { OrderSelect(z, SELECT_BY_POS, MODE_TRADES); // !!!! вы ЗАБЫЛИ взять ордер if(OrderMagicNumber() == magicnumber) // если маг номер совпал - считаем кол-во наших ордеров { a++; // сколько наших ордеров } } if (a ==0) // если после перебора ордеров наших ордеров нет - торгуем { OrderSend(Symbol(),OP_BUY,lot,Ask,1,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Doubler BUY",magicnumber,0,Green); OrderSend(Symbol(),OP_SELL,lot,Bid,1,Ask+StopLoss*Point,Ask-TakeProfit*Point,"Doubler SELL",magicnumber,0,Red); } return(0); } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал советник который открывает одновременно две позиции в разные стороны, но появилась проблема: немогу отследить закрытие всех своих ордеров и соответственно дать команду на торговлю. В данной версии лоты выставляются с каждым тиком. Цель: Выставить два ордера, как оба сработали - опять выставляем два ордера.
//+------------------------------------------------------------------+
extern int StopLoss = 10;
extern int TakeProfit = 20;
extern int magicnumber = 777;
extern double lot = 0.1;
int start()
{
int a = 0;
for(int z=0; z<=OrdersTotal(); z++) // перебираем все ордера
{
if(OrderMagicNumber() == magicnumber) // если маг номер совпал - считаем кол-во наших ордеров
{
a++; // сколько наших ордеров
}
}
if (a ==0) // если после перебора ордеров наших ордеров нет - торгуем
{
OrderSend(Symbol(),OP_BUY,lot,Ask,1,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Doubler BUY",magicnumber,0,Green);
OrderSend(Symbol(),OP_SELL,lot,Bid,1,Ask+StopLoss*Point,Ask-TakeProfit*Point,"Doubler SELL",magicnumber,0,Red);
}
return(0);
}
//+------------------------------------------------------------------+