0
послепросадочный бу закрыватель :D  www.opentraders.ru/downloads/3030/

avatar

AM2

  • 1 июня 2021, 21:15
0
совсем недавно делал что то подобное
avatar

AM2

  • 1 июня 2021, 20:13
0
шаг добавил.

стоп лосс SL (опционально включен/выключен — если включен, то SL ставится за последний экстремум-фрактал)

как ставить стоп по фракталу для группы разнонаправленных ордеров мне непонятно

www.opentraders.ru/downloads/3025/

avatar

AM2

  • 1 июня 2021, 20:10
0
Натягиваем сетку Фибо


сетка вручную ставится или как?
avatar

AM2

  • 1 июня 2021, 19:41
0
либо написать похожий индикатор

тз рассмотрю.

avatar

AM2

  • 31 мая 2021, 16:47
0
посмотрю завтра
avatar

AM2

  • 30 мая 2021, 22:36
0
после первого смотреть буду
avatar

AM2

  • 30 мая 2021, 16:02
0
по очереди так примерно:



   if(t!=Time[0])
     {
      if(blu>0 && b)
        {
         DelOrder();
         PutOrder(0,Ask);
         PutOrder(5,zz2);
         if(CloseSig>0)
            CloseAll(1);
         b=0;
         s=1;
        }

      if(red>0 && s)
        {
         DelOrder();
         PutOrder(1,Bid);
         PutOrder(4,zz2);
         if(CloseSig>0)
            CloseAll(0);
         s=0;
         b=1;
        }

      t=Time[0];
     }
avatar

AM2

  • 30 мая 2021, 16:00
0
на вашем индикаторе набросок тоже через раз правильно излом считает:


//+------------------------------------------------------------------+
//|                                                          ZZ7.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот

extern int StopLoss      = 500;       // лось
extern int TakeProfit    = 5000;     // язь
extern int TrailingStop  = 25;       // трал

extern int Spread        = 15;       // спред
extern int Slip          = 30;       // реквот

extern int Magic         = 123;      // магик

extern int Depth         = 12;
extern int Dev           = 5;
extern int Back          = 3;

extern string IndName    = "ZigZagZug";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0)
            break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ZZPrice(int n=0)
  {
   int k=0;
   double zz=0;

   for(int i=1; i<111; i++)
     {
      zz=iCustom(NULL,0,IndName,0,i);
      if(zz!=0)
        {
         k++;
         if(k==n)
           {
            break;
           }
        }
     }
   return(zz);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   double sl=0;

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Bid-OrderOpenPrice()>TrailingStop*_Point)
                 {
                  sl=NormalizeDouble(Bid-TrailingStop*_Point,_Digits);
                  if(OrderStopLoss()<sl)
                    {
                     Print("SL: ",sl, " TP: ",OrderTakeProfit());
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if(OrderOpenPrice()-Ask>TrailingStop*_Point)
                 {
                  sl=NormalizeDouble(Ask+TrailingStop*_Point,_Digits);
                  if(OrderStopLoss()>sl || (OrderStopLoss()==0))
                    {
                     Print("SL: ",sl, " TP: ",OrderTakeProfit());
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
void DelOrder(int type=-1)
  {
   bool del;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               del=OrderDelete(OrderTicket());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double zz1=ZZPrice(1);
   double zz2=ZZPrice(2);
   
   double blu=iCustom(NULL,0,IndName,5,1);
   double red=iCustom(NULL,0,IndName,6,1);

   if(TrailingStop>0)
      Trailing();

   if(CountOrders(1)<1)
      DelOrder(4);
   if(CountOrders(0)<1)
      DelOrder(5);

   if(blu>0)
     {
      if(CountOrders()<1)
        {
         PutOrder(0,Ask);
         PutOrder(5,zz2);
        }
     }
   if(red>0)
     {
      if(CountOrders()<1)
        {
         PutOrder(1,Bid);
         PutOrder(4,zz2);
        }
     }

   Comment("\n ZZ1: ",zz1,
           "\n ZZ2: ",zz2,
           "\n Blu: ",blu,
           "\n Red: ",red);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 30 мая 2021, 10:46
0
сделал по зигзагу набросок, но он неправильно изломы считает. то верно то неверно. попробовал несколько функций все то же.


//+------------------------------------------------------------------+
//|                                                          ZZ7.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот

extern int StopLoss      = 500;       // лось
extern int TakeProfit    = 5000;     // язь
extern int TrailingStop  = 25;       // трал

extern int Spread        = 15;       // спред
extern int Slip          = 30;       // реквот

extern int Magic         = 123;      // магик

extern int Depth         = 12;
extern int Dev           = 5;
extern int Back          = 3;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0)
            break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ZZPrice(int n=0)
  {
   int k=0;
   double zz=0;

   for(int i=1; i<111; i++)
     {
      zz=iCustom(NULL,0,"ZigZag",Depth,Dev,Back,0,i);
      if(zz!=0)
        {
         k++;
         if(k==n)
           {
            break;
           }
        }
     }
   return(zz);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   double sl=0;

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Bid-OrderOpenPrice()>TrailingStop*_Point)
                 {
                  sl=NormalizeDouble(Bid-TrailingStop*_Point,_Digits);
                  if(OrderStopLoss()<sl)
                    {
                     Print("SL: ",sl, " TP: ",OrderTakeProfit());
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if(OrderOpenPrice()-Ask>TrailingStop*_Point)
                 {
                  sl=NormalizeDouble(Ask+TrailingStop*_Point,_Digits);
                  if(OrderStopLoss()>sl || (OrderStopLoss()==0))
                    {
                     Print("SL: ",sl, " TP: ",OrderTakeProfit());
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
void DelOrder(int type=-1)
  {
   bool del;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               del=OrderDelete(OrderTicket());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double zz1=ZZPrice(1);
   double zz2=ZZPrice(2);

   if(TrailingStop>0)
      Trailing();

   if(CountOrders(1)<1)
      DelOrder(4);
   if(CountOrders(0)<1)
      DelOrder(5);

   if(zz1>zz2)
     {
      if(CountOrders()<1)
        {
         PutOrder(0,Ask);
         PutOrder(5,zz2);
        }
     }
   if(zz1<zz2)
     {
      if(CountOrders()<1)
        {
         PutOrder(1,Bid);
         PutOrder(4,zz2);
        }
     }

   Comment("\n ZZ1: ",zz1,
           "\n ZZ2: ",zz2);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 30 мая 2021, 10:26
0
эти моменты в следующем топике
avatar

AM2

  • 30 мая 2021, 08:47
0
тест 20.04.08. сначала открылись баи:



тест 20.04.09. сначала открылись селы:



полет нормальный. настройки ваши.

на всякий случай код:


//+------------------------------------------------------------------+
//|                                                    BuySell53.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lot        = 0.1;      // лот позы
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 150;      // язь
extern int Delta         = 300;      // расстояние от цены
extern int Step          = 200;      // шаг
extern int Count         = 5;        // число ордеров
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern bool CloseOrder   = 1;        // закрытие по обратному ордеру

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   PutButton("B",100,160,"BUY LIMIT");
   PutButton("S",100,120,"SELL LIMIT");
   PutButton("C",100,80,"CLOSE");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(0,"B");
   ObjectDelete(0,"S");
   ObjectDelete(0,"C");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutButton(string name,int x,int y,string text)
  {
   ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
//--- установим координаты кнопки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
   ObjectSetInteger(0,name,OBJPROP_XSIZE,80);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,3);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,9);
//--- установим цвет текста
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
   ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,_Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,_Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     }

   r=OrderSend(NULL,type,Lot,NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double LastTake()
  {
   double pr=0;

   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
              {
               pr=OrderTakeProfit();
              }
           }
        }
     }
   return(pr);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModifyOrders()
  {
   bool m=1;
   double tp=NormalizeDouble(LastTake(),Digits);

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderTakeProfit()!=tp && OrderType()<2)
              {
               m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0,Yellow);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Подсчет позиций                                                  |
//+------------------------------------------------------------------+
int CountTrades(int ot=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
               count++;
            if(OrderType()==1 && (ot==1 || ot==-1))
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()>1)
      ModifyOrders();

   if(CloseOrder)
     {
      if(CountTrades(1)==1)
         CloseAll(0);

      if(CountTrades(0)==1)
         CloseAll(1);
     }

   if(ObjectGetInteger(0,"B",OBJPROP_STATE)==1)
     {
      for(int i=0; i<Count; i++)
         PutOrder(2,Bid-Delta*_Point-Step*_Point*i);
      ObjectSetInteger(0,"B",OBJPROP_STATE,0);
     }

   if(ObjectGetInteger(0,"S",OBJPROP_STATE)==1)
     {
      for(int i=0; i<Count; i++)
         PutOrder(3,Bid+Delta*_Point+Step*_Point*i);
      ObjectSetInteger(0,"S",OBJPROP_STATE,0);
     }

   if(OrdersTotal()>0 && ObjectGetInteger(0,"C",OBJPROP_STATE)==1)
     {
      CloseAll();
      ObjectSetInteger(0,"C",OBJPROP_STATE,0);
     }

   Comment(LastTake());
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+


avatar

AM2

  • 30 мая 2021, 08:46
0
в этой версии 0 стоп не работает. если нужно 0 ставьте 5555 или больше.
появление ошибки отладил. если очень уж нужно стопы 0 добавлю.

www.opentraders.ru/downloads/3027/

avatar

AM2

  • 29 мая 2021, 16:36
0
Сыпятся: OrderModify error 130. Этого можно как-то избежать?


в какой момент ошибка? покажите на скрине
avatar

AM2

  • 29 мая 2021, 14:03
0
Мне просто интересно, какая у тебя система хранения готовых индикаторов и роботов


шаблоны. гридеры, усреднители, доливаторы, простые советники, посложнее, индикаторные. все по группам разложено. библиотека с функциями
avatar

AM2

  • 29 мая 2021, 13:53
0
на скрине выше вы можете видеть что все нормально работает. скиньте ваши настройки и опишите порядок установки ордеров
avatar

AM2

  • 29 мая 2021, 13:38