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

 
Vitaly Muzichenko:

Merci pour la réponse, mais comment le faire fonctionner, je n'en ai aucune idée.

Je vais essayer une dernière fois de vous tendre la main... Je n'ai pas de compte avec les outils indiqués dans le problème, mais voici un script qui fonctionne sur le forex. Le résultat coïncide avec les valeurs qui apparaissent comme des indices dans cette capture d'écran.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

FAQ des débutants MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2017.07.26 23:56

J'ai un lot d'achat ouvert, et lorsque je règle le takeprofit, le terminal le recalcule en dollars, car mon compte est libellé en dollars,

Mais lorsque je le calcule à l'aide de la formule (close_price-open_price)*Lots*TickPrice/TickSize, le montant de mon takeprofit est calculé en roubles.

Sur le graphiqueSBRF-9.17

Si nous divisons le rouble par le taux du dollar 174,99/USDRUR = 2,93 $, nous obtiendrons le profit en dollars.

Comment l'écrire de manière programmatique et faire en sorte qu'il se calcule lui-même ?

/********************Script program start function*******************/
void OnStart()
{
 for(int i = 0; i < PositionsTotal(); i++)
  {
   ulong positionTicket = PositionGetTicket(i);
   string positionSymbol = PositionGetString(POSITION_SYMBOL);
   ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double positionTP = PositionGetDouble(POSITION_TP);
   double positionOpen = PositionGetDouble(POSITION_PRICE_OPEN);
   double point = SymbolInfoDouble(positionSymbol, SYMBOL_POINT);
   int profitPoint = int(fabs(positionOpen-positionTP)/point);
   double positionProfit = PositionGetDouble(POSITION_PROFIT);
   string symbolCurrencyProfit = SymbolInfoString(positionSymbol, SYMBOL_CURRENCY_PROFIT);
   int currentProfit = positionType == POSITION_TYPE_SELL
    ? int((positionOpen-PositionGetDouble(POSITION_PRICE_CURRENT))/point)
    : int((PositionGetDouble(POSITION_PRICE_CURRENT)-positionOpen)/point);
   Print("PositionSymbol ", positionSymbol);
   Print("SymbolCurrencyProfit ", symbolCurrencyProfit);
   Print("PositionTP ", DoubleToString(positionTP, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionOpen ", DoubleToString(positionOpen, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionProfit ", DoubleToString(positionProfit, 2));
   Print("ProfitPoint ", profitPoint);
   Print("CurrentProfit ", currentProfit);
   Print("ИТОГО ", positionProfit/currentProfit*profitPoint);
  }
   
}/*******************************************************************/

J'ai 2 postes à pourvoir. Voici le résultat du script

2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURGBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit GBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 0.88697
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 0.89197
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit 14.47
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit 109
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 66.37614678899082
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURJPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit JPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 130.940
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 130.440
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit -0.90
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit -9
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 50.0


MAIS ! !! Malheureusement, au moment où la position est fermée, personne ne pourra jamais deviner quelle sera la cotation de la devise de profit par rapport à la devise de dépôt. À cet égard, il est impossible de déterminer une valeur absolument exacte. Eh bien, il n'y a aucun moyen de regarder dans le futur.

 
Vitaly Muzichenko:

Non, pour calculer les profits et les pertes avant d'ouvrir une position, mais dans la devise du dépôt, et non de l'instrument.

Pourquoi avez-vous besoin de connaître les bénéfices/pertes dans votre cas, pas pour contrôler les risques ? - J'étais juste curieux - la devise du dépôt est claire, bien qu'il ne soit pas clair dans quelles conditions réelles il serait utilisé.
 
Alexey Viktorov:

Je vais essayer de vous tendre la main une dernière fois... Je n'ai pas de compte avec les outils mentionnés dans le problème, mais voici un script qui fonctionne en forex. Le résultat coïncide avec les valeurs qui apparaissent comme un indice, comme dans cette capture d'écran.


J'ai 2 postes à pourvoir. Voici le résultat du travail du script


MAIS ! !! Malheureusement, au moment où la position est fermée, personne ne pourra jamais deviner quelle sera la cotation de la devise de profit par rapport à la devise de dépôt. À cet égard, il est impossible de déterminer une valeur absolument exacte. Il n'y a aucun moyen de regarder dans le futur.

Voici ce que le script a montré :

2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionSymbol SBRF-9.17
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        SymbolCurrencyProfit RUR
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionTP 16777
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionOpen 16677
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionProfit 1.07
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ProfitPoint 100
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        CurrentProfit 64
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ИТОГО 1.671875
 
Vitaly Muzichenko:

C'est ce que le script a montré :

Vitaly, vous pouvez le découvrir vous-même... Le principe est plus simple que 3 roubles...

PositionGetDouble(POSITION_PROFIT);

Retourne le bénéfice de la position dans la devise du dépôt. Si nous divisons cette valeur par le nombre de points entre le cours d'ouverture et le cours actuel, nous obtenons la valeur du point dans la monnaie de dépôt... Il ne reste plus qu'à multiplier la valeur par le nombre de pips de l'ouverture au tp et c'est tout... Mais comme je ne peux pas, et que je suis trop paresseux pour créer un nouveau compte, vous devez vous débrouiller tout seul. Mais vous ne savez pas ce que vous devez obtenir, comment savoir si le résultat est correct ou non ? Vous devrez peut-être imprimer quelques valeurs supplémentaires pour comprendre. Qu'est-ce qui compte comme une clause ? Je ne sais pas, il faut peut-être en tenir compte d'une manière ou d'une autre. Ou bien la taille du contrat standard est-elle en quelque sorte prise en compte... Je ne sais pas.

 

Comment comprendre le graphique gris


dans le mode d'image normal


 

Dans MT4, vous pointez la souris sur le graphique et vous pouvez voir à quel endroit il se trouve - mais ici l'image est statique - c'est moche.

 
Comment tracer l'optimisation par un indicateur spécifique (profit/perte/fv) ?
 
Bonjour à tous. J'ai un problème, j'ai transféré de l'argent sur mon compte MQL5 et téléchargé l'application MetaTrader 5, mais je n'arrive pas à transférer l'argent pour commencer à trader. J'ai besoin d'aide.
 
Minora125:
Bonjour à tous. J'ai un problème, j'ai transféré de l'argent sur mon compte MQL5 et j'ai également téléchargé l'application MetaTrader 5, mais je n'arrive pas à transférer l'argent pour commencer à trader. J'ai besoin d'aide.

MQL5 n'est pas une société de courtage, elle ne vous permet pas de négocier sur un compte réel. Pour transférer de l'argent, vous pouvez utiliser des services : Freelance, Market, Cloud.

Envoyez votre demande au Service Desk (il y a un lien dans votre profil) et demandez le remboursement de l'argent transféré à tort.

 

Après un passage dans le testeur, un graphique s'ouvre avec des transactions, comment puis-je désactiver cela ?

Raison: