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

 
prom18:

Forse ci sono degli esempi. Visivamente sarebbe più facile da capire. Grazie.

Se ho capito bene che hai bisogno di barre in un certo intervallo di tempo, puoi selezionarle usando iTime
 
prom18:

Salve. Sto leggendo un libro di testo. Ci sono alcuni esempi di come scrivere gli indicatori. Ho una domanda sull'indicatore separatewindow.mq4, dove è possibile impostare il numero di barre calcolate. E se avete bisogno di specificare il calcolo dal prezzo di apertura del giorno (o da zero) al prezzo di chiusura del giorno? Come devo fare? Ho provato a cercare una soluzione, ma non l'ho trovata.

Ecco il prezzo di apertura del giorno nel timeframe corrente

//+------------------------------------------------------------------+
//|                                                      DayOpen.mq4 |
//|                                            Copyright 2018, IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         Label1Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i,limit;
   static double dayopen=0.0;
   static int lastday=0;
   if(prev_calculated==0)
     {
      limit=rates_total-1;
      dayopen=0.0;
      lastday=0;
     }
   else limit=rates_total-prev_calculated;
   for(i=limit; i>=0; i--)
     {
      if(TimeDay(time[i])!=lastday)
        {
         dayopen=open[i];
         lastday= TimeDay(time[i]);
        }
      Label1Buffer[i]=dayopen;
     }
   return(rates_total);
  }
 

Salve, è possibile trovare la barra giusta nella cronologia a DESTRA di una data barra per condizione? Grazie.

 
Sfinks35:

Salve, è possibile trovare la barra giusta nella cronologia a DESTRA di una data barra per condizione? Grazie.

Sì, possiamo.

 
Artyom Trishkin:

È possibile.

Come si fa? Per favore, ditemi.
 
Sfinks35:
Come si fa? Può parlarmene, per favore?

Come si fa a trovare un dato bar?

 
Artyom Trishkin:

Come si fa a trovare un dato bar?


Mi ci è voluto molto tempo, ma ho scritto una funzione come questa:

doppio GetPatt5barsDN()
{
doppio low3 = 0;
int index = 0;
for(int i=1; i<20; i++)
{
se
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] è necessario su questa candela
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4])

low3 = Low[i+2];
indice = i+2;
}

ritorno(low3);
}

 
Igor Makanu:

ecco il prezzo di apertura del giorno nel TF corrente

Grazie, Igor. Ma non l'ho formulato correttamente. L'indicatore viene calcolato e disegnato per un determinato numero di barre (50 in questo caso) e nella finestra separata. Non ha bisogno del prezzo aperto ma della prima barra del giorno per indicare la MA. Ma comunque, grazie.

 
Igor Makanu:

ecco il prezzo di apertura del giorno sul TF corrente

Puoi dirmi cosa c'è scritto in

int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated;

"==" , "?" , ": "

?

 
Sfinks35:


Mi ci è voluto molto tempo, ma ho scritto una funzione come questa:

Restituisce anche l'indice nel parametro della funzione passato dal collegamento