Ottimo EA in backtest! - pagina 108

 

risultati demo delle ultime settimane

Ciao mondo.

era circa venerdì scorso quando ho scoperto un potenziale bug nel calcolo delle ore bloccate.

Sto usando FXDD con un'impostazione di GMT=3. il seguente pezzo di codice dovrebbe calcolare l'ora corrente (gmt).

int hadj=TimeHour(CurTime())-GMT;

tuttavia, alle 00:00 ora FXDD, questa funzione restituisce -3, alle 01:00 restituisce -2 e alle 02:00 restituisce -1. ma i valori corretti dovrebbero essere 21, 22 e 23.

Questa era la ragione per cui il mio orario bloccato delle 23:00 gmt per le coppie JPY non veniva mai bloccato.

Ho aggiunto questo codice per compensare questo errore:

if (hadj<0) hadj = hadj + 24;

Comunque, ecco i risultati della scorsa settimana... niente di spettacolare, però.

Anche il mio conto live non è andato così bene.

quello che mi fa arrabbiare di più è che i backtest dopo il fatto si rivelano vincitori assoluti su tutta la linea. i trade vincenti del backtest non sono mai stati eseguiti durante il live trading e i trade perdenti durante il live traded non sono mai apparsi durante i backtest. questo è un mondo malvagio.

AZBOfin

 

Aragorn, stai usando le impostazioni di default per la tua versione 1.0 R2, o hai cambiato qualcosa. Il rischio, i lotti, ecc. non hanno comunque importanza, mi sto più chiedendo dei filtri, delle impostazioni SL e così via.

Ho aggiunto la tua revisione dell'EA a partire da oggi (ho perso la giornata di trading di ieri) al mio portafoglio live per l'EUR$. spero che possa riconquistare ciò che la versione "originale" ha perso

AZBOfin

BTW: buon lavoro con la programmazione

 
Aaragorn:
Devo dirvi che amo ancora svegliarmi la mattina e vedere che questo EA ha fatto soldi mentre dormivo.

Sto facendo un confronto tra il mio conto live che ora sta eseguendo solo la versione alerteuro e il conto demo che sto permettendo di eseguire la versione alert euro E la versione usdcad E la versione usdjpy tutte che ho postato in precedenza nel thread ... delle tre l'usdjpy è di gran lunga la più attiva, ed è anche di gran lunga la meno redditizia, sembra a malapena fare più del break even e talvolta perde molto. Volevo vedere se le tre coppie insieme avrebbero reso più o meno di quanto avrebbe fatto l'euro stesso, che è il risultato più affidabile che ho visto finora.

Beh, le tre insieme hanno quasi fatto crollare il mio conto demo fino al punto in cui si trova il mio conto live... sono pessime insieme! Penso che continuerò a far girare la versione euroalert in demo a rischio=1 e nel mio conto live a rischio=.25 Il saldo del mio conto live stamattina è di 315.16$ e nel demo è di 322.63$. Quasi lo stesso ora, vedrò in demo se potrei tollerare un rischio maggiore?

Nel frattempo... lungo il percorso di sviluppo...

Sto avendo qualche problema con la creazione di un istogramma con i dati di supporto e resistenza. Ovviamente non ho la padronanza di loop e array. Sto cercando di fare in modo che un ciclo di loop attraversi un array e se corrisponde a un valore già presente nell'array, incrementi il conteggio e passi al valore successivo e se non trova una corrispondenza, aggiunga il valore alla fine dell'array. Si sta rivelando disgustosamente difficile. In primo luogo l'array permette solo gli intergruppi, quindi devo convertire il valore del livello di prezzo in un intergruppi. Deve passare attraverso due conversioni di tipo di dati per farlo....THEN...deve incermentare all'interno del ciclo che apparentemente non sta facendo. Il ciclo va bene ma non sta incermentando i valori del test....oy vey. Dov'è il mago del codice quando ne ho bisogno?

#define SIZE 50 // must be set to match NumberOfBars

static int Index = 0;

static double Opens[ SIZE ] = { 0 };

static int TotalOMatches[ SIZE ] = { 0 };

static double OpenHistogram[2][ SIZE ] = { 0 };

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

string Openhist=DoubleToStr(Opens,4*10000);

int Ohist=StrToInteger("Openhist");

Print("Ohist: ",Ohist," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[Ohist][TotalOMatches])

{

level++;

matches++;

Print("Ohist: ",Ohist," ",TotalOMatches);

//Print("cycle: ",i5);

if(OpenHistogram[level][matches] != OpenHistogram[Ohist][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[Ohist][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[Ohist][TotalOMatches]);

}

i5--;

}

}

Quando lo eseguo stampa

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

.....

circa un milione di volte.

Se qualcuno può aiutarmi a farlo funzionare si senta libero di farlo. Mi ha fatto girare intorno ad un palo.

 
AZBOfin:
Aragorn, stai usando le impostazioni di default per la tua versione 1.0 R2, o hai cambiato qualcosa. Il rischio, i lotti ecc. non hanno comunque importanza, mi sto più chiedendo dei filtri, delle impostazioni SL e così via.

Ho aggiunto la tua revisione EA a partire da oggi (ho perso la giornata di trading di ieri) al mio portafoglio live per l'EUR$. spero che possa riconquistare ciò che la versione "originale" ha perso

AZBOfin

BTW: buon lavoro con la programmazione

Grazie, avrei ancora bisogno di un aiuto per la codifica. Conosci qualcuno che potrebbe assistermi? In realtà mi vedo a codificare come mickey mouse in fantasia quando il mago è di spalle.

Questo è quello che sto eseguendo in questo momento. Ho chiuso tutto il resto. Sì, è un mondo malvagio, ma noto che sto ancora giocando. È sorprendente come il mio atteggiamento verso il mondo cambi quando sto guadagnando rispetto a quando sto tirando giù. Il mio sforzo ora è concentrato sul miglioramento della gestione del denaro delle decisioni. Spero di riuscire a far funzionare la cosa del supporto/resistenza prima del tempo.

Wow, che mossa questa mattina! Peccato che non ho catturato quell'onda ... ma poi di nuovo questo sistema non sta vincendo catturando grandi mosse. Almeno come lo faccio vincere io sta solo cercando 7 pips su un'alta probabilità di inversione quando il cci è giusto. La cosa che devo ricordare è che 7 pips 3 volte al giorno sono 21 pips al giorno e se lo fa ogni giorno o anche solo vicino a questo con un certo grado di affidabilità è un grande sistema che può essere sfruttato per fare milioni in pochi mesi. Devo mantenere l'obiettivo in vista e non farmi distrarre dall'appariscenza del mercato. Tutta questa appariscenza è inutile se non si riesce a catturarla con un certo grado di affidabilità. Vedo più affidabilità in questo sistema così com'è che in qualsiasi altra cosa che ho studiato finora, ecco perché ci sto ancora lavorando.

 

Credo di vedere un modello.

L'ultima volta che c'è stato un grande movimento come quello di stamattina...

il programma ha fatto tre operazioni tra le inversioni di ritracciamento che sono seguite. Ha preso una posizione corta e due posizioni lunghe.

Ha vinto la posizione corta che stava scendendo dal picco del grande movimento. Ha perso la prima posizione lunga e poi ha vinto la seconda. La seconda è stata effettivamente migliore in termini di inversione (ovviamente)

quindi...

Il mio pensiero è che per ora, finché non riesco a programmarlo per riconoscere queste condizioni, gli impedisco manualmente di prendere una posizione lunga in questo momento, perché la prima posizione lunga che potrebbe prendere è, per quanto posso vedere dall'ultimo ciclo, una probabilità inferiore alla seconda posizione lunga che potrebbe prendere. Perciò in questo momento bloccherò manualmente le posizioni lunghe e monitorerò la situazione. Non devo prevenire troppe perdite per fare la differenza qui.

Vedo anche che questo è ora scambiato appena sotto dove ho una linea di resistenza disegnata a 1.2781. Dang vorrei sapere come rendere il mio istogramma di supporto e resistenza disponibile per questo codice ora...oy

 

Ok ho aggiunto

break; a questo punto del codice che ho appena postato...

}

i5--;

break;

}[/PHP]

now it's printing the second variable of the array...that's the matches

[PHP]2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

ora se riesco a capire come ottenere i livelli attraverso la loro conversione del tipo di dati e incermentando....hum

 

ciao aragorn

anche io sto giocando con questo sistema ma ho risultati diversi.

puoi essere così gentile da fare uno screenshoot di un giorno degli ultimi giorni?

Inoltre mi sto chiedendo, la mia finestra di allarme sembra cyberia alert - selling eur/usd ma il sistema vende gbp/usd? (ho in esecuzione 2 finestre eur/usd, gbp/usd)

grazie per l'aiuto e le informazioni

begu

File:
 
forex2006:
ciao aragorn

Anche io sto giocando con questo sistema ma ho risultati diversi.

puoi essere così gentile da fare uno screenshoot di un giorno degli ultimi giorni?

Inoltre mi sto chiedendo, la mia finestra di allarme sembra cyberia alert - selling eur/usd ma il sistema vende gbp/usd? (ho in esecuzione 2 finestre eur/usd, gbp/usd)

grazie per l'aiuto e le informazioni

begu

capire che quello che ho costruito con gli allarmi è specificamente per la coppia eurusd esclusivamente. Potrebbe essere cambiato nel codice per dire gbpusd ma non consiglio di eseguire la versione euroalert su qualsiasi altra coppia oltre a quella per cui è ottimizzata.

Non sono sicuro di cosa speri di ottenere da me postando uno screenshot. In realtà sono troppo occupato in questo momento con lo sviluppo per farlo per te, mi dispiace. forse un'altra volta quando capirò meglio cosa esattamente speri di imparare da questo.

Ok, ecco qui... per quello che vale.

File:
aleerteuro.gif  61 kb
 

Ok penso di aver imparato una lezione sul cercare di migliorare manualmente i trade ... la demo ha preso una posizione lunga e l'ha vinta e il mio conto live non l'ha fatto perché avevo i trade lunghi bloccati ... oy lol sto tornando a permettere sia long che short.... prova che non sono un genio del trading. un'altra teoria si è dimostrata meno che impeccabile ...

Il lato positivo è che ora sto facendo funzionare meglio gli array e i loop.

per tua informazione,

http://www.212movie.com/

 

Ok ho risolto i problemi di conversione dei dati. Ho fatto sì che un ciclo precedente caricasse tutti i valori dei prezzi *10000 in un array interger prima che il codice eseguisse questo ciclo. Ora chiamo semplicemente l'array interger in questo.

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

//Print("bar: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[OpensInt][TotalOMatches])

{

level++;

matches++;

//Print("Ohist: ",Ohist," ",TotalOMatches);

Print("cycle: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

if(OpenHistogram[level][matches] != OpenHistogram[OpensInt][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[OpensInt][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[OpensInt][TotalOMatches]);

}

i5--;

break;

}[/PHP]

this is the output...

[PHP]2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 1 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 2 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 3 Ohist: 12725 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 4 Ohist: 12722 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 5 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 6 Ohist: 12713 1

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 7 Ohist: 12684 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 8 Ohist: 12679 4

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 9 Ohist: 12666 2

Rimane ancora un problema...

potete vedere che le barre nel ciclo 1,2 e 5 sono tutte uguali. Quindi, mentre questo gestisce i dati estratti, non sta ancora facendo un istogramma consolidato che ha solo una voce per ogni livello di prezzo....

Qualcosa nella parte che dovrebbe aggiungere i valori unici alla fine dell'istogramma non sta ancora funzionando....huummm...Non ho familiarità con gli array, figuriamoci con gli array bidimensionali. Per qualcuno che sa come fare questo è probabilmente molto ovvio cosa sto facendo di sbagliato.