Questions des débutants MQL5 MT5 MetaTrader 5 - page 646

 
Tra-der:
Il y a deux bornes MT5. Problème : puis-je écrire des scripts pour autoriser uniquement les transactions longues dans un terminal et uniquement les transactions courtes dans l'autre ?
#define ORDER_TYPE_BUY ORDER_TYPE_BUY_STOP   // поставить в самом начале советника, если нужно отказаться от BUY-сделок
#define ORDER_TYPE_SELL ORDER_TYPE_SELL_STOP // поставить в самом начале советника, если нужно отказаться от SELL-сделок
 
Tra-der:
Il y a deux bornes MT5. Tâche : Est-il possible d'écrire des scripts pour autoriser uniquement les transactions longues dans un terminal et uniquement les transactions courtes dans l'autre ?

Il suffit d'entrer un paramètre d'entrée dans votre EA et, en fonction de la valeur qui lui est attribuée au démarrage, vous ne ferez qu'acheter ou que vendre :

input bool Long=true;            // allow only "Long"
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
...
void OnTick()
  {
   if(!Long)
      trade.Sell(0.01);
   if(Long)
      trade.Buy(0.01);
  }
 
Artyom Trishkin:

Pour savoir s'il s'agit d'un nouveau haut ou d'un nouveau bas, vous devez vous rappeler l'heure du dernier haut/bas que vous avez trouvé, et la comparer avec ce que vous avez trouvé jusqu'à présent.

Merci, c'est clair avec le tampon.

Afin de se souvenir de l'heure du dernier sommet trouvé, vous devez la connaître d'une manière ou d'une autre.

Comment faire, comment connaître l'heure du dernier sommet trouvé?

 
mila.com:

Merci, le tampon est clair.

Afin de se souvenir de l'heure du dernier sommet trouvé, vous devez la connaître d'une manière ou d'une autre.

Comment faire, comment connaître l'heure du dernier sommet trouvé?

Vous déclarez une variable statique pour stocker l'heure de l'extremum précédent du zigzag et l'initialisez avec zéro.

2. Trouvez un sommet et si son temps n'est pas égal au temps dans la variable statique, considérez que vous avez trouvé l'extremum requis et mémorisez le nouveau temps dans cette variable.

GoTo(2) ;

 

Camarades programmeurs !

Recommandez un moyen de savoir si l'écart a augmenté.

Le problème est le suivant : pendant la transition vers une nouvelle journée, la société de courtage élargit le spread, et parfois c'est fou pour certaines paires - il dépasse de 3 à 5 fois la valeur normale. Les écarts liés à l'heure d'été sont différents dans les sociétés de courtage avec un changement d'heure de 23 à 59 et de 20 à 59 et ainsi de suite.

Pour certains, le spread ne change pas beaucoup. Nous ne pouvons donc pas interdire le robot "Working by time" car si le spread ne change pas, nous n'aurons pas à interdire le trading.

La question principale est de savoir comment détecter que le spread est trop important et donc interdire au robot d'ouvrir une position. Je vois une variante qui consiste à stocker les tailles de spread dans un fichier pour chaque nouvelle barre pour les 5-7 dernières barres, puis d'additionner le tout et de diviser par le nombre, ce qui permet d'obtenir le spread moyen et de le multiplier par 1,2 - 1,4 (marge), mais il n'est pas intéressant de sauvegarder et de multiplier les fichiers et je ne suis pas sûr que ce soit la bonne solution pour calculer le spread moyen. Si j'entre manuellement l'écart maximal autorisé dans les paramètres, c'est très trivial et sans intérêt en termes de fonctionnement du robot.

Veuillez me conseiller la solution optimale pour cette question, qui ne craint pas de redémarrer le terminal, et l'arrêt d'urgence en cas de panne de courant. De plus, il est préférable de trouver une solution qui minimise la charge du programme, afin qu'il ne recalcule pas à chaque tic.

Merci !

 
Vitaly Muzichenko:

Camarades programmeurs !

Recommandez un moyen de savoir si l'écart a augmenté.

Le problème est le suivant : pendant la transition vers un nouveau jour, la société de courtage élargit le spread, et parfois c'est fou pour certaines paires - il dépasse de 3 à 5 fois la valeur normale. Les écarts liés à l'heure d'été sont différents dans les sociétés de courtage avec un changement d'heure de 23 à 59 et de 20 à 59 et ainsi de suite.

Pour certains, le spread ne change pas beaucoup. Nous ne pouvons donc pas interdire le robot "Working by time" car si le spread ne change pas, nous n'aurons pas à interdire le trading.

La principale question est de savoir comment détecter que l'écart est trop important et comment empêcher le robot d'ouvrir une position. Je vois une variante qui consiste à stocker les tailles de spread dans un fichier pour chaque nouvelle barre pour les 5-7 dernières barres, puis d'additionner le tout et de diviser par le nombre et ainsi obtenir le spread moyen et de multiplier par 1,2 - 1,4 (marge), mais il n'est pas intéressant de sauvegarder et de multiplier les fichiers. Si j'entre manuellement l'écart maximal autorisé dans les paramètres, c'est très trivial et sans intérêt en termes de fonctionnement du robot.

Veuillez m'indiquer quelle serait la meilleure solution pour répondre à cette question. Merci !

C'est peut-être trivial, mais j'entre la limite manuellement. Et si la veille du Nouvel An, pour les N dernières bougies, l'écart est 3 fois plus important que d'habitude, et que la nuit il est encore 3 fois plus important, le système d'analyse le considérera comme un écart normal x3. Je pense que si une personne négocie sur un compte réel, il ne lui est pas difficile d'estimer manuellement l'écart de travail moyen et de fixer le seuil. Bien que la solution de votre question m'intéresserait aussi).
 
Quelle est la logique de TC qui dépend autant du spread !
 
fxsaber:
Quel est ce genre de logique TS qui dépend à ce point de la propagation !

OK, disons-le comme ça. Ici, par exemple, le spread ne s'élargit même pas trois fois, mais plus, et si vous entrez sur le marché avec un spread de 20pp, alors que le spread normal est de 4-6pp, alors ce n'est pas normal, et nous devons couper ces moments.

 
Vitaly Muzichenko:

OK, disons-le comme ça. Par exemple, le spread ici n'est même pas trois fois plus large, mais plus, et si vous entrez sur le marché avec un spread de 20pp, alors que le spread normal est de 4-6pp, ce n'est pas normal, et nous devons couper ces points.

Il faut donc se concentrer sur l'offre si l'on veut vendre. Quelle différence cela fait-il de se répandre ? Ok, je n'interviendrai plus.
 
Vitaly Muzichenko:

OK, disons-le comme ça. Par exemple, le spread ici n'est même pas trois fois plus large, mais plus, et si vous entrez sur le marché avec un spread de 20pp, alors que le spread normal est de 4-6pp, ce n'est pas normal, et nous devons couper ces points.

Global n'aidera pas ?
Raison: