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

 
leonerd:

Que signifie l'échelle de temps dans l'histoire du commerce ?

Échelle X. Que signifient les valeurs de l'échelle ?

Dites-moi, que signifient les chiffres du tableau de la déclaration commerciale ?

 
leonerd:

Que signifient ces chiffres sur le graphique de la déclaration commerciale ?

Le numéro de la transaction qui a conduit à la modification du solde.

 
Je n'ai pas compris tout de suite, c'est une question enfantine :

Comment puis-je tester mon TS dans MT5 sans tenir compte du spread ?

Dans MT4 tout est immédiatement visible dans le testeur, dans MT5 dois-je générer un symbole Bid personnalisé?
 
Pour travailler avec Json, est-ce la meilleure solution ou existe-t-il quelque chose de plus récent et de plus correct ?
JSON Serialization and Deserialization (native MQL)
JSON Serialization and Deserialization (native MQL)
  • www.mql5.com
ForecastOscilator_HTF The ForecastOscilator indicator with the timeframe selection option available in the input parameters. Flat_HTF The Flat indicator with the timeframe selection option available in the input parameters. FX5_SelfAdjustingRSI_HTF The FX5_SelfAdjustingRSI...
 
Igor Makanu:
Je n'ai pas compris tout de suite, c'est une question enfantine :

Comment puis-je tester mon TS dans MT5 sans tenir compte du spread ?

Dans MT4 tout est immédiatement visible dans le testeur, dans MT5 dois-je générer un symbole Bid personnalisé ?

Vous pouvez essayer d'ouvrir la fenêtre"Strategy Tester", onglet "Settings" - appuyez sur le bouton à côté du symbole et corrigez le symbole - réglez l'écart à "0".

 

MT5

Veuillez indiquer comment mettre en œuvre l'augmentation du lot en fonction du solde.

Mais pas en %, mais en valeur de croissance par paliers.

Pour chaque augmentation de 1000 $ du solde, je veux augmenter le lot par pas de 0,1.

Mes données initiales sont lapaire EUR/USD

Dépôt (solde initial) 1000 $.

Lot initial 0,1

Besoin.

Si le dépôt :

1000 puis lot 0.1

2000 puis lot 0,2

3000 puis lot 0,3

Etc.

J'utilise maintenant cette méthode :

if (Balance>= 1000 && Balance<=2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<=3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<=3000)  Lot = 0.3;

Etc.

Mais au lieu de cette énumération sans fin, j'aimerais avoir une fonction.

J'ai essayé de l'inventer moi-même, mais ça n'a pas très bien marché.

Peut-être à cause de problèmes de normalisation...

Veuillez me conseiller, quelqu'un a peut-être une solution toute faite ou un exemple.

Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
  • www.mql5.com
Валютная пара EUR/USD — самая ликвидная, поскольку в ней участвуют первая и вторая по значимости мировые резервные валюты. Это подтверждается и статистически: доллар и евро самые крупные по объему
 
Vladpedro:

MT5

Veuillez indiquer comment mettre en œuvre l'augmentation du lot en fonction du solde.

Mais pas en %, mais en valeur de croissance par paliers.

Pour chaque augmentation de 1000 $ du solde, je veux augmenter le lot par pas de 0,1.

Mes données initiales sont lapaire EUR/USD

Dépôt (solde initial) 1000 $.

Lot initial 0,1

Besoin.

Si le dépôt :

1000 puis lot 0.1

2000 puis lot 0,2

3000 puis lot 0,3

Etc.

J'utilise maintenant cette méthode :

Etc.

Mais au lieu de cette énumération sans fin, j'aimerais avoir une fonction.

J'ai essayé de l'inventer moi-même, mais ça n'a pas très bien marché.

Peut-être à cause de problèmes de normalisation...

Peut-être que quelqu'un a une solution toute prête ou un exemple.

Faites attention au quotient lorsque vous divisez le dépôt par 1000. A un dépôt < 2000 il y aura 1 entier et quelques dixièmes, centièmes.... qui ne présentent aucun intérêt. Le dépôt de 2000 sera de 2 et ainsi de suite. Il s'avère qu'il suffit de multiplier la partie entière de cette fraction par 0,1 pour obtenir ce que l'on veut.

Et dans votre liste, il y a une erreur, bien qu'insignifiante. La méthode correcte est la suivante

if (Balance>= 1000 && Balance<2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<3000)  Lot = 0.3;
 
Vladpedro:

MT5

Veuillez indiquer comment mettre en œuvre l'augmentation du lot en fonction du solde.

Mais pas en %, mais en valeur de croissance par paliers.

Pour chaque augmentation de 1000 $ du solde, je veux augmenter le lot par pas de 0,1.

Mes données initiales sont lapaire EUR/USD

Dépôt (solde initial) 1000 $.

Lot initial 0,1

Besoin.

Si le dépôt :

1000 puis lot 0.1

2000 puis lot 0,2

3000 puis lot 0,3

Etc.

J'utilise maintenant cette méthode :

Etc.

Mais au lieu de cette énumération sans fin, j'aimerais avoir une fonction.

J'ai essayé de l'inventer moi-même, mais ça n'a pas très bien marché.

Peut-être à cause de problèmes de normalisation...

Peut-être que quelqu'un a une solution toute prête ou un exemple.

Trouvez l'arrondi en utilisant MathCeil, MathRound ou MathFloor.

Voyez par exemple comment ils fonctionnent :

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double start_balance=1000;
   double step_balance=1000;

   Print("Step ",DoubleToString(step_balance,1));

   for(int i=0; i<12; i++)
     {
      double division=start_balance/step_balance;
      Print("Balance ",DoubleToString(start_balance,1),
            ", division ",DoubleToString(division,1),
            ", MathCeil(",DoubleToString(division,1),") ->  ",MathCeil(division),
            ", MathRound(",DoubleToString(division,1),") ->  ",MathRound(division),
            ", MathFloor(",DoubleToString(division,1),") ->  ",MathFloor(division));
      start_balance=start_balance+step_balance/3;
     }
  }
//+------------------------------------------------------------------+

et le résultat.

Step 1000.0
Balance 1000.0, division 1.0, MathCeil(1.0) ->  1.0, MathRound(1.0) ->  1.0, MathFloor(1.0) ->  1.0
Balance 1333.3, division 1.3, MathCeil(1.3) ->  2.0, MathRound(1.3) ->  1.0, MathFloor(1.3) ->  1.0
Balance 1666.7, division 1.7, MathCeil(1.7) ->  2.0, MathRound(1.7) ->  2.0, MathFloor(1.7) ->  1.0
Balance 2000.0, division 2.0, MathCeil(2.0) ->  2.0, MathRound(2.0) ->  2.0, MathFloor(2.0) ->  1.0
Balance 2333.3, division 2.3, MathCeil(2.3) ->  3.0, MathRound(2.3) ->  2.0, MathFloor(2.3) ->  2.0
Balance 2666.7, division 2.7, MathCeil(2.7) ->  3.0, MathRound(2.7) ->  3.0, MathFloor(2.7) ->  2.0
Balance 3000.0, division 3.0, MathCeil(3.0) ->  3.0, MathRound(3.0) ->  3.0, MathFloor(3.0) ->  3.0
Balance 3333.3, division 3.3, MathCeil(3.3) ->  4.0, MathRound(3.3) ->  3.0, MathFloor(3.3) ->  3.0
Balance 3666.7, division 3.7, MathCeil(3.7) ->  4.0, MathRound(3.7) ->  4.0, MathFloor(3.7) ->  3.0
Balance 4000.0, division 4.0, MathCeil(4.0) ->  5.0, MathRound(4.0) ->  4.0, MathFloor(4.0) ->  4.0
Balance 4333.3, division 4.3, MathCeil(4.3) ->  5.0, MathRound(4.3) ->  4.0, MathFloor(4.3) ->  4.0
Balance 4666.7, division 4.7, MathCeil(4.7) ->  5.0, MathRound(4.7) ->  5.0, MathFloor(4.7) ->  4.0

Je recommande d'utiliserMathFloor.

Документация по MQL5: Математические функции / MathFloor
Документация по MQL5: Математические функции / MathFloor
  • www.mql5.com
Математические функции / MathFloor - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Dossiers :
1.mq5  3 kb
 
Alexey Viktorov:

Faites attention au quotient lorsque vous divisez le dépôt par 1000. Si le dépôt < 2000 sera 1 entier et quelques dixièmes, centièmes. qui ne présentent pas d'intérêt. Le dépôt de 2000 contiendra 2 et ainsi de suite. Il s'avère qu'il suffit de multiplier la partie entière de cette fraction par 0,1 pour obtenir ce que l'on veut.

Et dans votre énumération, bien que mineure, il y a une erreur. Correct est

Alexey

Merci. J'ai eu l'idée de diviser par 1000 et de réduire en entier, je vais essayer de l'implémenter.

<= a été réglé sur automatiquement, pas à partir du code. J'écris avec mes mains, et les stylos sont tels ...))

 
Vladimir Karputov:

Sélectionnez une opération d'arrondi parmi MathCeil , MathRound ou MathFloor.

Un exemple de leur fonctionnement :

et le résultat.

Je vous recommande d'utiliserMathFloor.

Merci, juste ce qu'il faut.