Répondre

modification de la valeur des paramètres

3 réponses

chengsmine

Abonné, bbp_participant, communauté, 42 réponses.

Visiter le profil

il y a 10 ans #111615

J'ai une valeur initiale d'un certain paramètre DS fixée à 5 (input)) lorsque l'EA démarre. Après la clôture de certaines transactions, DS est augmenté à 10. Mais il semble que cette nouvelle valeur n'ait pas remplacé la valeur initiale de DS lorsque l'EA redémarre. Par exemple,

Entrée : DS=5 ;

 

Règle 1 :

PU= Open (0) + ConvetToRealPips(DS)

 

Après de nombreuses règles :

Clôturer toutes les commandes

DS=DS+5

 

La nouvelle valeur de DS est donc de 10, mais on constate que DS est toujours <=5 dans la règle 1 lorsque l'EA redémarre (revient à la règle 1).

 

Pourquoi ? Existe-t-il une solution à ce problème ?

 

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #122729

lorsque vous redémarrez un EA, il oublie toutes les valeurs qui ont été stockées en mémoire et utilise à nouveau les valeurs par défaut.

Il n'y a pas de solution simple, cela fonctionne simplement comme suit.

 

Le seul moyen de conserver des valeurs antérieures au redémarrage de l'EA serait de les enregistrer dans un fichier et de les charger à nouveau.

 

Vous pouvez également essayer de reconnaître les DS à partir de vos commandes - par exemple, si vous utilisez des tailles différentes pour chaque commande, vous pouvez utiliser la taille de la commande actuelle pour reconnaître la valeur DS utilisée la dernière fois.

 

Marque

Marque
StratégieArchitecte de Quantités

0

chengsmine

Abonné, bbp_participant, communauté, 42 réponses.

Visiter le profil

il y a 10 ans #122733

Comment pouvez-vous vous souvenir de la taille de la dernière commande, alors que vous mentionnez plus haut que toutes les valeurs stockées en mémoire sont effacées lorsque vous redémarrez l'EA ?

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #122751

vous ne pouvez pas vous souvenir de la valeur de la dernière commande, mais vous pouvez l'obtenir à partir de l'historique des commandes.

 

Il suffit d'ajouter cette fonction à la fin du fichier {EA Wizard}/code/CustomFunctions.mq4 :

 

double sqGetLastPositionSize(int orderMagicNumber) {
   for(int i=OrdersHistoryTotal() ; i>=0 ; i-) {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol()) {
         if(orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) {
            return(OrderLots()) ;
         }
      }
   }
 
   retour(0) ;
}

 

Vous pouvez ensuite l'utiliser dans des conditions en appelant la fonction personnalisée : sqGetLastPositionSize(YourMagicNumber)

 

Marque

Marque
StratégieArchitecte de Quantités

0

Affichage de 3 réponses de 1 à 3 (sur un total de 3)