[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 198

 
SK. писал(а) >>

Date un'occhiata qui.

Molte grazie SK, Vinin!

Un grande esempio per il workaraund.

Deve essere valsa la pena di diventare così sofisticata. :-)

Sembra che MQL4 sappia come "ottimizzare" il tempo del programmatore. :-)

 
SK. >> :

Guarda qui.

Grazie, articolo molto utile.

 
stera писал(а) >>

Grazie mille SK, Vinin!

granit77 ha scritto >>.

Grazie, articolo molto utile.

Se siete interessati a questo argomento, date un'occhiata a questo articolo http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi

Discute molti dettagli per le linee orizzontali, e mostra la soluzione tecnica (alternanza).

Anche le linee verticali sono illustrate. Ma non ho ancora capito alcune regole. Per esempio, è sufficiente cambiare la parità dei buffer ind., man mano che l'immagine oscilla (blocco 4-5, cambiare i numeri dei buffer da 6 e 7 a 5 e 6, e rendere il 5° 7m).

 
Domanda di un principiante. È possibile scrivere un EA in mql4 che implichi un trading automatico con apertura e chiusura ad una certa ora regolarmente? Voglio metterlo alla prova. Per lo più usato rulang, ma queste idee non sono apparentemente fattibili lì.
 

Qual è l'ordine degli indicatori e degli esperti?

Ho 2 indicatori su un grafico.

E nel complesso, il loro tempo di esecuzione è a volte molto più lungo del tempo tra i tick.

Quale indicatore viene eseguito per primo?

Se non vengono eseguiti in parallelo, forse è ragionevole metterli in grafici diversi, ovviamente, se non c'è un ordine di esecuzione in grafici diversi.

Quale indicatore o Expert Advisor viene eseguito per primo se sono sullo stesso grafico e se sono su grafici diversi?

 

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

Non funziona.


Per favore, ditemi cosa fare. Non so cosa fare.

 
Feonix >> :

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

Non funziona.

Per favore, ditemi cosa fare. Non riesco a capirlo.

>> Cosa fare? >> Mostra tutto il codice!

 
OneDepo >> :

Cosa fare? Mostra tutto il codice!

//+------------------------------------------------------------------+

//| Momentum.mq4 |

//| Copyright © 2004, MetaQuotes Software Corp.

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp.

#proprietà link "http://www.metaquotes.net/"


#proprietà indicator_separate_window

#proprietà indicator_buffers 1

#property indicator_color1 DodgerBlue

//---- parametri di ingresso

extern int MomPeriod=14;

int ret;

doppio x[];

//---- buffer

doppio MomBuffer[];

doppio ocfor[];

doppio octen[];

//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'indicatore personalizzato

//+------------------------------------------------------------------+

int init()

{

stringa short_name;

//---- linea di indicazione

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,MomBuffer);

//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore

short_name="Mamma("+MomPeriod+")";

IndicatoreNomeCorto(nome_corto);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,MomPeriod);

//----

ritorno(0);

}

//+------------------------------------------------------------------+

//| Momentum |

//+------------------------------------------------------------------+

int start()

{

int i,counted_bars=IndicatorCounted();

//----

se(Bars<=MomPeriod) return(0);

//----

i=Barre;

mentre(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

i--;


}

ritorno(0);

}

//+------------------------------------------------------------------+



Se sostituite Double x[]; con Double x;, tutto funziona, ma il punto è assegnare mombuffer[i]= x[i]

 
Feonix писал(а) >>

//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod=14;

int ret;
double x[];

//---- buffers
double MomBuffer[];
double ocfor[];
double octen[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init()
{
string short_name;
//---- indicator line
IndicatorBuffers( 2);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MomBuffer);
SetIndexBuffer(1, x);

//---- name for DataWindow and indicator subwindow label
short_name="Mom("+ MomPeriod+")";
IndicatorShortName( short_name);
SetIndexLabel(0, short_name);

//----
SetIndexDrawBegin(0, MomPeriod);

//----
return(0);

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start()
{
int i, counted_bars=IndicatorCounted();

//----
if(Bars<= MomPeriod) return(0);
//----
i=Bars;

while( i>=0)
{
x[ i]=(Open[ i]-Close[ i]);
MomBuffer[ i]= x[ i];
i--;
}

return(0);
}

//+------------------------------------------------------------------+
Puoi fare questo
 
Feonix >> :

.

.

int start()

{

int i,counted_bars=IndicatorCounted();

//----

se(Bars<=MomPeriod) return(0);

//----

i=Barre;


ArrayResize(x, i+1);


mentre(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

i--;

}

ritorno(0);

}



Se sostituite Double x[]; con Double x;, tutto funziona, ma il punto è assegnare mombuffer[i]= x[i].

Avete dichiarato un array ma non avete allocato la memoria per esso.

Vinin ha dato un modo di allocare la memoria, voi potete usare il secondo, attraverso la funzione ArrayResize()