Je rédigerai un conseiller gratuitement - page 157

 
Ivan Butko #:
La précédente, malheureusement, ne convenait pas. J'ai parcouru la base de code et trouvé presque exactement ce dont j'ai besoin

https://www.mql5.com/ru/code/10236.

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20110406

extern int  StopLoss    = 1300;   //???????? ??????
extern int  StartHour   = 21;     //??? ?????? ????????(???????????? ?????)
extern int  Distance    = 250;    //?????????? ?? ???? ??? ????????? ??????
extern int  Step        = 50;     //??? ????????? ???????
extern int  Count       = 4;      //?????????? ??????????????? ???????
extern int  Expiration  = 4;      //????? ????????? ??????
extern double  Lots     = 1;      //???
extern bool  MM         = true;   //?????????? ???????????????
extern double  TSP      = 5;      //????
extern bool  BU         = true;   //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int  BUHour      = 2;      //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int  init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int  deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int  start()
  {
   int  b=0,s=0,res;
   datetime  expiration = TimeCurrent()+3600*Expiration;
   double  BuyPrice=fND(Open[0]-Distance*Point);
   double  SellPrice=fND(Open[0]+Distance*Point);  
   for (int  i=OrdersTotal()-1;i>=0;i--)
     {
      if (OrderSelect(i, SELECT_BY_POS))
        {  
         if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYLIMIT) b++;
         if (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
   if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
   if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();  
   if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {
     {              
      res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);      
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }
        
   if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {  
     {              
      res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }    
//----  
   return(0);
  }
//+------------------------------------------------------------------+
double  fND(double  d, int  n=-1)
  {  
   if (n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
double  fLots()
  {
   double  lot=Lots;
   double  lot_min =MarketInfo( Symbol(), MODE_MINLOT  );
   double  lot_max =MarketInfo( Symbol(), MODE_MAXLOT  );
   if (MM)
     {
      double  lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
      double  lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );      
      double  dollarsPerPip=0.0;

      lot = AccountFreeMargin()*TSP/100.0;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost, 2);      
      lot=fND(lot/lot_step, 0) * lot_step;
     }
   if (lot<lot_min) lot=lot_min;
   if (lot>lot_max) lot=lot_max;
   return(lot);
  }
//+------------------------------------------------------------------+
void  ClosePositions()
  {
   if(BU)
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
         Sleep(1000);
      }
    }
  }
//+------------------------------------------------------------------+
double  AllProfit()
  {
   double  Profit = 0;
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
   return (Profit);
  }
//+------------------------------------------------------------------+


S'il vous plaît, aidez-moi à faire des corrections. Cet EA ne ferme pas de force les ordres ouverts. J'aimerais qu'en plus de l'heure de fixation des limites, nous puissions également fixer l'heure de leur fermeture forcée.
Nous avons besoin de TP et de trall pour les optimiser. Un trall, de sorte que toutes les limites seraient fermées de manière modeste mais collecter le bruit nocturne.

Introduction à la suppression des ordres, au timing, à la fixation d'arrêts et au chalutage (repris ici https://www.mql5.com/ru/code/32662, même explication là).

Trailing 2SL
Trailing 2SL
  • www.mql5.com
Трал с двумя уровнями стопа. И с установкой ТП
Dossiers :
Limit.mq4  25 kb
 
Comment trouver l'identifiant
 
Анна Калмыкова #:
Comment trouvez-vous l'identité
L'identité de quoi ?
 
Comment retirer de l'argent.
 
L'enlever d'où ?
 
Aidez-moi à écrire un robot de trading EA. Le premier lot achète 0,01 ou moins. Si deux points sont pris, alors il est fermé et de nouveau acheter 0,01 deux points. Si ce n'est pas le cas, le lot est toujours doublé et va à l'inverse de la vente de 0,02 pour deux ou trois points selon les règles de négociation par point. S'il n'est pas pris, on achète 0,04 et on ferme, s'il n'est pas pris 0,08 et ainsi de suite jusqu'à huit fois, c'est-à-dire jusqu'à 0,128 lot. Nous changeons toujours de direction. S'il a été pris, à nouveau 0,01. ***
 
Ecrivez-vous des EAs contre rémunération et sans discussion sur le forum ?
 
Lydvik-kaskad #:
Est-ce que vous écrivez des EAs contre une rémunération et sans discussion sur le forum ?

Service d'écriture rémunéré Freelance. Suivez le lien et lisez le matériel de référence.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.10.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
 

Bonjour, veuillez m'aider.

J'ai besoin d'un EA qui recherche et montre les situations sur le graphique comme sur les captures d'écran.

Les calculs utilisent un SAR parabolique normal et un canal derégression linéaire normal.

L'indicateur montre les situations recherchées pour les 1000 dernières barres.

Les ondes descendantes de la parabole
L'indicateur calcule les paramètres après le changement du parabolique.
Pour le calcul, on prend les deux ondes de la parabole qui se suivent,
Dans ce cas, les vagues descendantes (points au-dessus du prix).
1) Chaque vague a le point le plus bas, la vague 1 a le point A, la vague 2 a le point B.
2) Le niveau du point B doit être supérieur au niveau du point A.
3) Ces points sont reliés par un canal de régression et le canal doit être dirigé vers le bas - c'est la
la formation souhaitée.

Vagues ascendantes paraboliques
L'indicateur calcule les paramètres après le changement du parabolique.
Pour le calcul, on prend deux ondes d'une parabole qui se suivent,
Dans ce cas, les vagues ascendantes (points sous le prix).
1) Le point le plus haut de chaque vague est pris, la vague 1 a le point A, la vague 2 a le point B.
2) Le niveau du point B doit être inférieur au niveau du point A.
3) Ces points sont reliés par un canal de régression et ce canal doit être orienté vers le haut - c'est la

la formation souhaitée.


Ce serait très apprécié. Je peux partager les entrées.

Dossiers :
yxc3e4dpz2.png  64 kb
4cprtquce6.png  62 kb
 
var58 #:

Je vous en serais très reconnaissant. Je peux partager les données.

Pourquoi se moquer de ParabolicSAR - il montre parfaitement les entrées et les sorties telles qu'elles sont.

Capture d'écran 2021-10-05 114315

Raison: