Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 892

 
Seric29:
Les gars qui peuvent aider avec cette question. Je veux déclarer une variable globale de type indéfini ou de type arbitraire. Cette variable sera ensuite utilisée dans les fonctions où des modèles sont appliqués. En d'autres termes, j'appelle une fonction et je prends un tableau de n'importe quel type, alors les calculs seront effectués et le résultat sera renvoyé par la fonction et sera affecté à cette variable. Je veux stocker le résultat du calcul de ces paramètres dans une variable, pour ne pas avoir à appeler la fonction une deuxième fois. Comment trouver une solution universelle avec le moins de contrôles possible, puis-je convertir le type de variable, ou la déclarer comme variable avec une macro, que puis-je faire ?

Si je comprends bien, alors

https://www.mql5.com/ru/docs/basis/oop/templates

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
leonerd:

Je ne comprends pas vraiment ce commentaire. Vous pouvez ouvrir une position de verrouillage (opposée à la position ouverte) avec une marge libre inférieure à la marge de l'ordre nouvellement ouvert (non verrouillé). Alors où est le 100% là ?

Exemple :

Devise USDJPY, effet de levier 1:100. Lot 0.1, la marge est de 100

Selon la spécification, la marge couverte est de 50000, ce qui signifie que 50 % de la marge est couverte.

Pour ouvrir une position de blocage, 100 fonds supplémentaires doivent être disponibles sur le compte. Sinon, il y aura une erreur ... Je ne me souviens pas du nombre, en général, pas assez de fonds.

Et ce n'est qu'après avoir ouvert une position que la marge réelle sera corrigée selon les valeurs indiquées dans la spécification.

Mais, s'il n'y a que 50 fonds disponibles sur le compte, alors vous pouvez ouvrir deux fois pour 0,05%.

 
Alekseu Fedotov:

Si j'ai bien compris, alors

https://www.mql5.com/ru/docs/basis/oop/templates

Je connais déjà l'utilisation de la technologie des modèles. Cette méthode permet de renvoyer le type d'une variable, mais pas de convertir le type d'une variable en un autre. Ce n'est peut-être pas possible.

 
Alexey Viktorov:

Exemple :

Devise USDJPY, effet de levier 1:100. Lot 0.1, la marge est de 100

Selon le cahier des charges, la marge couverte est de 50 000, soit 50 %.

Pour ouvrir une position de blocage, 100 fonds supplémentaires doivent être disponibles sur le compte. Sinon, il y aura une erreur ... Je ne me souviens pas du nombre, en général, pas assez de fonds.

Et seulement après l'ouverture d'une position, la marge réelle sera corrigée selon les valeurs de la spécification.

Mais, s'il n'y a que 50 fonds libres sur le compte, alors vous pouvez ouvrir deux fois pour 0,05.

Ok, peut-être que c'est comme ça. Nous devrions vérifier.

Nous devrions vérifier le prix d'une commande. Alors qu'en est-il de la fonction MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin ?

Le prix d'ouverture de l'ordre se trouve dans le paramètre. Comment cela fonctionne-t-il pour les croix ? Comment cela fonctionne-t-il pour les taux croisés ? MT5 sait-il prédire les prix ?

Документация по MQL5: Торговые функции / OrderCalcMargin
Документация по MQL5: Торговые функции / OrderCalcMargin
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных ордеров и открытых позиций. Позволяет оценить размер маржи для планируемой торговой операции. Значение возвращается в валюте счета. [out]  Переменная, в которую...
 
j'ai téléchargé l'indicateur freeNumFractals pour mt5, mais les fractales ne s'actualisent pas sur le graphique.

FreeNumFractals

 
Pavel5554:
j'ai déjà réinstallé mt5 et cet indicateur, mais cela n'a aucun effet.

FreeNumFractals

Quel est l'indicateur ? Je n'ai pas d'effet. Où est le lien vers celui-ci ?

 
leonerd:

D'accord, peut-être que c'est ça. Nous allons devoir vérifier.

Sur le prix de la commande. Qu'en est-il de la fonction MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin ?

Le prix d'ouverture de l'ordre se trouve dans le paramètre. Comment cela fonctionne-t-il pour les croix ? Comment cela fonctionne-t-il pour les taux croisés ? Le MT5 peut-il prédire les prix ?

Eh bien, vous devez tout lire attentivement. Citation de la documentation :

Le calcul est effectué comme s'il n'y avait pas d'ordres en attente et de positions ouvertes sur le compte courant. La valeur de la marge dépend de nombreux facteurs et peut changer lorsque l'environnement du marché évolue.

Le calcul est effectué... c'est-à-dire que la valeur obtenue sera sans tenir compte de la position ouverte, et seulement ensuite elle sera corrigée selon la spécification si la position opposée est ouverte. C'est ce dont je parlais.

Valeur de la marge... pour les ordres en attente est calculé "en arrière-plan" et peut ne pas correspondre à la valeur réelle.

 
Sergey Voytsekhovsky:

De bons conseils et une grande science pour l'avenir ! !! Il est même allé un peu plus loin que ça. Voici le résultat.

C'était donc le cas :

Il en est ainsi, l'efficacité de la démarche est évidente ! !! Merci.

Merci à Sergei et Alexey pour l'indicateur stochastique coloré. Vous êtes très bon. Respect !

 
Comment puis-je faire en sorte que mon indicateur apparaisse dans la fenêtre principale au lieu du graphique principal (mon indicateur est construit sous forme de barres).

Pour que les données de mon indicateur remplacent les données du graphique.

Et que tous les indicateurs standards du terminal client peuvent être lancés sur ce nouveau graphique. Et pour que ces indicateurs fonctionnent sur les données de mon indicateur, et non sur les barres de prix.
 

Il y a une question comme celle-ci. Donc, il y a une boucle

     for(...........)              
     {if(.........){ что-то делаем}else
      if(.........){ break}else{ break;}} 

La 1èrerupture est située non pas dans les premières parenthèses de la boucle mais dans des parenthèses imbriquées à l'intérieur de celles-ci. La 2èmerupture est encore plus profondément imbriquée dans des parenthèses intérieures. Comme je l'ai compris dans ce cas,break ne fonctionne tout simplement pas, pour dire la vérité, je n'ai pas compris si cela a fonctionné ou non, mais le programme s'est arrêté et a fait des itérations inutiles. Afin de sortir d'une boucle avec beaucoup de conditions, j'ai ajouté un drapeau de sortie à la boucle. Peut-être m'a-t-il semblé que cela ne fonctionne pas, qui pense sur cette question ?