Basso e alto - pagina 3

 

Ho capito dove era il problema (con il vostro aiuto). ;)

Grazie a tutti voi!

Ora--->TESTING! (il test posteriore sembra molto bene)

 

Penso che il problema sia che apre gli ordini ai livelli in cui hai attaccato l'EA al grafico, perché Hour() restituisce il tempo in ore in cui l'hai attaccato. Ma tu vuoi usare questo, credo:

TimeHour(Timecurrent())

Dai un'occhiata alla documentazione per vedere cosa intendo...

EP

 

Se riusciamo a risolvere questo, allora ho il mio santo graal! :D
 
ErrorProgrammer:

Penso che il problema sia che apre gli ordini ai livelli in cui hai attaccato l'EA al grafico, perché Hour() restituisce il tempo in ore in cui l'hai attaccato.

In realtà non aiuta a risolvere il problema di 01005379, ma non credo che questo sia giusto. Per esempio, l'esecuzione del seguente EA nel tester della strategia mostra un valore variabile per Hour() corrispondente all'ora simulata del broker.


int start() {Comment("Hour: " + Hour() + "   @ " + TimeToStr(TimeCurrent(), TIME_DATE | TIME_MINUTES));}

Penso che ciò che la documentazione stia cercando di dire è che Hour(), Minute() ecc. non cambiano durante una chiamata a start(). Ma cambiano nel corso della vita dell'EA.


 
01005379:

Se riusciamo a risolvere questo problema, allora ho il mio Santo Graal! :D

Quella barra sembra piuttosto sovradimensionata. succede la stessa cosa con altri ordini? Forse a causa della volatilità in quella particolare barra.

 
fxcourt:

Quella barra sembra piuttosto sovradimensionata. succede la stessa cosa con altri ordini? Forse a causa della volatilità in quella particolare barra.

Ora, è lo stesso con gli altri ordini. L'ordine è aperto una barra dopo che il valore è diventato più basso di LowValue. Per l'ordine di vendita vorrei che l'ordine fosse aperto non appena il Bid diventa più basso del LowValue.

 

Hai bisogno che il tuo codice di piazzamento degli ordini venga eseguito ogni tick. Al momento piazza un ordine solo sull'apertura della barra, a condizione che l'apertura sia sopra o sotto l'entrata.

int start()

{

//all'apertura della barra ottieni il massimo e il minimo

{

if(got_high_and_low)

{

readytotrade = true;

}

}

//ogni tick, se pronto a negoziare, controlla che il prezzo di entrata sia stato colpito

if(readytotrade)

{

//comprate o vendete

readytotrade = false;

}

}

 
fxcourt:
è necessario che il tuo codice di piazzamento ordini venga eseguito ogni tick. al momento, esso piazza un ordine solo sull'apertura della barra, a condizione che l'apertura sia sopra o sotto l'entrata.

Hm, e come faccio questo?

 

Dovrai ristrutturare il tuo codice. non dovrebbe essere troppo difficile. basta dividerlo in due parti. la prima parte viene eseguita una volta per barra per raccogliere la tua entrata e altri dati, la seconda parte guarderà l'entrata per essere colpita.

 
fxcourt:

Hai bisogno che il tuo codice di piazzamento degli ordini venga eseguito ogni tick. Al momento piazza un ordine solo sull'apertura della barra, a condizione che l'apertura sia sopra o sotto l'entrata.

int start()

{

//all'apertura della barra ottieni il massimo e il minimo

{

if(got_high_and_low)

{

readytotrade = true;

}

}

//ogni tick, se pronto a negoziare, controlla che il prezzo di entrata sia stato colpito

if(readytotrade)

{

//acquistare o vendere

readytotrade = false;

}

}

wuh, sono un po' perso in questo momento. Un aiuto in più sarebbe fantastico. ;)