Доработка ботов (советников, индикаторов) vol. 2

1715

Элитный участник
Есть разница между направлением тренда и самим сигналом, не так ли?

Забирай:

PS.
нижних два цвета можно и убрать при желании...
При установке индикатора в советник exp_iCustom_v11, у индикатора начинают моргать стрелки.
Что это может быть?
 

S D V

Местный житель
Уважаемые программисты,помогите пожалуйста! Очень нужны фибо уровни прописанные в коде,чтобы все были видны на терминале,в коде их 56,но что то не так, фибо уровни не показывает!!!
 

Вложения

  • TRIANGLES Lines+FiboHL SDV-2021.mq4
    31 КБ · Просмотры: 28

1715

Элитный участник
Уважаемые программисты.
Добавьте пожалуйста к стрелкам буфера.
Индикатор подрисовывает но всё же его надо опробовать в советнике.
Спасибо.
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    125,4 КБ · Просмотры: 219
  • T3+Snake_alert.mq4
    4,7 КБ · Просмотры: 36

Sergey85

Прохиндей!
Уважаемые программисты.
Добавьте пожалуйста к стрелкам буфера.
Индикатор подрисовывает но всё же его надо опробовать в советнике.
Спасибо.
4 буфера.
вроде одно и тоже было. Если бы на фото были бы настройки - было бы проще.
 

Вложения

  • Uni cross alerts w NRP.mq4
    8,2 КБ · Просмотры: 52

1715

Элитный участник
Вот это надо в буфера зарядить.
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    164,3 КБ · Просмотры: 31

Sergey85

Прохиндей!
Это одно и тоже, но если сомневаешься, то лови. 4 буфера.
 

Вложения

  • T3+Snake_alert _aib(1).mq4
    5,2 КБ · Просмотры: 57
  • Like
Реакции: 1715

Sergey85

Прохиндей!
Хоть как его обзови... Пересечение т3 и тма - оно и в африке будет, даже если тма обзовут каким-то снэйком
 
  • Like
Реакции: 1715

forex_neforex

Активный участник
C++:
  void myOrderClose(int type,int volumepercent,string ordername) //close open orders for current symbol, magic number and "type" (OP_BUY or OP_SELL)
  {
   if(!IsTradeAllowed()) return;
   if(type>1)
     {
      myAlert("error","Invalid type in myOrderClose");
      return;
     }
   double ask=Ask;
   double bid=Bid;
   double sprd=(double)((ask-bid)/myPoint);
   bool success=false;
   int err;
   string ordername_=comment;
   if(ordername != "")
      ordername_ = "("+ordername+")";
   int total = OrdersTotal();
   for(int i = total-1; i >= 0; i--)
     {
      while(IsTradeContextBusy()) Sleep(3);
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol() || OrderType()!=type) continue;
      while(IsTradeContextBusy()) Sleep(3);
      RefreshRates();
      double price=(type==OP_SELL) ? Ask : Bid;
      double volume=NormalizeDouble(OrderLots()*volumepercent*1.0/100,LotDigits);
      if(NormalizeDouble(volume,LotDigits)==0) continue;
      success=OrderClose(OrderTicket(),volume,DoubleToStr(NormalizeDouble(price,Digits()),Digits()),MaxSlippage,clrWhite);
      if(!success)
        {
         err=GetLastError();
         myAlert("error","OrderClose"+ordername_+" failed; error #"+err+" "+ErrorDescription(err));
        }
     }
   string typestr[6]={" Buy "," Sell ","Buy Limit","Sell Limit","Buy Stop","Sell Stop"};
   if(success) myAlert(" order ","Orders closed "+ordername_+": "+typestr[type]+" "+Symbol()+" Magic #"+MagicNumber);
  }


Этот код закрывает все ордера. Помогите пожалуйста доработать его, чтобы закрывал только самый первый из всех открытых ордеров и самый последний. перерыл поисковик, как я только не насиловал эту строку for(int i = total-1; i >= 0; i--), больше меньше +- и т.д. хз, так и не понял.
это не моя функция, я его вытащил из одного советника, щас хочу в илана закинуть и потыкать.
 

AlexeNP

Гуру форума
C++:
  void myOrderClose(int type,int volumepercent,string ordername) //close open orders for current symbol, magic number and "type" (OP_BUY or OP_SELL)
  {
   if(!IsTradeAllowed()) return;
   if(type>1)
     {
      myAlert("error","Invalid type in myOrderClose");
      return;
     }
   double ask=Ask;
   double bid=Bid;
   double sprd=(double)((ask-bid)/myPoint);
   bool success=false;
   int err;
   string ordername_=comment;
   if(ordername != "")
      ordername_ = "("+ordername+")";
   int total = OrdersTotal();
   for(int i = total-1; i >= 0; i--)
     {
      while(IsTradeContextBusy()) Sleep(3);
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol() || OrderType()!=type) continue;
      while(IsTradeContextBusy()) Sleep(3);
      RefreshRates();
      double price=(type==OP_SELL) ? Ask : Bid;
      double volume=NormalizeDouble(OrderLots()*volumepercent*1.0/100,LotDigits);
      if(NormalizeDouble(volume,LotDigits)==0) continue;
      success=OrderClose(OrderTicket(),volume,DoubleToStr(NormalizeDouble(price,Digits()),Digits()),MaxSlippage,clrWhite);
      if(!success)
        {
         err=GetLastError();
         myAlert("error","OrderClose"+ordername_+" failed; error #"+err+" "+ErrorDescription(err));
        }
     }
   string typestr[6]={" Buy "," Sell ","Buy Limit","Sell Limit","Buy Stop","Sell Stop"};
   if(success) myAlert(" order ","Orders closed "+ordername_+": "+typestr[type]+" "+Symbol()+" Magic #"+MagicNumber);
  }


Этот код закрывает все ордера. Помогите пожалуйста доработать его, чтобы закрывал только самый первый из всех открытых ордеров и самый последний. перерыл поисковик, как я только не насиловал эту строку for(int i = total-1; i >= 0; i--), больше меньше +- и т.д. хз, так и не понял.
это не моя функция, я его вытащил из одного советника, щас хочу в илана закинуть и потыкать.
можно проверять по времени открытия ордера или по его тикету
 

fxbo

Активный участник
Всем привет.
кто сможет подрихтовать индюк
1. перевернуть фибо, тоесть фибо растягивается в сторону сформированой палки зигзаг
2. добавить параметр установка алерта на указанный уровень...., тоесть я в ручном режиме указываю на каком уровне мне нужно что б гудело и показывало точку алерта...

Должно получится что то похоже на 1-2-3

Пример на скрине.

1614306969365.png


Заранее благодарю за рихтовку.....
 

Вложения

  • AC+ Fibo SD Alert_Arrows_mod.mq4
    14,3 КБ · Просмотры: 44
Последнее редактирование:

loki177

Активный участник
кто хочет потестить 100profit (собирает сигнал с нескольких индикаторов),
вот шаблон и индикаторы, с картинкой.
на индикаторах
adx_crossing_v.2.0.mx1alert.mq4
Fisher_Yur4ik.mq4
сигнал не особенно хороший.
 

Вложения

  • 100_profit.zip
    221,7 КБ · Просмотры: 89

1715

Элитный участник
C++:
  void myOrderClose(int type,int volumepercent,string ordername) //close open orders for current symbol, magic number and "type" (OP_BUY or OP_SELL)
  {
   if(!IsTradeAllowed()) return;
   if(type>1)
     {
      myAlert("error","Invalid type in myOrderClose");
      return;
     }
   double ask=Ask;
   double bid=Bid;
   double sprd=(double)((ask-bid)/myPoint);
   bool success=false;
   int err;
   string ordername_=comment;
   if(ordername != "")
      ordername_ = "("+ordername+")";
   int total = OrdersTotal();
   for(int i = total-1; i >= 0; i--)
     {
      while(IsTradeContextBusy()) Sleep(3);
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol() || OrderType()!=type) continue;
      while(IsTradeContextBusy()) Sleep(3);
      RefreshRates();
      double price=(type==OP_SELL) ? Ask : Bid;
      double volume=NormalizeDouble(OrderLots()*volumepercent*1.0/100,LotDigits);
      if(NormalizeDouble(volume,LotDigits)==0) continue;
      success=OrderClose(OrderTicket(),volume,DoubleToStr(NormalizeDouble(price,Digits()),Digits()),MaxSlippage,clrWhite);
      if(!success)
        {
         err=GetLastError();
         myAlert("error","OrderClose"+ordername_+" failed; error #"+err+" "+ErrorDescription(err));
        }
     }
   string typestr[6]={" Buy "," Sell ","Buy Limit","Sell Limit","Buy Stop","Sell Stop"};
   if(success) myAlert(" order ","Orders closed "+ordername_+": "+typestr[type]+" "+Symbol()+" Magic #"+MagicNumber);
  }


Этот код закрывает все ордера. Помогите пожалуйста доработать его, чтобы закрывал только самый первый из всех открытых ордеров и самый последний. перерыл поисковик, как я только не насиловал эту строку for(int i = total-1; i >= 0; i--), больше меньше +- и т.д. хз, так и не понял.
это не моя функция, я его вытащил из одного советника, щас хочу в илана закинуть и потыкать.
У меня вот такой советник есть.
Название /Закрытие_ордеров_с_меньшим временем/ говорит за себя.
Может там какую то функцию для себя увидишь.
 

Вложения

  • Закрытие_ордеров_с_меньшим временем.mq4
    6 КБ · Просмотры: 24
Последнее редактирование:

AlexeNP

Гуру форума
Что проще использовать и надежнее? Есть примеры какие нибудь, которые можно по рекомендовать мне?
Код:
int ticket_min=INT_MAX,//тикет первого открытого ордера
    ticket_max=0;//тикет последнего открытого ордера
for(int i=OrdersTotal()-1; i>=0; i--)
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
     {
      int cur_ticket=OrderTicket();
      if(ticket_min>cur_ticket)
         ticket_min=cur_ticket;
      if(ticket_max<cur_ticket)
         ticket_max=cur_ticket;
     }
  }
 
Верх