Großartiger EA im Backtest! - Seite 108

 

Demo-Ergebnisse der letzten Woche

Hallo Welt.

es war am vergangenen Freitag, als ich einen möglichen Fehler bei der Berechnung der blockierten Stunden entdeckte.

Ich benutze FXDD mit einer Einstellung von GMT=3. Der folgende Code sollte die aktuelle Stunde (gmt) berechnen.

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

um 00:00 FXDD-Zeit gibt diese Funktion jedoch -3 zurück, um 01:00 -2 und um 02:00 -1. Die korrekten Werte sollten jedoch 21, 22 und 23 sein.

Dies war der Grund, warum meine blockierten Stunden von 23:00 gmt für die JPY-Paare nie blockiert wurden.

Ich habe diesen Code hinzugefügt, um diesen Fehler auszugleichen:

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

Wie auch immer, hier sind die Ergebnisse der letzten Woche... nichts Spektakuläres allerdings.

Mein Live-Konto hat auch nicht so gut abgeschnitten.

Was mich am meisten ärgert, ist die Tatsache, dass sich Backtests im Nachhinein als absolute Gewinner herausstellen. Gewonnene Backtest-Trades wurden im Live-Handel nie ausgeführt und verlorene Trades im Live-Handel wurden im Backtest nie angezeigt. Das ist eine verrückte Welt.

AZBOfin

 

Aragorn, sind Sie mit den Standard-Einstellungen für Ihre 1.0 R2-Version, oder haben Sie etwas ändern. Risiko, Lose usw. nicht egal, ich bin mehr wundern über die Filter, SL-Einstellungen und solche.

Ich habe Ihre EA-Revision seit heute (ich habe den gestrigen Handelstag verpasst) in mein Live-Portfolio für den EUR$ aufgenommen. Ich hoffe, sie kann zurückgewinnen, was die "Original"-Version verloren hat.

AZBOfin

BTW: gute Arbeit mit der Programmierung in der Tat

 
Aaragorn:
Ich muss Ihnen sagen, ich liebe es immer noch, morgens aufzuwachen und zu sehen, dass dieser EA Geld verdient hat, während ich schlief.

Ich tue einen Vergleich meiner Live-Konto, das jetzt nur die alerteuro Version und das Demo-Konto, die ich erlaube, um die Alarm-Euro UND die usdcad UND die usdjpy Version alle, die ich früher in den Thread gepostet... der drei die usdjpy ist bei weitem die aktivste, und es ist auch bei weitem die am wenigsten profitabel, es scheint kaum mehr als Break-even und manchmal verliert viel. Ich wollte sehen, ob die drei Paare zusammen mehr oder weniger als nur der Euro selbst machen würde, die das zuverlässigste Ergebnis, das ich so weit sehen ist.

Nun, die drei zusammen haben fast mein Demo-Konto zurück zu sprengen, wo mein Live-Konto ist ... sie sind lausig zusammen! Ich denke, ich werde die euroalert-Version weiterhin in der Demo mit Risiko=1 und in meinem Live-Konto mit Risiko=.25 laufen lassen. Der Kontostand in meinem Live-Konto beträgt heute Morgen $315.16 und in meinem Demo-Konto $322.63. Ich werde sehen, ob ich in der Demo ein höheres Risiko verkraften kann?

In der Zwischenzeit... auf dem Entwicklungspfad...

Ich habe einige Probleme mit der Erstellung eines Histogramms mit den Unterstützungs- und Widerstandsdaten. Offensichtlich habe ich Schleifen und Arrays nicht im Griff. Ich versuche, eine Schleife dazu zu bringen, ein Array zu durchlaufen, und wenn es mit einem Wert übereinstimmt, der sich bereits im Array befindet, dann die Anzahl zu erhöhen und zum nächsten Wert überzugehen, und wenn es keine Übereinstimmung findet, dann den Wert an das Ende des Arrays anzuhängen. Das erweist sich als ekelhaft schwierig. Zunächst einmal erlaubt das Array nur Interger-Werte, also muss ich den Preisstufenwert in einen Interger-Wert umwandeln. Es muss durch zwei Datentypen Konvertierungen zu tun, dass....THEN...es muss incerment innerhalb der Schleife, die offenbar es nicht tun. Es ist Schleife ok, aber es ist nicht incermenting die Testwerte....oy vey. Wo ist der Programmierexperte, wenn ich ihn brauche?

#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--;

}

}

Wenn ich das hier ausführe, druckt es

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

.....

ungefähr eine Million Mal.

Wenn mir jemand helfen kann, dies zum Laufen zu bringen, dann bitte auch. Es hat mich um eine Stange verdreht.

 
AZBOfin:
Aragorn, verwendest du die Standardeinstellungen für deine Version 1.0 R2, oder hast du irgendetwas geändert? Risiko, Menge usw. spielen sowieso keine Rolle, ich frage mich eher nach den Filtern, SL-Einstellungen und so.

ich habe Ihre EA-Revision ab heute (habe den gestrigen Handelstag verpasst) in mein Live-Portfolio für den EUR$ aufgenommen. ich hoffe, sie kann zurückgewinnen, was die "Original"-Version verloren hat

AZBOfin

BTW: gute Arbeit mit der Programmierung in der Tat

Danke, ich könnte noch etwas Hilfe bei der Codierung gebrauchen. Kennen Sie jemanden, der mir helfen könnte? Eigentlich sehe ich mich wie Micky Maus in Fantasia, wenn der Zauberer den Rücken zudreht.

Das ist es, was ich im Moment verwende. Ich habe alles andere heruntergefahren. Ja, es ist eine böse Welt, aber ich merke, dass ich immer noch das Spiel spiele. Es ist erstaunlich, wie sich meine Einstellung gegenüber der Welt ändert, wenn ich profitiere, im Gegensatz zu dem, was ich einbüße. Meine Bemühungen konzentrieren sich jetzt auf die Verbesserung des Geldmanagements bei den Entscheidungen. Hoffentlich kann ich die Sache mit der Unterstützung/Widerstand in Kürze in den Griff bekommen.

Was für eine Bewegung heute Morgen! Schade, dass ich diese Welle nicht erwischt habe... aber andererseits gewinnt dieses System auch nicht, indem es große Bewegungen erwischt. Zumindest, wie ich habe es zu gewinnen, es ist nur auf der Suche nach 7 Pips auf eine hohe Wahrscheinlichkeit Reverse, wenn die cci richtig ist. Die Sache, die ich habe zu erinnern, ist, dass 7 Pips 3 mal am Tag ist 21 Pips pro Tag und wenn es tut, dass jeden Tag oder sogar in der Nähe von, dass mit einem gewissen Grad an Zuverlässigkeit ist es ein großes System, das in Millionen in nur ein paar Monaten gehebelt werden kann. Ich muss das Ziel im Auge behalten und darf mich nicht von der Auffälligkeit des Marktes ablenken lassen. All das Auffällige ist nutzlos, wenn man es nicht mit einem gewissen Grad an Zuverlässigkeit einfangen kann. Ich sehe in diesem System, so wie es ist, mehr Zuverlässigkeit als in allen anderen, die ich bisher studiert habe, deshalb arbeite ich noch daran.

 

Ich glaube, ich erkenne ein Muster.

Das letzte Mal, als es eine große Bewegung wie heute Morgen gab...

nahm das Programm drei Positionen in den darauf folgenden Rücksetzern ein. Es ging eine Short-Position und zwei Long-Positionen ein.

Es gewann die Short-Position, die von der Spitze der großen Bewegung herunterkam. Und es verlor die erste Long-Position und gewann dann die zweite. Die zweite Position war in Bezug auf die Umkehrung sogar besser (offensichtlich).

Also...

Mein Gedanke ist, dass ich im Moment, bis ich ihn so programmieren kann, dass er diese Bedingungen erkennt, manuell verhindere, dass er jetzt eine Long-Position einnimmt, denn die erste Long-Position, die er einnehmen könnte, ist, soweit ich das aus dem letzten Zyklus erkennen kann, unwahrscheinlicher als die zweite Long-Position, die er einnehmen könnte. Ich werde daher jetzt manuell Long-Positionen blockieren und dies überwachen. Ich muss nicht zu viele Verlierer verhindern, um hier einen Unterschied zu machen.

Ich sehe auch, dass der Kurs jetzt knapp unter der von mir eingezeichneten Widerstandslinie bei 1,2781 liegt. Verdammt, ich wünschte, ich wüsste, wie ich meine Unterstützung Widerstand Histogramm verfügbar zu machen, um diesen Code jetzt ... oy

 

Ok, ich habe

break; an dieser Stelle im Code, den ich gerade gepostet habe...

}

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

jetzt, wenn ich herausfinden kann, wie man die Ebenen durch ihre Datentypkonvertierung und incermenting....hum erhalten

 

hallo aragorn

ich spiele auch mit diesem System, habe aber andere Ergebnisse.

Kannst du so nett sein und ein Screenshoot von einem Tag der letzten Tage machen?

Außerdem wundere ich mich, dass mein Alarmfenster "Cyberia alert - selling eur/usd" anzeigt, aber das System verkauft "gbp/usd"? (ich habe 2 Fenster laufen eur/usd, gbp/usd)

Danke für Hilfe und Informationen

begu

Dateien:
 
forex2006:
hallo aragorn

Ich spiele auch mit diesem System, habe aber andere Ergebnisse.

Können Sie so freundlich sein und machen ein screenshoot von einem Tag der letzten Tage?

Außerdem wundere ich mich, dass mein Alarmfenster "Cyberia alert - selling eur/usd" anzeigt, aber das System verkauft gbp/usd? (ich habe 2 Fenster laufen eur/usd, gbp/usd)

Danke für Hilfe und Informationen

begu

verstehen, dass das, was ich mit Alarmen gebaut habe, ist speziell für die eurusd Paar ausschließlich. Es könnte im Code geändert werden, um gbpusd zu sagen, aber ich empfehle nicht, die euroalert Version auf jedem anderen Paar neben dem Paar laufen zu lassen, für das es optimiert ist.

Ich bin mir nicht sicher, was Sie sich davon versprechen, dass ich einen Screenshot poste. Ich bin im Moment zu sehr mit der Entwicklung beschäftigt, um das für Sie zu tun, tut mir leid. Vielleicht zu einem späteren Zeitpunkt, wenn ich besser verstehe, was genau Sie sich davon erhoffen.

Ok, das war's... was auch immer es wert ist.

Dateien:
aleerteuro.gif  61 kb
 

Ok ich denke, ich habe eine Lektion über den Versuch, die Trades manuell zu verbessern gelernt...die Demo nahm eine lange Position und gewann es und mein Live-Konto nicht, weil ich lange Trades blockiert hatte...oy lol Ich gehe zurück, um sowohl lange als auch short....proof zu ermöglichen, dass ich nicht ein Trading-Genie bin. eine andere Theorie erwies sich weniger als einwandfrei...

Positiv ist, dass ich die Arrays und Schleifen jetzt besser zum Laufen bringe.

fyi,

http://www.212movie.com/

 

Ok ich habe die Datenkonvertierungsprobleme gelöst. Ich habe eine vorherige Schleife alle Werte der Preise *10000 in ein Interger-Array laden lassen, bevor der Code diese Schleife ausführt. Jetzt rufe ich einfach das Interger-Array in dieser Schleife auf.

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

Ein Problem bleibt jedoch bestehen...

Sie können sehen, dass die Balken in Schleife 1, 2 und 5 alle gleich sind. Während dies nun die extrahierten Daten verwaltet, wird also immer noch kein konsolidiertes Histogramm erstellt, das nur einen Eintrag für jedes Preisniveau hat....

Irgendetwas an dem Teil, der die eindeutigen Werte an das Ende des Histogramms anhängen soll, funktioniert noch nicht....huummm... Ich kenne mich einfach nicht mit Arrays aus, geschweige denn mit zweidimensionalen Arrays. Für jemanden, der weiß, wie man dies tut, ist es wahrscheinlich sehr offensichtlich, was ich falsch mache.

Grund der Beschwerde: