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

 
Roman Sharanov:

niente, vuoto

Chiedetequi.

 
Artyom Trishkin:

Chiedetequi.

Se aiuta, dovrebbe disegnare delle frecce, sull'euro, sull'euro-yen, sull'aussie, sugli altri no

File:
Hydra.mq4  9 kb
 
Roman Sharanov:

Se aiuta, dovrebbe disegnare delle frecce, sull'euro, sull'euro-yen, sull'aussie, su altri no

Solo un'ipotesi.

C'è un tale valore nelle impostazioni:

input int so_slowma = 233;//Медленная МА

E poi in OnInit():

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

Vedo che i dati delle barre giornaliere sono usati per il calcolo:

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

Sei sicuro che ci siano abbastanza barre sui simboli dove non c'è il disegno? Mettete un valore più piccolo nella variabile so_slowma - almeno 100. Se ci sarà il rendering, allora non avete abbastanza dati storici.

È solo una supposizione che mi è venuta in mente la prima volta che ho guardato il codice. E può essere sbagliato. Ma dovreste controllare prima di tutto.

 

Come posso fare in modo che un rettangolo https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle sia disegnato sopra un altro rettangolo senza mischiare i loro colori?

Qui, per esempio, una linea orizzontale successiva è disegnata sopra una linea orizzontale precedente senza mescolare i loro colori, ma non vedo cosa causa la differenza dai rettangoli.

Grazie.

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

Solo un'ipotesi.

C'è un tale valore nelle impostazioni:

e poi in OnInit():

Vedo che i dati delle barre giornaliere sono usati per il calcolo:

Sei sicuro che ci siano abbastanza barre sui simboli dove non c'è il rendering? Mettete un valore più piccolo nella variabile so_slowma - almeno 100. Se ci sarà il rendering, allora non avete abbastanza dati storici.

È solo una supposizione che mi è venuta in mente la prima volta che ho guardato il codice. E può essere sbagliato. Ma prima di tutto bisogna controllare.

Cioè, perché prendo i dati da un grafico giornaliero da qualche parte nel codice, l'indicatore non disegnerà i primi 233 giorni?
 
Roman Sharanov:
Cioè, perché prendo i dati dai dati giornalieri una volta nel codice, l'indicatore non disegnerà i primi 233 giorni?

No, non lo è. Questo valore indica da quale numero di barra l'indicatore inizierà a disegnare sul grafico. Ma questo numero di barre è usato per calcolare la media mobile. Se ci sono meno barre nel grafico, la MA non sarà calcolata. Per evitare questa situazione, alla linea 73, il codice contiene il ritorno da OnCalculate() in caso di assenza di barre per il calcolo:

if (Bars <= so_slowma) return (0);

Beh, riguardo ai dati giornalieri - può non essere presente, ma è più come una "continuazione della storia"...

 
Artyom Trishkin:

No, non lo è. Questo valore indica da quale numero di barra l'indicatore inizierà a disegnare sul grafico. Ma questo numero di barre è usato per calcolare la media mobile. Se ci sono meno barre nel grafico, la MA non sarà calcolata. Per evitare questa situazione, nel codice, alla linea 73 abbiamo scritto return da OnCalculate() in caso di assenza di barre per il calcolo:

Beh, riguardo ai dati giornalieri - potrebbe anche non esserci, ma è più come una "continuazione della storia"...

La sterlina, per esempio, ha più di 1000 barre sul quotidiano e su m15, ma non disegna...

 
Roman Sharanov:

Beh, la sterlina per esempio, sia sul giornaliero che sul m15 è oltre 1000 barre, ma non sta disegnando...

Avete il codice sorgente. Stampate i valori di tutte le variabili nel log e vedete cosa ottengono.

 
Artyom Trishkin:

Avete il codice sorgente. Stampate i valori di tutte le variabili nel log e vedete cosa ottengono.

Da dove viene questo?


 
Roman Sharanov:

Da dove viene questo?


Rifiuti nei buffer. Prima devi inserire un valore vuoto in tutti i buffer che disegni (se sono buffer di frecce), e solo dopo eseguire il calcolo dell'indicatore. Non posso vedere il codice dal mio cellulare, quindi non posso dire esattamente.
Motivazione: