Questions des débutants MQL4 MT4 MetaTrader 4 - page 123

 

Comment ajouter une valeur à la condition d'achat/de vente de l'indicateur RVI ? Par exemple, lorsque deux lignes se croisent, un ordre d'achat/de vente est ouvert, mais je veux que ce ne soit pas seulement un croisement, mais que le croisement soit supérieur à la valeur 0.

MM et MS sont des lignes indicatrices de RVI

  if (MM > MS && MoM < MS && MoM < MM)
   {
    OrderSend(_Symbol, OP_BUY, Lot, Ask, 3, Ask-SL*Point, Ask+TP*Point, "", Magic, 0, Red);
   }
  if (MM < MS && MoM > MS && MoM > MM)
   {
    OrderSend(_Symbol, OP_SELL, Lot, Bid, 3, Bid+SL*Point, Bid-TP*Point, "", Magic, 0, Red);
   }


 

Bonjour !

Pouvez-vous me dire comment utiliser le label obj pour afficher une chaîne de plus de 64 caractères ?

 
Игорь:

Bonjour !

Pouvez-vous me dire comment utiliser le label obj pour afficher une chaîne de plus de 64 caractères ?

Deux étiquettes d'objets côte à côte. Le gauche est aligné sur le bord droit, le droit sur le gauche.

 
novichok2018:

Pouvez-vous expliquer cette ligne de votre code :OrderInfo arrstBuyOrderInfo[MAX_ORDERS_CNT], arrstSellOrderInfo[MAX_ORDERS_CNT] ; PourquoiOrderInfo n'a pas de parenthèses et pas de type ?

OrderInfo est un type de données. Tout comme int, double, etc. Dans ce cas, OrderInfo est une structure. J'ai donné un exemple de sa déclaration dans mon messagede clôture des positions? Où ? Et peut-être que la fonction de fermeture des positions avec des tableaux devrait être différente ? C'est un peu compliqué pour moi. Merci.

Jusqu'à présent, nous n'avons considéré que la première tâche - la collecte d'informations sur les ordres de travail. La génération du signal de transaction et l'exécution des actions de transaction sont les tâches 2 et 3 respectivement. Nous n'en sommes pas encore là.

L'idée de la collecte d'informations est de ne pas avoir à parcourir à nouveau toute la liste des commandes à chaque "éternuement". Dans une EE correctement écrite, cette action n'est effectuée qu'une fois par itération. Par la suite, nous travaillons uniquement avec les données créées.

Вопросы от начинающих MQL4 MT4 MetaTrader 4
Вопросы от начинающих MQL4 MT4 MetaTrader 4
  • 2018.02.13
  • www.mql5.com
Если у Вас вопросы по MQL4, MT4, MetaTrader 4, пожалуйста пишите в этой теме. Особенно когда вопросы касаются торговых функций...
 
Aleksey Rodionov:

Comment ajouter une valeur à la condition d'achat/de vente de l'indicateur RVI ? Par exemple, lorsque deux lignes se croisent, un ordre d'achat/de vente est ouvert, mais je veux que ce ne soit pas seulement un croisement, mais que le croisement soit supérieur à la valeur 0.

MM et MS sont des lignes indicatrices de RVI


La valeur des deux lignes doit être comparée à zéro. N'est-ce pas ?

Et ce n'est pas clair ce qu'est MoM.

 

il y a cette ligne de MQL5, le compilateur de MQL4 s'en plaint, comment la réécrire ?

//--- set new color
   m_pixels[y*m_width+x]=(r<<16|g<<8|b<<0|255<<24) &0xffffffff;

//check operator precedence for possible error; use parentheses to clarify precedence   Canvas.mqh
 
Ihor Herasko:

OrderInfo est un type de données. Comme int, double, etc. Dans ce cas, OrderInfo est une structure. J'ai donné un exemple de sa déclaration dans mon messagehttps://www.mql5.com/ru/forum/160587/page121#comment_6556328.

Je comprends bien votre exemple : La directive #define substituera le numéro 500 partout où il rencontre MAX_ORDERS_CNT ? Et pourquoi attribuer un type à un nombre ?

Et pourquoi ne pouvons-nous pas simplement spécifier extern int cnt=500 ? Et alors il y aura OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt] ; ?


De plus, dans votre post à la page 122, je ne comprends pas bien ce que signifie&arrstOrderInfo[],&nOrdersCnt et.n? Désolé si mes questions semblent stupides - en l'occurrence, j'essaie de me débrouiller tout seul, même si j'ai une mauvaise expérience.

 

Bon après-midi

Veuillez m'aider à mettre à jour mon indicateur

J'ai besoin d'ajouter 2 tampons, l'indicateur "natif" dessine une flèche (vers le haut ou vers le bas) lorsque vous identifiez un gap et donne un signal dans le tampon 6 ou 7.

Je voudrais avoir un tampon 8 et 9 où dans le signal d'écart +1 (hausse) ou -1 (baisse) 0 en l'absence de

J'ai essayé de le faire moi-même, mais rien ne fonctionne, je n'ai aucune compétence en programmation.

 
novichok2018:

Ai-je bien compris votre exemple ? La directive #define substituera le nombre 500 à chaque fois que MAX_ORDERS_CNT sera rencontré ? Et pourquoi attribuer un type à un nombre ?

Oui. Et notez qu'il sera substitué lors de la compilation et non pendant l'exécution du programme.

Et pourquoi ne pouvez-vous pas simplement spécifier extern int cnt=500 ? Et alors il y aura OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt] ; ?

Non, car int cnt est une déclaration de variable. Et une variable peut changer de valeur pendant l'exécution du programme. Et la mémoire du tableau statique n'est pas allouée pendant l'exécution du programme. La taille de la mémoire doit être connue dès la phase de compilation. Afin de modifier la taille du tableau pendant l'exécution du programme, vous devez utiliser un tableau dynamique. Cela se fait plus tard, lorsque vous vous habituez aux tableaux statiques.

De plus, dans votre post à la page 122, je ne comprends pas bien ce que signifie&arrstOrderInfo[],&nOrdersCnt et.n? Désolé si mes questions vous semblent stupides - j'essaie moi-même de les comprendre, mais je ne suis pas très doué pour cela.

Je vais simplifier un peu la réponse pour éviter toute confusion. Le signe (&) indique que l'argument de la fonction peut changer de valeur au moment de l'exécution et retournera à l'endroit d'où la fonction a été appelée, avec une valeur différente. Dans le cas présent, la fonction SaveOrder peut modifier le contenu des tableaux g_arrstBuyOrderInfo et g_arrstSellOrderInfo ainsi que les variables g_nBuyOrdersCnt et g_nSellOrdersCnt.

 

Bonjour !

Pouvez-vous me dire comment repeindre les barres sans utiliser de modèles dans mt4 ! ?

Ou comment appliquer un schéma de couleurs ?

Raison: