Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 603

 
Alex:

Grazie per le vostre risposte e la vostra pazienza.


Vladimir, probabilmente ti ho già annoiato:) Ma ho difficoltà con le basi. Ho provato a fare un compito di prova con le funzioni Copy... L'indicatore non è disegnato, anche se ci sono numeri in Printe... Non capisco niente.


Uno stesso array UpBar va in due buffer: 0 e 1.

E per gli indici per i quali non volete impostare valori, scrivete valori vuoti.

E, per quanto ho capito, state scrivendo valori da 3 a 3 barre. Questo significa che verranno scritti i valori più vecchi, non i più recenti (l'ordine di numerazione è diverso da quello di mql4).

 
Alex:

Grazie per le vostre risposte e la vostra pazienza.


Vladimir, probabilmente ti ho già annoiato:) Ma ho difficoltà con le basi. Ho provato a fare un compito di prova con le funzioni Copy... L'indicatore non è disegnato, anche se ci sono numeri in Printe... Non capisco niente.


//+------------------------------------------------------------------+
//|                                                        PBars.mq5 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot UpBar
#property  indicator_label1  "UpBar"
#property  indicator_type1   DRAW_HISTOGRAM
#property  indicator_color1  clrGreen
#property  indicator_style1  STYLE_SOLID
#property  indicator_width1  6
////--- plot DnBar
//#property indicator_label2  "DnBar"
//#property indicator_type2   DRAW_HISTOGRAM
//#property indicator_color2  clrRed
//#property indicator_style2  STYLE_SOLID
//#property indicator_width2  6
//--- input parameters
input int   Histori=30;
input ENUM_TIMEFRAMES TimeFrame=0;
input string  Simvol="EURUSD";
//--- indicator buffers
double         UpBar[];
//double         DnBar[];
double         O_Price[];
double         C_Price[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBar,INDICATOR_DATA);
//SetIndexBuffer(1,UpBar,INDICATOR_DATA);
   SetIndexBuffer(1,O_Price,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,C_Price,INDICATOR_CALCULATIONS);
//---
   ArraySetAsSeries(O_Price,true);
   ArraySetAsSeries(C_Price,true);
   ArraySetAsSeries(UpBar,true);
   ArrayInitialize(UpBar,0.0);
//---
   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[])
  {
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(close,true);

   if(prev_calculated==0)
     {
      ArrayInitialize(UpBar,0.0);
      ArrayInitialize(O_Price,0.0);
      ArrayInitialize(C_Price,0.0);
      Print(__FUNCTION__);
      ResetLastError();
      if(CopyOpen(Simvol,TimeFrame,0,Histori,O_Price)==-1)
         Print("Error CopyOpen #",GetLastError());
      ResetLastError();
      if(CopyClose(Simvol,TimeFrame,0,Histori,C_Price)==-1)
         Print("Error CopyClose #",GetLastError());
      for(int t=3; t<Histori; t++)
        {
         UpBar[t]=MathAbs(NormalizeDouble((O_Price[t]-C_Price[t]),Digits()));
         Print(IntegerToString(t)," ",DoubleToString(UpBar[t],Digits()));
         int g=0;
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

E il risultato:

Risultato

 
Karputov Vladimir:

E il risultato:


Ancora una volta, grazie mille.
 
Alex:
Ancora una volta, grazie mille.
Siete i benvenuti. Non esitate a contattarmi se avete domande su MQL5.
 

Ci sono funzioni in MQL4 che danno valori massimi/minimi di prezzo per un dato numero di barre?

Credo che ce ne fosse uno, ma non riesco a trovarlo...

 
-Aleks-:

Ci sono funzioni in MQL4 che danno valori massimi/minimi di prezzo per un dato numero di barre?

Credo che ce ne fosse uno, ma non riesco a trovarlo...

https://docs.mql4.com/ru/series/ihighest

https://docs.mql4.com/ru/series/ilowest

iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Sì, sì grazie - non ho cercato abbastanza - l'ho già trovato da solo.
 
-Aleks-:
Sì, grazie - non ho cercato abbastanza - l'ho già trovato da solo.
Funzioni compatibili con mql5 CopyHigh e CopyLow poi nell'array risultante ArrayMaximum e ArrayMinimum
 
È vero che ogni serie di variabili che compongono un sistema di trading ha una distribuzione casuale di profitti e perdite?
 
Евгений:
È vero che ogni serie di variabili che compongono un sistema di trading ha una distribuzione casuale di profitti e perdite?

Una contro-domanda.

Pensi che il movimento di qualsiasi coppia di valute: grafico, prezzi bid e ask, ecc., dipenda dall'insieme delle tue variabili?