Répondre

Prendre une deuxième commande sur le même bar

7 réponses

ryanbrignac9764

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

Visiter le profil

Il y a 8 ans #114680

J'ai essayé de consulter les forums mais je n'ai pas trouvé la réponse à ma question.

 

En tête de mon règlement, j'indique toujours "Le bar est-il ouvert ?", puis j'énumère mes règles.

 

Ensuite, j'entre au marché ou à l'ordre limité... 

 

Donc, si j'entre dans un ordre de marché lorsque la barre d'ouverture est vraie et que sur cette même barre, il atteint mon objectif de profit et sort de la transaction avec un profit.... Comment puis-je lui dire que si pendant cette même barre, le prix revient à mon prix d'entrée sur la même barre il y a juste quelques secondes et qu'il est sorti avec un profit, il doit alors entrer à nouveau en position à ce même prix dans la même direction qu'il vient juste d'être ?

 

Mais une fois que la barre est terminée et que l'on passe à la barre suivante, je ne veux pas qu'il prenne la transaction.

 

Je veux seulement qu'il prenne la deuxième transaction s'il revient à mon prix d'entrée après que le premier prix d'entrée ait été un succès.

 

R.B. 

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 8 ans #135263

Lorsque vous entrez en position à l'aide d'un ordre de marché, vous pouvez définir une variable waitForLimit = 1 et enregistrer votre objectif de profit.

L'EA attend alors que le marché atteigne ce prix et que la position du marché ne soit PAS plate jusqu'à la fermeture de la barre et place un ordre limite.

Ajoutez la condition "if isBarOpen = true AND waitForLimit = 1" que vous définissez à waitForLimit = 0 pour éviter de placer un ordre limite après la fermeture de la barre.

 

Attention, cela nécessite un backtesting précis pour obtenir des résultats significatifs.

 

Faites-moi savoir si vous avez besoin d'un exemple pour cela dans WIzard.

0

Fx Mena

Client, bbp_participant, community, sq-ultimate, 23 réponses.

Visiter le profil

Il y a 8 ans #135825

Même problème

 

J'ai besoin d'une fonction pour vérifier le dernier ordre clôturé (la plupart des ordres sont clôturés manuellement et l'EA ouvre une nouvelle transaction).

Ce dont j'ai besoin :

 

ACHETER si seulement le dernier ordre clôturé était VENDRE

SELL si seul le dernier ordre clôturé était BUY

 

Comment ajouter à l'EA ?

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 8 ans #135835

Ceci pourrait faire l'affaire. Il existe deux fonctions : Dernière commande et Dernière commande aujourd'hui ... tout dépend de ce que vous préférez.

0

Fx Mena

Client, bbp_participant, community, sq-ultimate, 23 réponses.

Visiter le profil

Il y a 8 ans #135847

Ceci pourrait faire l'affaire. Il existe deux fonctions : Dernière commande et Dernière commande aujourd'hui ... tout dépend de ce que vous préférez.

 

Bien, cela résout une partie du système, si je purge SL=0, et que j'active le Reverse trading CloseSell/OpenBuy vs CLoseBuy openSell, après quelques trades, EA arrêtera de faire Reset/Set traded=0 ou 1, et continuera avec un trade (short/long) qui ne peut pas être fermé si le TP n'est pas atteint.

 

 

Le problème de : Dernière commande & Dernière commande aujourd'hui qui nous renvoie l'opération ACTIVE en cours, et non les opérations clôturées, n'est-ce pas ?

 

Comment modifier la fonction personnalisée suivante et extraire les règles de stratégie en tant que : || ou &&   Pour renvoyer les règles si la dernière position fermée était VENDRE ou ACHETER.

 

Source :

http://forum.mt5.com/showthread.php?434-Mql4-useful-functions&s=af607396aa1f53a7c40609e45e03d154&p=1463&viewfull=1#post1463

http://forum.mt5.com/showthread.php?434-Mql4-useful-functions&p=1547&viewfull=1#post1547

int sqGetLastOrderHist(int type = -1)
{
  int ticket = -1 ;
  datetime dt = 0 ;
  int cnt = HistoryTotal() ;
    
  for (int i=0 ; i dt) {
      dt = OrderCloseTime() ;
      ticket = OrderTicket() ;
    }
  }
  
  return (ticket) ;
}

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 8 ans #135885

La fonction Dernier ordre renvoie le dernier ordre. Comme je l'ai expliqué dans l'exemple, l'EA attend que la position soit égale à zéro et évalue la dernière transaction. Ensuite, il effectue la transaction inverse.

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 8 ans #136135

J'ai essayé de modifier votre fichier. Voir le projet d'assistant ci-joint.

En fait, j'ai supprimé la condition "Market Position is Flat" et j'ai remplacé "Last Order Was" par ma propre variable.

Faites-moi savoir si cela vous a aidé

Fichier : Stratégie.sqw

0

Fx Mena

Client, bbp_participant, community, sq-ultimate, 23 réponses.

Visiter le profil

Il y a 8 ans #136154

Merci beaucoup, tout de suite mystères & Problem résolu avec l'assistant EA.

Cet exemple comprend toutes les actions et règles nécessaires à la mise en œuvre de stratégies complètes.

 

🙂  Je suis très content, 1 an à essayer de résoudre ce problème, vous méritez le meilleur. Monsieur Tomas

0

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