Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1201

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

Puoi darmi qualche consiglio per gli affari?

Posso darvi un sacco di informazioni diverse sui tacchini.

Per cominciare, è un uccello fagiano. È carne dietetica. Lo do da mangiare al mio gatto. Dice che è delizioso...

 
Константин:

Puoi darmi un indizio sul punto?

E per arrivare al punto, perché volete eseguire lo script da un indicatore?

 
Mihail Matkovskij:

Per quanto riguarda il punto, chi ti ha detto di essere così stupido da eseguire script da un indicatore? :)

E soprattutto, perché?

Voglio fare un pulsante sul grafico in modo da poter eseguire uno script premendo un pulsante con un parametro preso dall'indicatore

 
Константин:

Voglio fare un pulsante sul grafico in modo da poter eseguire lo script premendo il pulsante, con il parametro preso dall'indicatore

Si scrive il codice del pulsante nel codice dell'indicatore e si integra il codice dello script come una funzione nel codice dell'indicatore. Premere il pulsante - chiamare la funzione, in cui si passa il parametro indicatore.

 
Константин:

Voglio fare un pulsante sul grafico, in modo da poter eseguire lo script premendo il pulsante, con il parametro preso dall'indicatore

Se il problema è nella creazione del pulsante stesso, eccolo:

//+------------------------------------------------------------------+
//|                                                  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:

Se il problema è nella creazione del pulsante stesso, eccolo:

Grazie, penso di aver capito il pulsante, ma non ho capito come allegare lo script. Lo script è in C:\Users\...\MQL4\Scripts\Order.ex4

 
Un'altra domanda. Uso una piccola tavoletta su Windows senza un mouse, i pulsanti sul grafico sono una soluzione conveniente per me. È possibile avere il comando da tastiera Ctrl+F5 eseguito quando si preme il pulsante sul grafico, sarebbe più comodo per me visualizzare il seguente profilo.
 
Константин:

Grazie, penso di aver capito il pulsante, ma non ho capito come allegare lo script. Lo script si trova in C:\Users\...\MQL4\Scripts\Order.ex4

Assegnate un collegamento allo script e simulatelo usando WinAPI. Ma non ho fatto nulla di simile nei programmiMQL. Quindi provate a cercare su Google"SendInput User32.dll WinAPI".

 

Buon pomeriggio!

Sto lottando con una domanda, per favore ditemi come risolverla.

L'idea è la seguente: traccio una linea al massimo precedente della candela. Voglio che la linea sia spostata a seconda del massimo precedente.

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:

Buon pomeriggio!

Sto lottando con una domanda, per favore ditemi come risolverla.

L'idea è la seguente: traccio una linea al massimo precedente della candela. Voglio che la linea sia spostata a seconda del massimo precedente.

Ci sono 2 opzioni
1. Dovete cancellare l'oggetto prima di disegnarlo.
2. Impostare il prezzo dopo la creazione di un oggetto