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

 

Bonjour. Merci de m'aider à résoudre un problème dans mt5.

L'historique des cotations des paires de devises au-delà de 2016 ne se charge pas. Courtier - Gerchik.

Essayé :

1 - télécharger l'historique via le testeur de stratégie.

2 - via le terminal des outils. il affiche stupidement l'historique seulement jusqu'à 2016.

3 - Copie de l'historique à partir d'une paire chargée normalement sur le serveur MT5. Inutile, ces fichiers sont supprimés après le redémarrage du programme et l'historique ne s'affiche que jusqu'en 2016.

4 - Le support technique du courtier a dit d'exécuter les paires sans la lettre Z à la fin, mais ils ont toutes les paires de devises se terminant par Z - EURUSDz, AUDCADz.

Je suppose que le problème se situe au niveau du courtier et de son serveur, mais pourquoi supprime-t-il l'historique copié ? Est-ce que quelqu'un peut me dire comment télécharger l'historique normalement ?

 
gyperion #:

Bonjour. Merci de m'aider à résoudre un problème dans mt5.

L'historique des cotations des paires de devises au-delà de 2016 ne se charge pas. Courtier - Gerchik.

Essayé :

1 - télécharger l'historique via le testeur de stratégie.

2 - via le terminal des outils. il affiche stupidement l'historique jusqu'en 2016 seulement.

3 - copie de l'historique à partir d'une paire chargée normalement sur le serveur mt5. inutile, il supprime ces fichiers après le redémarrage du programme et l'historique ne va que jusqu'à 2016.

4 - Le support technique du courtier a dit d'exécuter les paires sans la lettre Z à la fin, mais ils ont toutes les paires de devises se terminant par Z - EURUSDz, AUDCADz.

Je suppose que le problème se situe au niveau du courtier et de son serveur, mais pourquoi supprime-t-il même l'historique copié ? Est-ce que quelqu'un peut me dire comment télécharger l'historique normalement ?

Alors peut-être qu'ils n'ont pas d'historique, puisqu'ils ne sont pas eux-mêmes une très vieille cuisine ?

 
Aleksey Vyazmikin #:

Peut-être n'ont-ils pas d'histoire, puisqu'ils ne sont pas eux-mêmes une cuisine très ancienne ?

Et quelles sont les cuisines qui ne travaillent pas à partir de la Russie ? Cela n'a pas vraiment d'importance. La question est de savoir comment télécharger l'historique, même si elles ne l'ont pas ?
 
gyperion #:
Et qu'y a-t-il à ne pas travailler en Russie ? Cela n'a pas vraiment d'importance. La question est de savoir comment télécharger l'histoire, même s'ils ne l'ont pas?

Pouvez-vous me prêter de l'argent même si vous n'en avez pas ?

 
gyperion #:
Et qu'y a-t-il à ne pas travailler en Russie ? Cela n'a pas vraiment d'importance. La question est de savoir comment charger l'histoire, même s'ils ne l'ont pas ?

Grâce à des personnages personnalisés, créez votre histoire.

Importing High Quality Tick Data to MetaTrader 5
Importing High Quality Tick Data to MetaTrader 5
  • 2021.11.28
  • www.mql5.com
In order to vet a potential trading strategy, it is imperative to ensure that the results obtained f r om optimizations and strategy tests are a true reflection of the performance of your EA
 
Nauris Zukas #:

Grâce à des personnages personnalisés, créez votre histoire.

Cela a partiellement fonctionné, mais l'important est que cela ait fonctionné. Je vais continuer à creuser. Merci pour votre aide, monsieur, j'ai déjà tout essayé.
 

Bonjour à tous, je veux écrire mon premier robot de trading (Expert Advisor). En backtest, il fonctionne parfaitement et les résultats des tests sont également respectables. Mais il y a différentes choses à prendre en compte, les types de comptes, les propriétés des symboles, les interférences avec d'autres EA, etc.

J'ai quatre variables pour cela :

bool isHedging; bool isFIFO; ulong positionTicket; double positionVolume;

Les deux premières variables sont définies dans la méthode init :

if ((bool)AccountInfoInteger(ACCOUNT_HEDGE_ALLOWED)) isHedging = true;
else isHedging = false;
if ((bool)AccountInfoInteger(ACCOUNT_FIFO_CLOSE)) isFIFO = true;
else isFIFO = false;

Si je veux ouvrir une position, je vérifie d'abord si cela pourrait poser des problèmes avec FIFO (c'est-à-dire que si je veux ouvrir une position longue, je regarde s'il existe déjà une position longue avec le même volume ou une position courte pour le symbole en question, sinon le StopLoss et le TakeProfit pourraient ne pas fonctionner correctement, comme je l'ai entendu). Enfin, j'utilise la méthode OrderSend et je place si elle a réussi :

positionVolume = tradeResult.volume;
positionTicket = tradeResult.deal;

En cas d'exécution d'un StopLoss ou d'un TakeProfit, la méthode OnTradeTransaction me permet de savoir si ma position EA (interne) a été fermée en vérifiant si la variable positionTicket correspond à transaction.position.

Si je souhaite clôturer une position de compte de netting, je ferme simplement une position longue par un short-trade avec le même volume.

Si je veux fermer une position de compte de couverture, je ferme la position avec trade.PositionClose(positionTicket, slippage) ;

Si je veux fermer une position de compte de couverture FIFO, je ferme la position la plus ancienne de chaque symbole, qui correspond à la direction de la position (longue/courte) et au volume, qui devrait être la mienne en raison de mes conditions d'entrée pour les comptes FIFO décrites ci-dessus.

Maintenant, je suis sûr d'avoir oublié quelque chose de fondamental. Comment puis-je m'assurer que le StopLoss et le TakeProfit d'un compte de netting sont également fermés lorsque je ferme la position EA (interne) comme décrit ci-dessus ? Existe-t-il des procédures plus élégantes et plus efficaces pour rendre l'EA conforme au FIFO ? Dans le cas d'un compte de hedging non-FIFO, si j'ouvre une position dans l'EA uniquement avec un MarketOrder, que je ne la traite pas et que je souhaite ensuite la fermer, la valeur tradeResule.deal est-elle toujours la même, de sorte que je puisse également fermer cette position sans souci avec trade.PositionClose(positionTicket, slippage), où positionTicket est justement la valeur tradeResult.deal enregistrée ?

J'ai cherché des réponses pendant plusieurs jours, mais je n'ai pas encore trouvé de réponse à mes questions. J'espère que quelqu'un pourra m'aider ici.

 
Benjamin Fotteler #:

Maintenant, je suis sûr d'avoir oublié quelque chose de fondamental. Comment puis-je m'assurer que le StopLoss et le TakeProfit d'un compte de netting sont également fermés lorsque je ferme la position (interne) de l'EA comme décrit ci-dessus ? Existe-t-il des procédures plus élégantes et plus efficaces pour rendre l'EA conforme au FIFO ? Dans le cas d'un compte de couverture non-FIFO, si je n'ouvre une position dans l'EA qu'avec un MarketOrder, que je ne la traite pas et que je souhaite ensuite la fermer, la valeur tradeResule.deal est-elle toujours la même, de sorte que je puisse également fermer cette position sans souci avec trade.PositionClose(positionTicket, slippage), positionTicket étant justement la valeur tradeResult.deal enregistrée ?

J'ai cherché des réponses pendant plusieurs jours, mais je n'ai pas encore trouvé de réponse à mes questions. J'espère que quelqu'un pourra m'aider ici.

Sur un compte de netting, il n'y a qu'une position par symbole. Si l'EA ne négocie qu'un seul symbole, cela peut être lu dans PositionTotal() - ou plus simplement PositionSelect() est soit fausse (=aucune), soit sélectionnée pour continuer.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

C'est exact. Merci pour cette remarque. Mais que dois-je faire, par exemple, si un autre EA fonctionne sur le même symbole, ouvre une position de 0,5 lot et un stop loss de 100 points, que mon EA ouvre une "position interne EA" de 0,5 et un stop loss de 150 points, c'est-à-dire qu'il augmente la position existante à 1 lot, et que je ferme ensuite la "position interne EA", c'est-à-dire que je réduis la position existante à 0,5 lot. Quel est alors le stop loss pour les 0,5 lots restants ? 100 points ou 150 points ? Ou est-ce que je ne peux pas, en mode de compensation, fixer un stop-loss indépendant pour "mes" 0,5 lots via SendRequest ?

Je veux dire que je ne veux pas simplement modifier les stop-loss bien pensés d'autres EA, mais je ne veux pas non plus abandonner le mien. Existe-t-il une solution efficace à mon "problème", à part l'ouverture d'une "position interne à l'EA" en mode netting uniquement lorsqu'il n'y a pas de position ouverte pour le symbole ?

 
Benjamin Fotteler symbole, ouvre une position de 0,5 lot et un stop loss de 100 points, que mon EA ouvre une "position interne EA" de 0,5 et un stop loss de 150 points, c'est-à-dire qu'il augmente la position existante à 1 lot, et que je ferme ensuite la "position interne EA", c'est-à-dire que je réduis la position existante à 0,5 lot. Quel est alors le stop loss pour les 0,5 lots restants ? 100 points ou 150 points ? Ou est-ce que cela n'est pas possible en mode de compensation, que je fixe dans un tel cas un stop-loss indépendant pour "mes" 0,5 lots via SendRequest ?

Je veux dire que je ne veux pas simplement modifier les stop-loss bien pensés d'autres EA, mais je ne veux pas non plus abandonner le mien. Existe-t-il une solution efficace à mon "problème", à part l'ouverture d'une "position interne à l'EA" en mode netting uniquement s'il n'y a pas de position ouverte pour le symbole ?

Si, sur un compte Nettig ( !), le premier EA achète (buy) 0,01 lot pour l'EURUSD par exemple et qu'un deuxième EA vend (sell) 0,05 lot, il n'y a qu'une seule position sur le compte avec maintenant 0,04 sell. Les numéros de ticket n'ont ici aucune importance pour le moment. Et si le deuxième ordre place de nouveaux SL et TP pour la seule position en EURUSD, ceux du premier ordre seront écrasés.

Il n'y a qu'une seule position avec un SL et un TP, si indiqué.

Raison: