Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ха... Вы можете использовать ту же клавишу на клавиатуре, чтобы это тоже работало? Ваше здоровье!
Такая же проблема. Работает на бэктесте, но не на форвард-тесте. Никакие сделки не исполняются... Вы можете помочь?
Ваша клавиатура продается?
Спасибо миллион пипсов. Буду держать вас в курсе...
Та же проблема. Работает на бэктесте, но не на форвард-тесте. Никакие сделки не исполняются... Вы можете помочь?
Большое спасибо за советы. Я выяснил, что в большинстве ситуаций (может быть, во всех?) в начале самого нового бара есть тик, поэтому я могу торговать с открытой ценой. Это не идеально, но (как было сказано выше) разница между ценой закрытия и ценой открытия довольно мала.
Какое значение возвращает функция iTime? Это дата начала бара? В инструкции написано только "Возвращает значение времени для бара указанного символа с таймфреймом и сдвигом.".
Заранее спасибо за ответ.
Какое значение возвращает функция iTime? Это дата начала бара? В руководстве написано только "Возвращает значение времени для бара указанного символа с таймфреймом и сдвигом." Заранее спасибо за ответ.
Привет, IN10TION,
Отправил тебе сообщение...
Нужен советник для закрытия ВСЕХ ордеров при достижении прибыли
Здравствуйте, просто интересно, может ли кто-то из вас, великие кодеры, просто добавить в код, чтобы закрыть ВСЕ ордера, как только g_MinProfit и f_MinProfit достигнут. Я обнаружил, что когда прибыль достигнута, остаются остатки ордеров Buy/Sell Stop/Limit, и я хотел бы, чтобы они были удалены, как только сработает profit min.
Спасибо
extern bool g_CLOSE_ALL=false;
extern bool g_RESTART=true;
extern int g_Step=120;
extern double g_FirstLot=0.1;
extern double g_IncLot=0;
extern double g_MinProfit=450;
extern int g_Magic = 2008;
extern string g_comment="Win";
extern bool f_CLOSE_ALL=false;
extern bool f_RESTART=true;
extern int f_Step=120;
extern double f_FirstLot=0.1;
extern double f_IncLot=0;
extern double f_MinProfit=450;
extern int f_Magic = 2009;
extern string f_comment="REV";
int GOrder_Buy=0;
int GOrder_Sell=0;
double GLotSell=0;
double GLotBuy=0;
double gLotSell=0;
double gLotBuy=0;
double gLSP,gLBP;
double gCurrentProfit;
int FOrder_Buy=0;
int FOrder_Sell=0;
double FLotSell=0;
double FLotBuy=0;
double fLotSell=0;
double fLotBuy=0;
double fLSP,fLBP;
double fCurrentProfit;
double max_dd;
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
int init()
{
Comment("Waddah Attar Win TradeBalancer 1");
if(!GlobalVariableCheck("max_DD")) GlobalVariableSet("max_DD",0);
return(0);
}
int deinit()
{
Comment("");
return(0);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
int start()
{
gCurrentProfit=GetOrdersProfit(g_Magic);
if (gCurrentProfit>=g_MinProfit || g_CLOSE_ALL)
{
DeletePendingOrders(g_Magic);
CloseOrders(g_Magic);
}
if (MyOrdersTotal(g_Magic)==0 && g_RESTART)
{
OrderSend(Symbol(),OP_BUYLIMIT,g_FirstLot,Ask-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);
OrderSend(Symbol(),OP_SELLLIMIT,g_FirstLot,Bid+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);
}
gLSP=GetLastSellPrice(g_Magic);
gLBP=GetLastBuyPrice(g_Magic);
if((gLSP-Bid)<=5*Point)
{
OrderSend(Symbol(),OP_SELLLIMIT,gLotSell+g_IncLot,gLSP+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);
}
if((Ask-gLBP)<=5*Point)
{
OrderSend(Symbol(),OP_BUYLIMIT,gLotBuy+g_IncLot,gLBP-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);
}
//--------------------------------------------------------------------------------------------
fCurrentProfit=GetOrdersProfit(f_Magic);
if (fCurrentProfit>=f_MinProfit || f_CLOSE_ALL)
{
DeletePendingOrders(f_Magic);
CloseOrders(f_Magic);
}
if (MyOrdersTotal(f_Magic)==0 && f_RESTART)
{
OrderSend(Symbol(),OP_BUYSTOP,f_FirstLot,Ask+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);
OrderSend(Symbol(),OP_SELLSTOP,f_FirstLot,Bid-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);
}
fLSP=GetLastSellPrice(f_Magic);
fLBP=GetLastBuyPrice(f_Magic);
if((Bid-fLSP)<=5*Point)
{
OrderSend(Symbol(),OP_SELLSTOP,fLotSell+f_IncLot,fLSP-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);
}
if((fLBP-Ask)<=5*Point)
{
OrderSend(Symbol(),OP_BUYSTOP,fLotBuy+f_IncLot,fLBP+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);
}
//--------------------------------------------------------------------------------------------
//max_dd=
//--------------------------------------------------------------------------------------------
Comment("Waddah Attar Win TradeBalancer 1",
"\n\n\n\n", " CurrentProfit = ", DoubleToStr(gCurrentProfit,2),
"\n\n", " Buy Lots = ", DoubleToStr(GLotBuy,2) + " / " + GOrder_Buy,
"\n\n", " Sell Lots = ", DoubleToStr(GLotSell,2) + " / " + GOrder_Sell,
"\n\n\n\n", " CurrentProfit = ", DoubleToStr(fCurrentProfit,2),
"\n\n", " Buy Lots = ", DoubleToStr(FLotBuy,2) + " / " + FOrder_Buy,
"\n\n", " Sell Lots = ", DoubleToStr(FLotSell,2) + " / " + FOrder_Sell);
return(0);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
int DeletePendingOrders(int Magic)
{
int total = OrdersTotal();
for (int cnt = total-1 ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY && OrderType()!=OP_SELL))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
int CloseOrders(int Magic)
{
int total = OrdersTotal();
for (int cnt = total-1 ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
}
}
return(0);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
int MyOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
if(Magic==g_Magic) { GLotBuy=0; GLotSell=0; GOrder_Buy=0; GOrder_Sell=0; }
if(Magic==f_Magic) { FLotBuy=0; FLotSell=0; FOrder_Buy=0; FOrder_Sell=0; }
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if(Magic==g_Magic)
{
if(OrderType()==OP_BUY) { GLotBuy=GLotBuy+OrderLots(); GOrder_Buy++; }
if(OrderType()==OP_SELL) { GLotSell=GLotSell+OrderLots(); GOrder_Sell++; }
}
if(Magic==f_Magic)
{
if(OrderType()==OP_BUY) { FLotBuy=FLotBuy+OrderLots(); FOrder_Buy++; }
if(OrderType()==OP_SELL) { FLotSell=FLotSell+OrderLots(); FOrder_Sell++; }
}
c++;
}
}
return(c);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
double GetLastBuyPrice(int Magic)
{
int total=OrdersTotal()-1;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUY))
{
if(Magic==g_Magic) gLotBuy=OrderLots();
if(Magic==f_Magic) fLotBuy=OrderLots();
return(OrderOpenPrice());
}
}
return(0);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
double GetLastSellPrice(int Magic)
{
int total=OrdersTotal()-1;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELL))
{
if(Magic==g_Magic) gLotSell=OrderLots();
if(Magic==f_Magic) fLotSell=OrderLots();
return(OrderOpenPrice());
}
}
return(100000);
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
double GetOrdersProfit(int Magic)
{
double eProfit=0;
int total=OrdersTotal()-1;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
eProfit=eProfit+OrderProfit();
}
}
return(eProfit);
}
//--------------------------------------------------------------------------------------------