Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 466

 
Rewerpool:
C'est une belle touche. Supprimé du code.

L'arrêt se déclenche maintenant à chaque tic-tac )))))

Ajoutez-le.

          double    OOP = OrderOpenPrice(),
                    OSL = OrderStopLoss(),
                    OTP = OrderTakeProfit();
          if ((OSL!=0&&stoploss==0) && (OTP!=0&&takeprofit==0)) continue;
 

Encore une fois, bonsoir. L'essentiel de la question.

Je suis en train de mettre une EA (qui fonctionne) dans le marché. plateforme MT4. Je peux afficher un seul fichier. Un fichier de l'Expert Advisor. Il devrait passer la validité, mais il ne le peut pas car c'est un EA sans indicateurs. Ils sont dans des fichiers séparés. Le conseiller expert travaille avec quatre indicateurs. Ils doivent être liés d'une manière ou d'une autre au conseiller expert. Vous devez spécifier le chemin, c'est-à-dire les écrire dans l'Expert Advisor. Veuillez indiquer quel formulaire et comment procéder.

D'après ce que je comprends, nous devons utiliser les "Ressources" . Je ne sais pas comment l'enregistrer correctement dans le conseiller expert. Peut-être connaissez-vous d'autres solutions.

Merci.

Voici ce qu'il dit quand il ne passe pas la validité

 2016.04.01 00:00:00 Impossible d'ouvrir le fichier 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:00 Impossible d'ouvrir le fichier 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2]01 00:00:00 ne peut pas ouvrir le fichier 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00 ne peut pas ouvrir le fichier 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00 ne peut pas ouvrir le fichier 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00 ne peut pas ouvrir le fichier 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00 ne peut pas ouvrir le fichier 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:00 ne peut pas ouvrir le fichier 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:0504.01 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.0101 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05 Impossible d'ouvrir le fichier 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.0101 00:00:05 ne peut pas ouvrir le fichier 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:10 ne peut pas ouvrir le fichier 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:10 ne peut pas ouvrir le fichier 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:10 Impossible d'ouvrir le fichier 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:10 Impossible d'ouvrir le fichier 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2]

 
Bonsoir, comment on fait un écart ? J'ai cherché partout sur internet, je n'ai rien trouvé.....
 
Oleksandr Kulibaba:

Encore une fois, bonsoir. L'essentiel de la question.

Je suis en train de mettre une EA (qui fonctionne) dans le marché. plateforme MT4. Je peux afficher un seul fichier. Un fichier de l'Expert Advisor. Il devrait passer la validité, mais il ne le peut pas car c'est un EA sans indicateurs. Ils sont dans des fichiers séparés. Le conseiller expert travaille avec quatre indicateurs. Ils doivent être liés d'une manière ou d'une autre au conseiller expert. Vous devez spécifier le chemin, c'est-à-dire les écrire dans l'Expert Advisor. Veuillez indiquer quel formulaire et comment procéder.

D'après ce que je comprends, nous devons utiliser les "Ressources" . Je ne sais pas comment l'enregistrer correctement dans le conseiller expert. Peut-être connaissez-vous d'autres solutions.

Merci.

Voici ce qu'il est dit si la validité n'est pas dépassée

Je pense que c'est triste que vous ayez écrit un EA et que vous ne puissiez pas ajouter des indicateurs pour qu'il fonctionne.

 
Vladislav Andruschenko:

C'est triste que vous ayez écrit un EA et que vous ne puissiez pas y ajouter des indicateurs pour le faire fonctionner.

 
Oleksandr Kulibaba:
Je m'en occupe. J'espère que ça marchera. Votre réponse ne m'a pas du tout aidé. Et je ne suis pas du tout triste, au contraire, je suis excité. Et je vais le faire.
 
//+------------------------------------------------------------------+
//|                                                        temp1.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int    Slippage=29;

int Slippage1;

int OnInit()
  {
//---
   Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }
//+------------------------------------------------------------------+

Salutations.

Un nouveau tick devrait assigner la valeur du paramètre d'entréeSlippage à la variableSlippage1,sortirla valeur deSlippage1 dans un commentaire et montrer"Parameters changed"dans le log.

Ce avec quoi il ne fonctionne pas : LorsqueSlippage1!=Slippage, l'option"Paramètres modifiés" n'est pas imprimée dans le journal.

Question : Qu'est-ce que je fais mal ?

 
Andrey Sokolov:

Salutations.

Un nouveau tick devrait assigner la valeur du paramètre d'entréeSlippage à la variableSlippage1,sortirla valeur deSlippage1 dans un commentaire et montrer"Parameters changed"dans le log.

Ce avec quoi il ne fonctionne pas : LorsqueSlippage1!=Slippage, l'option"Paramètres modifiés" n'est pas imprimée dans le journal.

Question : Qu'est-ce que je fais mal ?

Si un paramètre d'entrée est modifié, alors la variable Slippage1 se voit attribuer la valeur de Slippag dans OnInit.Par conséquent, ils ne peuvent pas être inégaux.

extern int    Slippage=29;

int Slippage1 = 0;

int OnInit()
  {
//---
   //Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }

 
Alexey Viktorov:

Si le paramètre d'entrée est modifié, la variable Slippage1 est mise àSlippag dans OnInit.Par conséquent, ils ne peuvent pas être inégaux.

Oui, merci. Je viens de l'avoir.

 

Bonjour, s'il vous plaît aidez-moi avec l'erreur qui se produit dans le testeur quand j'essaie de modifier un ordre (transfert à Breakeven) : j'ai mis la fonction OrderOpenPrice() au lieu de SL, mais le testeur montre error1 (selon la documentation cela signifie qu'il y a une tentative de passer desvaleurs inchangées comme paramètres à la fonction). Je joins le code ! Merci d'avance !

void DeleteOrderFunction2() //fonction qui supprime le deuxième ordre et fixe le deuxième ordre au seuil de rentabilité un certain soir.

{

bool flag = false ;

si (FlagDeleteSecondOrder2 == true)

{

if(DayOfWeek() == DAYOFWEEK && //si un jour de semaine est sélectionné

Hour() == 22 //si c'est le soir

)

{

if(BuyCount() == 1 && if(il y a un ordre d'achat en cours)

SellStopCount() == 1 //et il y a un ordre de vente en attente.

)

{

for( int i = 0 ; i < OrdersTotal() ; i++) //créer des commandes

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES ;)

switch(OrderType())

{

cas OP_BUY : if(OrderProfit() > 0 &&

Bid > OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color) ;

drapeau =vrai ;

}

pause ;

cas OP_SELLSTOP : if(flag==true)

{

OrderDeleteX(OrderTicket(), Arrow_Color) ;

}

pause ;

}

}

}

if(SellCount() == 1 && // s'il y a un ordre de vente ouvert

BuyStopCount() == 1 //et il y a un ordre d'achat en attente.

)

{ Print("IS !!!!") ;

for( int i = 0 ; i < OrdersTotal() ; i++) //créer des commandes

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES ;)

switch(OrderType())

{

cas OP_SELL : si (OrderProfit() > 0 &&

Ask < OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color) ;

flag = true;Print("flag =", flag) ;

}

pause ;

cas OP_BUYSTOP : if(flag == true)

{

Print("flag =", flag) ;

OrderDeleteX(OrderTicket(), Arrow_Color) ;

}

pause ;

}

}

}


}


}

}

Raison: