Come codificare? - pagina 15

 

Cercasi codificatore!

A tutti i programmatori che ci sono, ho bisogno di aiuto per codificare o fare per me EA per il mio trading. Non ho nessuna esperienza nel fare EA quindi ho bisogno di voi ragazzi.

L'EA :

LWMA - 5 (chiusura)

SMA - 8 (chiusura)

Compra - quando entrambe le linee si incrociano allora aspetta la prossima barra e inizia automaticamente il trigger. Lo stesso anche per andare short.

Stoploss - 30

Takeprofit - 30

Trailstop- 15

Per favore, ho bisogno di aiuto.

Grazie.

 
Sinar FX:
A tutti i programmatori là, ho bisogno di aiuto per codificare o fare per me EA per il mio trading. Non ho nessuna esperienza nel fare EA quindi ho bisogno di voi ragazzi.

L'EA :

LWMA - 5 (vicino)

SMA - 8 (chiusura)

Compra - quando entrambe le linee si incrociano allora aspetta la prossima barra e inizia automaticamente il trigger. Lo stesso anche per andare short.

Stoploss - 30

Takeprofit - 30

Trailstop- 15

Per favore, ho bisogno di aiuto.

Grazie.

Quale time frame?

 

Per favore, aiutatemi a capire il codice dell'indicatore personalizzato

Ciao, sono un principiante di MQL4. Ho notato che molti indicatori personalizzati contengono le seguenti righe per preparare il ciclo di conteggio delle barre:

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) return(-1);

if( counted_bars > 0 ) counted_bars--;

int limit = Bars - counted_bars;

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

Secondo il tutorial di metatrader.info, counted_bars = IndicatorCounted() calcolerà counted_bars come 0 al primo lancio dell'indicatore. "Dopo di che sarà il conteggio delle barre totali sul grafico meno uno". Dopo che cosa? Dopo il primo lancio? Devo lanciare l'indicatore due volte perché funzioni? Anche il manuale di riferimento di MQL4 non è molto più chiaro: "IndicatorCounted() restituisce il conteggio delle barre che non è cambiato dopo l'ultimo lancio dell'indicatore. Nella maggior parte dei casi lo stesso conteggio dei valori dell'indice non ha bisogno di essere ricalcolato. Utilizzato per ottimizzare i calcoli".

Poi c'è Bars, che è "il numero di barre sul grafico". Perché non usare semplicemente il seguente ciclo di conteggio delle barre:

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

Capirei se qualcuno potesse spiegare in parole povere cosa succede esattamente in

int counted_bars = IndicatorCounted();

if( counted_bars < 0 ) return(-1);

if( counted_bars > 0 ) counted_bars--;

int limit = Bars - counted_bars;

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

e in quale direzione vengono contate le barre: in avanti (dalla barra più vecchia alla più recente) o all'indietro? Grazie in avdance!

 

Vedi se questo articolo ti aiuta.

https://www.mql5.com/en/articles/1497

buona fortuna.

 

Grazie, Maji. Mi ha aiutato. Correggimi se mi sbaglio:

1. IndicatorCounted è utile nei grafici le cui barre sono aggiornate in tempo reale. Così, invece di ricalcolare i valori degli indicatori per tutte le barre quando appare una nuova barra, viene calcolato solo il valore dell'indicatore per questa nuova barra.

2. "limite" è semplicemente il numero di nuove barre per le quali l'indicatore deve essere calcolato.

3. L'indice dell'indicatore conta le barre all'indietro, con i=0 che indica la nuova barra (attuale).

Credo che la mia confusione fosse basata sulla mia precedente esperienza con Wealth-Lab, dove il codice di un indicatore è scritto in modo tale che i valori dell'indicatore sono calcolati per tutte le barre anche se solo le nuove barre devono essere calcolate. Tuttavia, Wealth-Lab ha una certa intelligenza incorporata ed è possibile che gli indicatori siano automaticamente ricalcolati solo per le nuove barre. Ho la sensazione che MQL4 non voglia prendere queste decisioni per voi e lasciarle a voi costringendovi a fare dei passi di programmazione extra. In realtà questo mi piace perché odio sempre quando un software prende decisioni per voi e queste decisioni non sono le vostre. Il mio unico problema con MQL4 è che vorrei che avesse una documentazione migliore.

 

fiqe,

Credo che le tue ipotesi siano giuste. Penso che MT4 abbia ragione nel calcolare solo gli indicatori una volta e che WL hogs resources lo faccia nell'altro modo.

Forse mi sbaglio e spero che altri più esperti possano correggere entrambi.

 
 

Nick,

Controlla la tua email. Ti ho mandato un esempio lì.

Fammi sapere.

Maji

 

OK, penso che si possa fare così:

Per prima cosa devi indicare l'ora in cui stai cercando - se il tuo broker è GMT+3 allora per contare i Pivots sull'ora GMT devi diminuire l'ora del broker di 3. Quindi se cerchi l'ora 00.00 cercherai le 21.00 all'ora del tuo broker.

Ora, un giorno è di 24 ore e cominciamo a cercare dalla parte destra dello schermo. L'ora del vostro broker è +3 quindi aggiungeremo quel numero al valore di spostamento.

for(int i = 3 ; i <= 27 ; i++)

{

if(TimeHour(Time)==21)

{

//This should be your GMT midnight so u can take OHLC values from here

double open = iOpen(Symbol(),60,i);

double high = iHigh(Symbol(),60,i);

double low = iLow(Symbol(),60,i);

double close = iClose(Symbol(),60,i);

}

}

Non so se questo è un modo semplice, ma funziona.

 

Salve,

Nell'ultima versione di SimpleDailyRangeBreakoutExpert puoi trovare il codice per fare la candela (OHLC) per qualsiasi fuso orario.

Motivazione: