Aiuto per la codifica - pagina 522

 

Ciao a tutti,

Vorrei sapere se questo è il modo corretto di calcolare il valore dell'indicatore in un ciclo for (su tutte le barre disponibili):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

for(int i=0; i<Bars; i++)

{

double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i);

//...

SignalLine=ma;

}

//...

}

//...

ritorno tassi_totale

}

P.S. Logicamente in questo semplice caso vorrei rappresentare e tracciare una replica di MA per oggetto iMA. Ma non sono sicuro di come ho impostato il ciclo. Ottengo un po' di differenza rispetto a quello calcolato con MT4 integrato. Non riesco a capire perché!

Grazie

 
har:
Ciao a tutti,

Vorrei sapere se questo è il modo corretto di calcolare il valore dell'indicatore in un ciclo for (su tutte le barre disponibili):

int OnCalculate(...)

{

//...

ArraySetAsSeries(SignalLine,false);

//...

for(int i=0; i<Bars; i++)

{

double ma=iMA(NULL,0,MaPeriod,0,MaMethod,MaPrice,i);

//...

SignalLine=ma;

}

//...

}

//...

ritorno tassi_totale

}

P.S. Logicamente in questo semplice caso vorrei rappresentare e tracciare una replica di MA per oggetto iMA. Ma non sono sicuro di come ho impostato il ciclo. Ottengo un po' di differenza rispetto a quello calcolato con MT4 integrato. Non riesco a capire perché!

Grazie

Quando usi iMA() non importa l'ordine

Ma il modo corretto dovrebbe essere for(int i=Bars-1; i>=0; i--) - in questo modo si evitano errori in molti casi

 

Grazie mladen. Quindi se imposto ArraySetAsSeries(SignalLine,false) dovrei iterare con

for (int i = 0; i < Bars; i++)

mentre, al contrario, se imposto ArraySetAsSeries(SignalLine,true) dovrei iterare con

for (int = Bars - 1; i >= 0; i--)

È giusto?

 
har:
Grazie mladen. Questo perché se usiamo la funzione ArraySetAsSeries() allora dovremmo iterare inversamente attraverso l'array, giusto? Grazie!

Questo non cambia nulla - otterrete l'elemento 0 con il valore corrente, e quando arriva un nuovo valore corrente, quell'elemento 0 della SignalLine sarà sovrascritto dal nuovo valore.

Se SignalLine è un buffer, semplicemente non usare ArraySetAsSeries(SignalLine,false) ;

 

Ciao mladen mr tools e Igorad

Grazie di cuore per la saggezza condivisa di tuo e offerto aiuto.

Anch'io sto richiedendo il vostro aiuto di nuovo dopo una lunga gestazione così spero di ottenere la vostra attenzione, il vostro indicatore T3 adaptive ma _ica.mq4 è il mio indi preferito per il trading anche se visivamente buono difficile da seguire manualmente a causa della non disponibilità di tempo, quindi desidero che qualcuno mi aiuti a codificare un Expert advisor con le frecce di questo indicatore come segnali di acquisto e vendita per prendere ordini con normali servizi EA come trailing, bep e sl,tp insieme al dimensionamento del lotto.

Mladen e Igorad dovrebbero essere occupati - se possono aiutare sono dotato, se non qualcuno disposto ad aiutare può aiutarmi con questo. Questa è la pagina dove si trova l'indicatore T3 adaptive ma"https://c.mql5.com/forextsd/forum/167/t3_adaptive_ma_i-ca_2.01_alerts_nmc.mq4

Tra chiunque sia interessato alle frecce e alle curve di Lukas basate sull'indicatore EA - ha ancora bisogno di miglioramenti nell'analisi della curva reale del prezzo, dato che si basa sul ma, il prezzo non viene analizzato, ma è tutto LIMITATO nel forex, altrimenti tutti saranno milionari per scelta.

Ho provato a codificarlo ma non sono un programmatore quindi tutto è rimasto invano, quindi sollevo la richiesta di aiuto qui. senza capacità di codifica sicuramente è difficile impartire indicatori molto sofisticati come T3 adattivo con super cervello di mladen.

Il sogno è grande ma quello che è in mano è minuscolo.

 

Oh okkkk... Grazie!

In C++ non c'erano questo tipo di problemi...

 

Ciao Mladen

Spero che tu possa considerare questo aiuto, per favore dai un'occhiata a questo post -#5118 appena un post sopra il tuo post #5220.

Sarebbe un miglior regalo per me con mani chiare come le tue.

 
har:
Oh okkkk... Grazie! In C++ non c'erano questo tipo di problemi...

Dato che lavoro sempre con gli array in modo simile al C/C++, l'indicizzazione in questi array va da 0 (il più vecchio) a Bars-1 (il più recente). Se usi l'indice 0 per la barra più recente, riscriverà sempre l'elemento 0

Se volete usarlo nel modo C/C++, usate un array, controllate se la dimensione è uguale a Bars, se no, ridimensionatelo alla dimensione di Bars, e poi assegnate i valori agli elementi usando Bars-i-1 come indice

Se è un buffer, l'indicizzazione è invertita rispetto al modo C/C++ e quindi non devi cambiare nulla in quel ciclo - basta rimuovere la parte che imposta l'array come serie a false

 

Sì, ho visto! L'ho capito anch'io... Comunque solo piccole differenze tra MQL e C++. C'è molto C in MQL per quello che ho visto! Ma sicuramente mi piace MQL

Desidero condividere il mio indicatore una volta pronto (e se riesco a capire se è utile) e dare una mano a voi ragazzi!

 
har:
Sì, ho visto! L'ho capito anch'io... Comunque solo piccole differenze tra MQL e C++. C'è molto C in MQL per quello che ho visto! Ma sicuramente mi piace MQL Vorrei condividere il mio indicatore una volta pronto (e se riesco a capire se è utile) e dare una mano a voi ragazzi!

Anche se sembrano simili, sono lontani dall'essere simili quando li si esegue. ex4 è un codice P. La sua velocità di esecuzione è almeno 100 volte più lenta di una controparte C/C++ equivalente.

Se puoi, scrivi le parti cruciali in una DLL C/C++ - sarà molto più veloce

Motivazione: