Samstag, 20. April 2024, 07:57 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Giuseppe Männlich

Meister

Registrierungsdatum: 31. März 2004

Beiträge: 556

Wohnort: Wien

1

Montag, 19. April 2010, 11:38

Cross mit oder ohne Ref(...,-1) ?

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
keep going on...
Inv [7.6.7]

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

2

Montag, 19. April 2010, 11:54

RE: Cross mit oder ohne Ref(...,-1) ?

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.

Giuseppe Männlich

Meister

Registrierungsdatum: 31. März 2004

Beiträge: 556

Wohnort: Wien

3

Donnerstag, 22. April 2010, 18:39

Hallo Lenzelot,

danke für die Ausführliche erklärung. Dein Code funktioniert wenn die Variable "anzahl" den Wert 1 annimt. Also wenn erstes mal die Kreuzung erfolgt. Das wollte ich erzielen.

LG Giuseppe
keep going on...
Inv [7.6.7]

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

4

Freitag, 23. April 2010, 21:30

hab ich mich so vertan?

naja 0 oder 1 was soll´s, die Welt ist dann doch digital. ;(

schön, dass es funktioniert. :thumbsup:
If you think it´s expensive to hire a professional, wait until you hire an amateur.