Comment j'ai assemblé mon conseiller par essais et erreurs - page 29

 

Je vous ai dit de faire un signal

;)

 
Renat Akhtyamov:

Je vous l'ai dit, faites un signal

;)

j'ai besoin de vérifier d'abord - et avec les paramètres je n'ai pas encore décidé. je vais l'exécuter pendant un mois sur la démo - quel résultat sera montré. pour une semaine, j'ai travaillé - pas mal. sur 4 paires il est passé de 50 000 rub à 10000 rub pendant une semaine - seulement il a despositions ouvertes maintenant - je verrai comment la semaine prochaine se passera.

1 semaine

1 semaine

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Aleksandr Klapatyuk:

Je dois d'abord vérifier - et avec les paramètres que je n'ai pas encore décidé. pendant un mois, je vais l'exécuter sur une démo - quel sera le résultat. pendant une semaine, il a fonctionné - pas mal. sur 4 paires de 50.000 roubles à 10.000 roubles pendant une semaine - il n'y a que lui qui a des positions ouvertes maintenant - je verrai comment la semaine prochaine tiendra le coup

et le risque de 0,01 est de 0,01% ?

Et Sergei dit que la norme.

 
Renat Akhtyamov:
Le risque de 0,01 % est-il de 0,01 % ?

Je n'ai pas encore compris comment ce risque fonctionne - il m'indique toujours 0.01.

bien que dans le testeur - il fixe, et avec un plus grand lot

---------------------------- cette fonction fixe le lot et calcule - d'une façon ou d'une autre

   //+------------------------------------------------------------------+
   //| Calculate optimal lot size                                       |
   //+------------------------------------------------------------------+
   double            TradeSizeOptimized(void)
     {
      double price=0.0;
      double margin=0.0;
      //--- select lot size
      if(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
         return(0.0);
      if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
         return(0.0);
      if(margin<=0.0)
         return(0.0);

      double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
      //--- calculate number of losses orders without a break
      if(DecreaseFactor>0)
        {
         //--- select history for access
         HistorySelect(0,TimeCurrent());
         //---
         int    orders=HistoryDealsTotal();  // total history deals
         int    losses=0;                    // number of losses orders without a break

         for(int i=orders-1; i>=0; i--)
           {
            ulong ticket=HistoryDealGetTicket(i);
            if(ticket==0)
              {
               Print("HistoryDealGetTicket failed, no trade history");
               break;
              }
            //--- check symbol
            if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
               continue;
            //--- check Expert Magic number
            if(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=Magic_Number)
               continue;
            //--- check profit
            double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
            if(profit>0.0)
               break;
            if(profit<0.0)
               losses++;
           }
         //---
         if(losses>1)
            lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
        }
      //--- normalize and check limits
      double stepvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
      lot=stepvol*NormalizeDouble(lot/stepvol,0);

      double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
      if(lot<minvol)
         lot=minvol;

      double maxvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
      if(lot>maxvol)
         lot=maxvol;
      //--- return trading volume
      return(lot);
     }
   //+------------------------------------------------------------------+
 
Сергей Криушин:

Je ne sais pas comment ça marche, mais ça marche très bien jusqu'à ce que le profit de la démo s'envole comme un tank... Bravo, brillant simplement super et merci beaucoup à toi et à Barabashkin il y a d'autres personnes brillantes et pas avides, beau travail... ça ressemble au scalper de Lecha Volchansky de son fil https://www.mql5.com/ru/forum/259953/page12... d'ailleurs, ils allaient faire un scalper pour MT5 aussi.... il y a même eu une tentative de démarrage...

559
SEM 2018.07.03 10:32 FR

Y aura-t-il une version pour MT5 ?

Une petite solution de contournement pour MT5 (fonctionne dans le testeur).

Ouvre la transaction suivante si toutes les transactions précédentes par symbole et par direction sont en plus.

Les dossiers:

Mais je n'ai pas trouvé la suite...Donc je propose de continuer et de l'adapter à vos lignes... Je l'ai combiné avec votre méthode poke aussi jusqu'à ce que je vois ce qui va se passer...)) Donc ne perdez pas courage et continuez à le faire...)



J'ai combiné cette EA avec la mienne ... Je ne sais pas encore comment gérer ce miracle.

Photo par

Dossiers :
 
Aleksandr Klapatyuk:

a fusionné cet expert avec le sien. Je ne sais toujours pas comment faire fonctionner ce miracle.

#property version "1.01"

Les boutons de gauche dans le testeur ne fonctionnent pas correctement - mais en mode normal dans le terminal, cela devrait fonctionner !

quand j'appuie dessus, ils ne sont pas réinitialisés, je dois appuyer à nouveau pour les réinitialiser.

et seulement BUY et SELL ; les autres ne fonctionnent pas dans le testeur - mais ils fonctionnent dans le terminal sur le graphique.

Dossiers :
 
Aleksandr Klapatyuk:

#property version "1.01"

les boutons à gauche dans le testeur, ne fonctionnent pas correctement - mais en mode normal dans le terminal, devrait fonctionner !

ils ne se réinitialisent pas lorsque j'appuie dessus, je dois appuyer à nouveau pour les réinitialiser

et seulement BUY et SELL ; les autres ne fonctionnent pas dans le testeur - mais ils fonctionnent dans le terminal sur le graphique.

le résultat du test est le même

Photo par

 
Aleksandr Klapatyuk:

#property version "1.01"

les boutons à gauche dans le testeur, ne fonctionnent pas correctement - mais en mode normal dans le terminal, devrait fonctionner !

ils ne se réinitialisent pas lorsque j'appuie dessus, je dois appuyer à nouveau pour les réinitialiser

et seulement BUY et SELL ; les autres ne fonctionnent pas dans le testeur - mais ils fonctionnent dans le terminal sur le graphique.

Je n'ai pas activé l'initialisation du bouton...et alorsButtonCreate ne peut pas le détecter

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
      EventSetTimer(1); // количество секунд 
                     //   ButtonCreate("BUY",Black,OldLace,50,50,100,20,10);
//   ButtonCreate("SELL",Black,OldLace,160,50,100,20,10);
//
//   ButtonCreate("BUY_Close",Black,OldLace,50,80,100,20,10);
//   ButtonCreate("SELL_Close",Black,OldLace,160,80,100,20,10);
//
//   ButtonCreate("Trailing",Black,OldLace,50,110,100,20,10);
//ArraySize(_name);
   int _y=100;
   for(int i=0; i<ArraySize(_name); i++)
     {
      ButtonCreate(_name[i],125,_y,130,20,10);
      _y=_y+25;
     };
//--- create all necessary objects
   if(!ExtExpert.Init())
      return(INIT_FAILED);
//---
   if(ObjectBuySell)
     {
      bool res=false;
        {
         ObjectCreate(0,"BUY 1",OBJ_BUTTON,0,0,0);
         ObjectSetInteger(0,"BUY 1",OBJPROP_XDISTANCE,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS)-102);
         ObjectSetInteger(0,"BUY 1",OBJPROP_YDISTANCE,37);
         ObjectSetString(0,"BUY 1",OBJPROP_TEXT,"BUY 1");
         ObjectSetInteger(0,"BUY 1",OBJPROP_BGCOLOR,clrMediumSeaGreen);

         ObjectCreate(0,"SELL 1",OBJ_BUTTON,0,0,0);
         ObjectSetInteger(0,"SELL 1",OBJPROP_XDISTANCE,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS)-50);
         ObjectSetInteger(0,"SELL 1",OBJPROP_YDISTANCE,37);
         ObjectSetString(0,"SELL 1",OBJPROP_TEXT,"SELL 1");
         ObjectSetInteger(0,"SELL 1",OBJPROP_BGCOLOR,clrDarkOrange);

         ObjectCreate(0,"CLOSE",OBJ_BUTTON,0,0,0);
         ObjectSetInteger(0,"CLOSE",OBJPROP_XDISTANCE,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS)-75);
         ObjectSetInteger(0,"CLOSE",OBJPROP_YDISTANCE,57);
         ObjectSetString(0,"CLOSE",OBJPROP_TEXT,"CLOSE");
         ObjectSetInteger(0,"CLOSE",OBJPROP_BGCOLOR,clrMagenta);
        }
      res=true;
     }

     
//--- secceed
   return(INIT_SUCCEEDED);
  }
 
Les boutons jaunes sont censés s'ouvrir à la volée d'après ce que j'ai compris - l'achat s'active, le tour d'achat descend, le tour d'achat descend, le tour d'achat ferme, le tour de vente et vous voyez combien il y a sur la vente jaune...
 
Сергей Криушин:

Je n'ai pas activé l'initialisation des boutons... etButtonCreate ne peut pas le détecter.

il est déjà apparié -AVGiS intelligence.mq5195 kb

vous essayez - d'une autre manière, d'attacher. cela ne fonctionnera pas. alors vous devez tout réécrire sans cela (CSampleExpert: :)--- bool CSampleExpert::Init(void)