[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()

Motivazione: