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

 
Константин:
@Artyom Trishkin

Pouvez-vous me donner des conseils sur cette affaire ?

Je peux vous donner beaucoup d'informations différentes sur les dindes.

Pour commencer, c'est un oiseau faisan. C'est de la viande diététique. Je le donne à mon chat. Il dit que c'est délicieux...

 
Константин:

Pouvez-vous me donner un indice sur le sujet ?

Et pour en venir au fait, pourquoi voudriez-vous exécuter le script à partir d'un indicateur ?

 
Mihail Matkovskij:

Quant à la question, qui vous a dit d'être aussi stupide que de lancer des scripts à partir d'un indicateur ? :)

Et surtout, pourquoi ?

Je veux créer un bouton sur le graphique afin de pouvoir exécuter un script en appuyant sur un bouton avec un paramètre pris dans l'indicateur.

 
Константин:

Je veux créer un bouton sur le graphique afin de pouvoir exécuter le script en appuyant sur le bouton, avec le paramètre pris dans l'indicateur.

Vous écrivez le code du bouton dans le code de l'indicateur et intégrez le code du script comme une fonction dans le code de l'indicateur. Appuyez sur le bouton - appelez la fonction, dans laquelle vous passez le paramètre de l'indicateur.

 
Константин:

Je veux créer un bouton sur le graphique, afin de pouvoir exécuter le script en appuyant sur le bouton, avec le paramètre pris dans l'indicateur.

Si le problème réside dans la création du bouton lui-même, le voici :

//+------------------------------------------------------------------+
//|                                                  ClickButton.mq5 |
//|                                      Copyright 2020, © Cyberdev. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev."
#property version   "1.00"
#property indicator_chart_window

#property indicator_plots 0

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#include <ChartObjects\ChartObjectsTxtControls.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CChartObjectButton button;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
  button.Create(0, "pushBtn", 0, 30, 30, 80, 21);
  button.SetString(OBJPROP_TEXT, "Push my");
  button.SetInteger(OBJPROP_BGCOLOR, clrDodgerBlue);
  button.Color(clrWhite);
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[]) {
//---
//--- return value of prev_calculated for next call
  return(rates_total);
}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam
) {
  if(id == CHARTEVENT_OBJECT_CLICK) {
    if(sparam == button.Name()) {
      Alert("Button \""+sparam+"\" clicked!"); // Вместо этого функция с кодом...
      button.State(0);
      ChartRedraw(0);
    }
  }
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij:

Si le problème réside dans la création du bouton lui-même, le voici :

Merci, je crois que j'ai trouvé le bouton, mais je n'ai pas trouvé comment joindre le script. Le script se trouve à C:\Users\...\MQL4\Scripts\Order.ex4

 
Une autre question. J'utilise une petite tablette sous Windows sans souris, les boutons sur le graphique sont une solution pratique pour moi. Est-il possible de faire en sorte que la commande clavier Ctrl+F5 soit exécutée lorsque l'on appuie sur le bouton du graphique, ce serait plus pratique pour moi de visualiser le profil suivant.
 
Константин:

Merci, je pense avoir trouvé le bouton, mais je n'ai pas trouvé comment joindre le script. Le script se trouve à l'adresse suivante : C:\Users\...\MQL4\Scripts\Order.ex4

Attribuez un raccourci au script et simulez-le à l'aide de WinAPI. Mais je n'ai rien fait de tel dans les programmesMQL. Essayez donc de googler"SendInput User32.dll WinAPI".

 

Bonjour !

J'ai du mal avec une question, dites-moi comment la résoudre.

L'idée est la suivante : je trace une ligne au niveau du maximum précédent de la bougie. Je veux que la ligne soit décalée en fonction du maximum précédent.

void OnTick()
  {
//---
   double   o1 = iOpen(Symbol(),Period(),1);
   double   h1 = iHigh(Symbol(),Period(),1);
   double   l1 = iLow(Symbol(),Period(),1);
   double   c1 = iClose(Symbol(),Period(),1);
   double   c0 = iClose(Symbol(),Period(),0);
   double   rt = 0;
   double   rs1 = 0;


rt=MathAbs(c1-o1)/_Point; //размер тела свечи
rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи


if (rs1>=rt) // условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же всечи, то...   
{
double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум
ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию
Comment("ЦЕНА МАКС =======",PRH,"\n"); // комментарий пред. максимума
}
}
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
При создании пользовательского индикатора можно указать один из 18 типов графического построения (способа отображения на главном окне графика или в подокне графика), значения которых указаны в перечислении ENUM_DRAW_TYPE. В зависимости от стиля рисования, может потребоваться от одного до четырех буферов значений (отмеченных как INDICATOR_DATA...
 
Alexey Belyakov:

Bonjour !

J'ai du mal à répondre à une question. Pouvez-vous me dire comment la résoudre ?

L'idée est la suivante : je trace une ligne au niveau du maximum précédent de la bougie. Je veux que la ligne soit décalée en fonction du maximum précédent.

Il existe 2 options
1. Vous devez supprimer l'objet avant de le dessiner.
2. Fixer le prix après la création d'un objet