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

 
mila.com:
Salve.
Per favore, aiutatemi a confrontare il prezzo MA della prima barra con i prezzi MA delle quattro barre precedenti. Se il prezzo è aumentato e la differenza è maggiore di N riempire il buffer. Sto provando in questo modo

Quale prezzo è salito - il MA? È aumentato in relazione a ogni barra successiva (valore sulla barra) o in relazione a una qualsiasi delle quattro?

 
Aleksey Vyazmikin:

Quale prezzo è salito - il MA? È salito rispetto a ogni barra successiva (valore sulla barra) o rispetto a una qualsiasi delle quattro?

Sì, in qualsiasi bar.

Condizione: se il valore della MA sulla prima barra è aumentato di N rispetto al valore della MA su una qualsiasi delle quattro barre precedenti, allora il buffer.

Ho bisogno di sapere che il valore della MA è salito di "N" pip, e non importa per quale periodo di tempo, ma non riesco a pensare a niente di diverso da un confronto su un numero limitato di barre.

 
mila.com:

Sì, a chiunque.

Condizione: se il valore della linea MA sulla prima barra è aumentato di N rispetto al valore MA su una qualsiasi delle quattro barre precedenti, allora il buffer.

Ho bisogno di sapere che il valore della MA è salito di "N" pip, e non importa quale sia il tempo, ma oltre a confrontare su un numero limitato di barre non riesco a pensare a nulla.


Allora perché non sottraete un valore di MA dall'altro e guardate il delta - confrontatelo con il minimo, perché questi cicli?

 
Aleksey Vyazmikin:

Allora perché non sottraete un valore di MA dall'altro e guardate il delta - confrontatelo con il minimo, perché questi cicli?

Il prezzo può cambiare lentamente su diverse barre, un pip alla volta (nozionalmente) il quinto sarà il cambiamento che stai cercando.

 
mila.com:

Il prezzo può cambiare lentamente su diverse barre


Quindi prendete il valore dell'indicatore 4 barre fa e il valore attuale e confrontatelo - se il periodo di mediazione non è super superficiale, allora l'aumento è regolare...

 

O avete indicatori con impostazioni diverse?

 
Aleksey Vyazmikin:

Quindi prendete il valore dell'indicatore 4 barre fa e il valore attuale e confrontatelo - se il periodo di mediazione non è super superficiale, l'aumento è regolare...

La differenza che stai cercando potrebbe essere sulla seconda barra, ma tu suggerisci di confrontare la prima e la quarta.

 
mila.com:

La differenza che stai cercando potrebbe essere sulla seconda barra, ma tu suggerisci di confrontare la prima e la quarta.


Qual è il periodo di mediazione del MA - mi stavo solo chiedendo - hai bisogno di una pausa?

 
mila.com:

Un indicatore MA. Puoi aiutarmi con il loop?


Se ho capito bene quello che volete, ecco lo script - occupatevene.

#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int period_iMA=16;
input double N_=0.005;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double DeltaMA=0.0;
   int Nbar=0;
   for(int i=1;i<5;i++)
     {
      DeltaMA=iMAf(1)-iMAf(i);
      if(DeltaMA<0)DeltaMA=DeltaMA*(-1);
      if(N_-DeltaMA<0) {Nbar=i; break;}
     }
   Print("Бар привышения - ",Nbar);

  }
//+------------------------------------------------------------------+
double iMAf(int index)
  {
   return NormalizeDouble(iMA(Symbol(),0,period_iMA,0,0,0,index),Digits);
  }
//+------------------------------------------------------------------+

Faccio delta in valore positivo, se dovete determinare con + o -, allora togliete la lineaif(DeltaMA<0)DeltaMA=DeltaMA*(-1); e prendete in considerazione separatamente una costante per il confronto (con - e +)

 
Aleksey Vyazmikin: allora ecco il copione: occupatevene.
Grazie