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

 
ilnur17021992:

il existe une variable

int Niveau = 0 ;

Pendant que le programme est en cours, il est en constante évolution. Aidez-moi à écrire une condition : si le niveau n'a PAS changé, alors ne faites rien. Si le niveau a changé (peu importe s'il a augmenté ou diminué), alors faites une action { opérateur }.

entrer une autre variable

int Niveau1 = 0 ;

int Niveau = 0 ;

si (Level !=Level1)

{} ;

et ensuite Niveau1 =Niveau

mais je ne comprends vraiment pas pourquoi nous avons besoin de tirer un tableau à chaque tick si nous pouvons le faire après chaque opération de transaction.

 
trader781:

entrer une autre variable

int Niveau1 = 0 ;

int Niveau = 0 ;

si (Level !=Level1)

{} ;

et ensuite Niveau1 =Niveau

Je ne comprends pas vraiment pourquoi j'ai besoin d'extraire un tableau à chaque tick, si je peux le faire après chaque opération de transaction.

      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

De plus, j'ai besoin que cela se produise lorsque SELL_Lvl augmente :

         ObjectDelete( "Sell no loss level");

Mais, comme la conditionSELL_Lvl>0 est remplie, la ligne est à nouveau tracée, mais par une nouvelle valeur deSELL_NoLossLevel. Existe-t-il un moyen plus simple et plus évident de redessiner la ligne, en fonction deSELL_Lvl ?

 
ilnur17021992:
      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Je dois ensuite faire en sorte que la ligne se redessine lorsque SELL_Lvl augmente :

         ObjectDelete( "Sell no loss level");

Mais puisque la conditionSELL_L_Lvl>0 est remplie, la ligne doit être redessinée à nouveau, mais à une nouvelle valeur deSELL_NoLossLevel. Existe-t-il un moyen plus simple et plus évident de redessiner la ligne, en fonction de la valeur deSELL_Lvl ?

Transférer l'objet à la nouvelle valeur sans le supprimer ni le recréer :

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);
 
Vitaly Muzichenko:

Transférer l'objet à la nouvelle valeur sans le supprimer ni le recréer :

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);

C'est certainement une option, mais je voudrais que la ligne soit redessinée par la valeur deSELL_NoLossLevel selon queSELL_Lvla changé ou non.

comme ceci if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level") ;}

La ligne est redessinée à chaque tick alors que j'ai besoin qu'elle ne soit redessinée que siSELL_Lvl change.

 
ilnur17021992:

Bien sûr, c'est une variante, mais je voudrais que la ligne soit redessinée parSELL_NoLossLevel selon queSELL_Lvl a changé ou non.

comme ceci if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level") ;}

La ligne est redessinée à chaque tick, alors que j'ai besoin qu'elle ne soit redessinée que siSELL_Lvl change.

Expliquez clairement la condition du redécoupage des lignes, avec des valeurs de prix réelles.

Pour la ligne en surbrillance : de combien a-t-elle changé ? Qu'est-ce qui indique le fait que SELL_Lvl a changé ?

 
les gars, conseillez la fonction pour fermer les ordres en attente dans mcl5 il y a cinq ordres d'achat limite pour fermer le plus bas.
 
TYRBO:
je veux savoir quelle fonction utiliser pour fermer un ordre en attente dans mcl5.

Il est préférable de passer en revue, de déterminer le bon et par la documentation

Supprimer une commande en cours

Ordre commercial pour supprimer un ordre en attente. Il faut spécifier 2 champs :

  • action
  • commander
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Il est préférable de passer en revue, d'identifier le bon et de suivre la documentation .

J'ai besoin d'un ticket d'ordre inférieur pour le fermer, je sais comment trouver le prix d'ordre inférieur, j'apprécierais si vous pouviez me dire comment trouver un ticket d'ordre inférieur.
 
Alexey Viktorov:

Rédigez clairement les conditions du redécoupage des lignes, avec des valeurs de prix réelles, et vous comprendrez alors ce que vous devez faire.

Sur la mise en évidence : de combien a-t-elle changé ? Qu'est-ce qui indique le fait que SELL_Lvl a changé ?

SELL_Lvl est le nombre de genoux (ordres) de la grille de vente.SELL_NoLossLevel est le niveau total (prix) de ces ordres. Eh bien, l'idée est la suivante : nous avons besoin d'une ligne tracée au niveau d'une ligne d'achat et redessinée respectivement lorsque de nouvelles lignes sont ouvertes. Je ne sais pas comment faire.
 
TYRBO:
Je sais comment trouver le prix d'une commande minimale, mais j'apprécierais que vous me disiez comment trouver un ticket de commande minimale.

Il existe un exemple dans la documentation.

Il serait probablement préférable de passer en revue les ordres dans la boucle et, à condition que l'ordre suivant soit inférieur au précédent, de le sélectionner pour continuer à travailler avec lui. Ainsi, lorsque nous sortons de la boucle, l'ordre à supprimer sera sélectionné.

Ou vous pouvez d'abord enregistrer sa position dans la liste des commandes dans la boucle et, après la sortie de la boucle, le sélectionner par l'index enregistré.

Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5