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

 

Perché non puoi condividere il codice?

Ricevo un errore: rilevato l'uso della DLL

Per favore fatemi sapere come posso condividere il codice.

Ho visto questo: https://www.mql5.com/en/code/7673

E il mio codice è simile.

Period Converter Optimized
Period Converter Optimized
  • www.mql5.com
Lastest Version: 1.4 2005.12.24  1.4      faster to detect if data changed by removing float point  operations, added support to output CSV file in real time.                             OutputCSVFile = 0 means no CSV.                             OutputCSVFile = 1 means CSV + HST.                             OutputCSVFile = 2 CSV only, no HST...
 

Salve. Cosa sto facendo di sbagliato?

C'è un indicatore di istogramma. Mostra la differenza nel numero di ticchettii su e giù.

Sto cercando di utilizzare i valori degli indicatori su 1, 2 e 3 barre nel mio EA.

double tbs1=iCustom(Symbol(),0,"tickbs",1,1);

double tbs2=iCustom(Symbol(),0,"tickbs",1,2);

double tbs3=iCustom(Symbol(),0,"tickbs",1,3);

Nel tester, ottengo un errore: tickbs EURUSD,M1: array out of range in 'tickbs.mq4' (26,19)

#property copyright "tickbs"
#property link      ""
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers    1
#property indicator_color1     clrGreen
//--- input parameter
extern color   ClrUpUp        = clrGreen;
extern int     HistWidth      = 2;
//--- buffers
double BufB[];
double dOldPrice, dNewPrice;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorBuffers(1);
   SetIndexBuffer(0,BufB);  
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,HistWidth,ClrUpUp);       
   SetIndexLabel(0,"Hs");
   
   dOldPrice=Close[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[])
  {
   dNewPrice=Close[0];
   if (dNewPrice>dOldPrice){
      BufB[0]=BufB[0]+1;
      dOldPrice=dNewPrice;
   }
   else 
      if (dNewPrice<dOldPrice){
         BufB[0]=BufB[0]-1;
         dOldPrice=dNewPrice;
      }
   return(rates_total);
  }
//+------------------------------------------------------------------+

Grazie.

 
Oleg Bondarev:

Salve. Cosa sto facendo di sbagliato?

C'è un indicatore di istogramma. Mostra la differenza nel numero di ticchettii su e giù.

Sto cercando di utilizzare i valori degli indicatori su 1, 2 e 3 barre nel mio EA.


Nel tester, ottengo un errore: tickbs EURUSD,M1: array out of range in 'tickbs.mq4' (26,19)

Grazie.

I buffer sono indicizzati da zero.
 
Igor Makanu:

ancora e ancora.... Una classe è prima di tutto un tipo di dati, come int, double...

Volete un array di dati di quel tipo? - dichiarare un array, se l'array è dinamico, allora ridimensionarlo, poi inizializzare OGNI ELEMENTO con i dati necessari - avete bisogno di puntatori, poi inizializzarli con puntatori alla classe, avete bisogno di istanze di classe, poi ogni elemento dell'array non sarà un puntatore, ma l'oggetto stesso

Questa è l'essenza dell'OOP, ogni classe è prima di tutto un tipo di dati utente.... Non so quanto dire al riguardo, ma la metodologia è la stessa di un normale tipo di dati, ma ciò che scriverete all'interno della classe è una questione personale, ma l'inizializzazione di una nuova istanza inizierà sempre con un costruttore, e quale costruttore - di default, con parametri o senza parametri - potete scegliere come inizializzare l'oggetto...... ugh, ma ancora leggete libri, non c'è modo di farlo in questo modo

Si prega di consigliare cosa leggere su OOP con esempi per MT4. O in generale, con esempi. La sintassi e la logica del linguaggio sono difficili da capire, e il manuale del linguaggio non è sempre chiaro fino in fondo.

 
Valeriy Yastremskiy:

Per favore, consigliatemi cosa leggere su OOP con esempi per MT4. O con esempi in generale. La sintassi e la logica del linguaggio sono difficili da afferrare, e il manuale del linguaggio non è sempre completamente chiaro.

Andate nella sezione Articoli qui e sfogliate - c'è molto su OOP, anche per i principianti.

Статьи по MQL5
Статьи по MQL5
  • www.mql5.com
Статьи по программированию на языке MQL5
 
Artyom Trishkin:

Andate alla sezione Articoli qui e sfogliateli - ci sono un sacco di articoli su OOP inclusi quelli per i principianti.

Grazie. Questo è utile. Qualcuno potrebbe averne bisogno.

PLO

https://www.mql5.com/ru/articles/357

https://www.mql5.com/ru/articles/703

https://www.mql5.com/ru/articles/116

https://www.mql5.com/ru/articles/70

https://www.mql5.com/ru/articles/351

GA

https://www.mql5.com/ru/articles/55

MQL4

https://www.mql5.com/ru/articles/1483

Anche a me è piaciuto)))

https://www.mql5.com/ru/articles/1499


Anche una domanda, quando si clicca sugli articoli, appaiono 18 pagine di articoli e il titolo:

Articoli sulla programmazione in MQL4 e MQL5

Quando clicco sulla seconda pagina MQL4 scompare. Quando premo su MT4, appaiono 6 pagine. E non sono nella selezione iniziale.


Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
  • www.mql5.com
В статье рассказывается о том, как объектно-ориентированный подход может быть использован для создания мультитаймфреймовых и мультивалютных индикаторов для MetaTrader 5. Главной целью является построение универсальной панели, которая может быть использована для отображения различных типов данных (цены, их изменения, значения индикаторов...
 
Alexey Viktorov:
I buffer sono indicizzati da zero.

Grazie.

 
Per favore, qualcuno risponda alla mia domanda sul forum: https://www.mql5.com/ru/forum/336385
Как я могу скопировать symbols.raw и symgroups.raw в новый файл с дополнительной группой и символом в соответствующей группе MQL4/MT4?
Как я могу скопировать symbols.raw и symgroups.raw в новый файл с дополнительной группой и символом в соответствующей группе MQL4/MT4?
  • 2020.04.01
  • www.mql5.com
Я хочу знать, как я могу создать новый файл, скажем symbols_extra.raw и symgroups_extra.raw на MQL4, используя существующие symbols.raw и symgroups...
 
Valeriy Yastremskiy:

quando si clicca sulla seconda pagina di MQL4 scompare. Quando si clicca su MT4 appaiono 6 pagine. E non sono nella selezione iniziale.

MQL4 e MQL5 sono identici al 99% (senza SQlITE, OpenCL, DirectX), quindi potete sentirvi liberi di leggere articoli in MQL5, ma considerando che nei terminali 4 e 5 il lavoro con gli ordini è diverso e ci sono sfumature di lavoro con le serie temporali

 
Igor Makanu:

Dato che MQL4 e MQL5 sono identici al 99% (senza SQlITE, OpenCL e DirectX), potete leggere gli articoli su MQL5, ma tenendo conto che nei terminali 4 e 5 il lavoro con gli ordini è diverso e ci sono sfumature di lavoro con le serie temporali.

Non è questo il caso, non ci sono articoli su mql4 nella selezione iniziale. Questo è fuorviante. A proposito, la stessa logica è in kodobase. Ma le intestazioni non cambiano lì. Ho dovuto usare il metodo dell'intestino per capirlo). Grazie, leggiamo)))