Hallo,
ich bräuchte eure Hilfe bei der Validierung folgenden Codes:
* LL ist eine Triggerlinie.
*enterLong signal entsteht durch die Kreuzung der Triggerlinie und Highkurses.
*enterBasis für Longsignal ist entweder Open oder LL, je nach dem was höher ist.
|
Quellcode
|
1
2
3
4
5
|
global calc LL: ValueWhen(Ref(High, -1), Ref(High, -1) < Open, 1, V);
//ENTER SIGNAL
global calc enterLong: Cross(High, LL, 1) = 1;
//ENTER BASIS LONG
MAX(Open, LL)
|
Meine Fragen:
*das Kreuzen der Triggerlinie in der Verbindung von High muss nicht mit Ref(...,-1) zurückgesetzt werden, oder?
*wie kann ich die gültigkeit der Triggerlinie nur auf ein Signal begrenzen? Es geht darum, dass die Triggerlinie so lange besteht und Signale generiert, bis eine neue Triggerlinie generiert wird. Das fürt zu mehrmaligen kreuzen der Triggerlinie und Hihgkurses, was nicht erwünscht ist.
Danke
Giuseppe
Wo fange ich denn da an?!
1. Ein Cross setzt voraus, dass der Kurs über die Triggerlinie steigt. wird die Linie nur touchiert, wird kein Trade erzeugt.
In Realität wird man auf höhe der Triggerlinie einen Stop platzieren und evtl. öfters eingestoppt ohne dass die Linie überschritten wird.
-> einige Verlusttrades fehlen im Backtest, der Backtest ist also besser als das reale Handelsergebnis
2. Wenn man seinen Stop auf Triggerlinie+1 Punkte legt, hat man zwar die Probleme unter 1. nicht, aber muss die Enterlongbasis um 1 Tick nach oben setzen für den Backtest, sonst rechnet man jeden Trade einen Tick zu gut im Enter.
3. Wenn man ohne Einestoppen arbeitet und eine marketorder auf das Signalhin erzeugt, hat man das selbe Problem wie bei 2.
Kommen wir zu Deinem Problem, ich würde es mal so probieren :
mit
|
Quellcode
|
1
|
barssince(Ref(High, -1) < Open,1)
|
ermittelst Du die Anzahl Bars seit entstehen der Triggerlinie
jetzt zählst Du wie oft die Enterbedingung seit dem entstehen der Triggerlinie entstanden ist:
mit
|
Quellcode
|
1
|
global calc anzahl:sumvar(enterLong,barssince(Ref(High, -1) < Open,1));
|
und in die Enterbedingung schreibst Du
enterlong and anzahl=0
Hab´s nicht getestet, sollte aber eigentlich so funktionieren.
If you think it´s expensive to hire a professional, wait until you hire an amateur.