Come codificare? - pagina 77

 

Ichimoku Kinko Hyo Cross apre solo i Buy!

Ciao a tutti,

Sto programmando da qualche settimana e sto procedendo ragionevolmente bene. Ma ho raggiunto un punto in cui il mio ultimo sistema abbastanza semplice che sto cercando di codificare non funziona per me. L'ho riscritto circa cinque volte, usando un codice diverso, provando i costruttori di Expert Advisor e alterando altre strategie incrociate e così via, ma il sistema aprirà sempre e solo Buy Trades. (Tra gli altri problemi che ho) qualsiasi aiuto sarebbe molto apprezzato perché sembra che potrebbe essere un sistema redditizio. (Ok tutti sembrano pensare questo quando li programmano, ma i backtest manuali barra per barra mostrano un risultato positivo).

IL SISTEMA: Configurazione del grafico

L'indicatore Ichimoku Kinko Hyo con impostazioni predefinite 9,26,52. Mostra solo il Tenkan-Sen e il Kijun-Sen, nasconde le linee Senkou e Chikou.

PRIMO INGRESSO (spiegato per long/buy - lo stesso vale per sell in op. direction)

Tenkan-Sen incrocia Kijun-Sen e il prezzo è sopra KIJUN-Sen. Stop loss l'ammontare dello spread della coppia sotto Tenkan-Sen. Trail con stop a Kijun-Sen - spread pips a meno che non si verifichi un segnale di inversione (dove si chiude).

RE-ENTRY (a volte alcuni trade vengono fermati prima di prendere la "grande corsa"

Se lo stop loss viene colpito, prima dell'incrocio di Tenkan-Sen e Kijun-Sen una posizione può essere riaperta se il prezzo chiude sopra il TENKAN-Sen e il Tenkan-Sen è ancora sopra il Kijun-Sen. Stop loss come prima.

SINTESI

Entrare long quando Tenkan-Sen incrocia sopra Kijun-Sen. Stop loss una distanza di spread sotto Kijun-Sen. Se fermato prima dell'incrocio e si verifica l'inversione, può rientrare in una posizione long se il prezzo sale sopra Tenkan-Sen. Nessun Take Profit, solo seguire lo stop loss su Kijun-Sen.

Questo sistema tende ad amare le tendenze, ma le perdite non dovrebbero essere troppo grandi nei mercati range-bound. Ho intenzione di fare trading sui TF giornalieri, ma altri possibili quando avrò l'Expert in funzione. Infatti, su alcuni mercati che ho testato, l'EA è redditizio al momento, prima ancora che funzioni correttamente!

MQ4 allegato se qualcuno può decifrare dove sto sbagliando!

Grazie,

Howard

P.S. Sarebbe bello ricevere un po' di aiuto su questo come il mio compleanno domani e sarebbe molto bello ricevere un po' di aiuto!

Mi scuso anche con tutti i praticanti di Ichimoku là fuori che ritengono che non dovrebbe essere automatizzato in quanto è pensato per fare trading sul mercato "a colpo d'occhio". Tuttavia sento che l'indicatore è così meraviglioso, specialmente il Kijun-Sen, che scambia appena fuori dai ritracciamenti in molte tendenze lunghe che è perfetto per l'automazione!

File:
ikh_pro.mq4  5 kb
 
gmax111:
sto scrivendo un EA che compra e vende le croci EMA... Voglio filtrarlo controllando se le ultime 10 barre chiuse erano sopra l'EMA prima di acquistare... qualcuno può aiutarmi?

bool OkToBuy()

{

for(int j = 1, j < 11, j ++) if(Close[j] < EMA) return(false);

return(true);

}

 
Michel:

bool OkToBuy()

{

for(int j = 1, j < 11, j ++) if(Close[j] < EMA) return(false);

return(true);

}

Grazie mille per questo Michel...

Questa era una di quelle cose che mi ha lasciato perplesso, ma ora mi sento come un pazzo per aver pensato troppo... haha... GRAZIE ANCORA!!!

 

Come codificare!

Penso che questo Ea è molto buono ...

Ma apre solo un ordine in una coppia... perché?

 

A adria

adria

Mi sono interessato al tuo problema e ci ho giocato.

Sembra che tu abbia bisogno di fare qualcosa del genere:

Per prima cosa, dichiara globalmente Var1, Var2.

Poi prova questo:

if (Hour() == 12) Var1 = iHigh(NULL,0,1);

se (Ora() == 12) Var2 = iLow(NULL,0,1);

Il Metaeditor Navigator dà una spiegazione di Hour().

Cerca TSD per "trading hours" per altri esempi.

Se il tuo EA è promettente, potresti spararmi una copia?

Grande essere

 

A Big Be

Ho creato un EA simile. Dovete cambiare il valore TIME secondo il vostro

tempo del grafico.

File:
 

bisogno di aiuto con questa funzione closealltrades

Ho notato che il broker a volte riquote il prezzo causando la mancata chiusura dell'EA

l'ordine. Come posso evitare che l'EA continui fino a quando tutti gli ordini secondo

al suo numero magico è chiuso, magari mettendo una funzione sleep per 5 secondi e

un ciclo while per controllare e chiudere gli ordini prima di continuare. Qui sotto c'è la

funzione closealltrades. Apprezzo l'aiuto e grazie in anticipo.

void CloseAllTrades()

{

int rc;

int cnt;

for(cnt=OrdiniTotali()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

{

rc= OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

se(!rc)

Log("Errore di chiusura="+GetLastError());

}

}

}

 
hedge4x:
Ho notato che il broker a volte riquote il prezzo causando la mancata chiusura dell'EA

l'ordine. Come posso impedire che l'EA continui fino a quando tutti gli ordini secondo

al suo numero magico sia chiuso, magari mettendo una funzione sleep per 5 secondi e

un ciclo while per controllare e chiudere gli ordini prima di continuare. Qui sotto c'è la

funzione closealltrades. Apprezzo l'aiuto e grazie in anticipo.

void CloseAllTrades()

{

int rc;

int cnt;

for(cnt=OrdiniTotali()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

{

rc= OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

se(!rc)

Log("Errore di chiusura="+GetLastError());

}

}

}

bool IsAllClosed ; //Global variable

void CloseAllTrades()

{

int cnt;

IsAllClosed = true;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

IsAllClosed = IsAllClosed && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(!IsAllClosed) {CloseAllTrades(); return;}

...

 

grazie

Grazie Michel per il tuo aiuto.

Lo proverò.

 

Questa linea while(!IsAllClosed) {CloseAllTrades(); return;}

nell'avvio principale chiuderà tutte le posizioni aperte se MT scende

e lo faccio ripartire. C'è un modo per mettere questa linea

nella funzione closealltrades in modo che non chiuda tutte le posizioni aperte

dopo il riavvio di MT4?

Grazie.