Donnerstag, 18. April 2024, 14:06 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Roti

unregistriert

1

Samstag, 28. Juni 2003, 16:37

Aroon-System aus WL

Hallo,

ich bin in der Investox-Formelsprache noch nicht sattelfest. Ich möchte folgendes System mit dem Aroon Backtesten:

Code WL:

var BAR, CHARTPANE: integer;
for Bar := 20 to BarCount - 1 do
begin
if PriceClose(bar) > 5000 then setpositionsize(priceclose(bar)*1.1);
if LastPositionActive then
begin
if PositionLong( LastPosition ) then
{ Long Position Exit Rules }
begin
if (Aroonup(bar,#close,14) < 70) or (Aroondown(bar,#close,14) > 50) then
SellAtLimit( Bar, PriceClose(Bar),LastPosition, '' );
end
else
{ Short Position Exit Rules }
begin
if (Aroonup(bar,#close,14) > 50) or (Aroondown(bar,#close,14) < 70) then
CoverAtLimit( Bar, PriceClose(Bar),LastPosition, '' );
end;
end
else
begin
{ Long Position Entry Rules }
if (Aroonup(bar,#close,14) = 100) and (Aroondown(bar,#close,14) < 40) then
BuyAtLimit( Bar, PriceClose( Bar),'')
{ Short Position Entry Rules }
else if (Aroonup(bar,#close,14) < 40) and (Aroondown(bar,#close,14) = 100) then
ShortAtLimit( Bar, PriceClose( Bar),'');
end;
end;
chartPane := CreatePane( 75, true, true );
PlotSeries( AroonUpSeries( #Close,14 ), chartpane, 009, #Thin );
PlotSeries( AroonDownSeries( #Close,14 ), chartpane, 905, #Thin );

Für Investox müsste es irgendwie so aussehen:

Enter Long = Aroon Up Close 14 Tage = 100 AND Aroon Down Close 14 Tage < 40

Exit Long = Aroon Up Close 14 Tage < 70 AND Aroon Down Close 14 Tage > 50

Enter Short = Aroon Up Close 14 Tage < 40 AND Aroon Down Close 14 Tage = 100

Exit Short = Aroon Down Close 14 Tage > 50 AND Aroon Up Close 14 Tage < 70


Leider finde ich kein If, Else, Then in der Formelsprache; kurzum wie schreibe ich die Formel in Investox?
Auch in der Investox-Hilfe ist mir aufgefallen das der Aroon nicht aufgeführt ist (Bsp.-Programmierung) sondern ein Anwenderindikator ist - der Aroon ist doch in der TA etabliert; Hr. Knöpfel können Sie diesen nicht standardmäßig aufnehmen und in der Hilfe ein Bsp. einbringen wie man den Aroon programmieren kann (so wie mit z.B. MACD der vorbildlich beschrieben ist) - wäre gerade für Anfänger hilfreich!

Viele Grüße

Roti :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Roti« (28. Juni 2003, 16:39)


Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

2

Samstag, 28. Juni 2003, 17:31

Hallo Roti,
die If-Then-Else-Geschichten aus der WL-Sprache brauchst du in Investox nicht. Damit werden wohl die Positionen ge-/verkauft, was ja Investox selbständig macht. Du braucht eingentlich nur die Enter-/Exit-Bedingungen definieren. In bin zwar auch nicht fit in der WL-Sprache, aber die Umsetzung müsste wohl so aussehen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Beschreibung für System 'Aroon II'
Uhrzeit: 	28.06.2003 17:30:40
Angelegt am: 	28.08.2002 21:43:08
Zuletzt bearbeitet: 	28.06.2003 17:25:28
Komprimierung:	Täglich

*****  Regeln  ******

Enter Long:
AroonUp = 100 and AroonDown < 40


Exit Long:
AroonUp < 70 or AroonDown > 50

Enter Short:
AroonUp < 40 and AroonDown = 100


Exit Short:
AroonUp > 50 or AroonDown < 70

Übergreifende Definitionen:
const P: 14;

calc AroonUp: AroonUp(Close, P);
calc AroonDown: AroonDown(Close, P);



*****  Optimierung *****

Start:	22.01.1976
Ende: 	08.06.1994

Optimierte Titel:
Deu: DAX-Index

Optimierungskriterien:
Maximiere 'Profit-Ratio zu Buy/Hold', Gewichtung: 1

GA-Einstellung:	Optimiere maximal 50 Generationen mit 15 Eltern und 100 Nachkommen.

*****  Test-Einstellungen  *****

Positionen: 	Long+Short
Enter-Basis: 	Close
    Delay: 	0
Exit-Basis: 	Close
    Delay:	0
Buy/Hold-Basis: 	Close
Trade-Mindestdauer: 	0
Out-Mindestdauer: 	0
Startkapital: 	5000 €
Margin: 	100%
Risikofreie Zinsen	0
Entry-Gebühren: 	0%
Exit-Gebühren: 	0%
Slippage: 	0%
Portfolio Zinssatz: 	5
Risikotoleranz: 	25
Money-Manag.	Reinvestition
    Gewinne	0%
    Verluste	0%

*****  Optimierungs-Report  *****

Kein Optimierungsergebnis vorhanden


Optimiert wurde das System nicht, ich habe lediglich die Systemeinstellungen kopiert.
Viele Grüße,
Hans-Jürgen

hajo

Meister

Registrierungsdatum: 20. Oktober 2002

Beiträge: 553

3

Samstag, 28. Juni 2003, 21:09

Hallo Hans-Jürgen
eben eine Frage zwischendurch:

Bringt es für EOD eine merkbare Zeitersparnis -bei der Berechnung/Aktualisierung in einem Projekt- um für diese (einfache) Regeln die übergreifenden Definitionen derart einzusetzen ?
Oder gibt es einen anderen Grund den ich nicht sehe ?

Ich habe und würde in jeder Regel schreiben:
AroonUp(Close, 14) bzw. AroonDown(Close, 14)

Gruß, hajo

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

4

Samstag, 28. Juni 2003, 21:35

Hallo hajo,
wenn man mal eben schnell ein System testet, bringt meine Schreibweise wohl kaum einen Geschwindigkeitsgewinn. Genau weiß ich das auch nicht, aber bei Optimierungen müsste es eigentlich schneller gehn, da sowohl der AroonUp als auch der AroonDown nur 1x berechnet werden muss und nicht 4x. Ich habe mir das so angewöhnt, weil ich dann fast alles in den Definitionen zusammen habe und nicht ständig in den einzeln Feldern hin und her springen muss. Normalerweise reduziere ich das, was zB. unter Enterlong-Bedingung steht, auf ENTERLONG. ENTERLONG wird dann in den Definitionen vollständig mit calc vollständig berechnet. Ich findes es übersichtlicher, es ist aber nicht zwingend erforderlich.
Bei Anpassungen/Änderungen/Optimierungen hat es Vorteile. Bei meiner Schreibweise läßt sich der Parameter P leicht anpassen und zwar an nur einer Stelle. Schnell hat man 14 in 21 geändert. Hast du aber die vollständige Formel in allen Bedingungen stehen, musst du überall den 14 austauschen. Schnell hat man es auch mal in einer Formel vergessen.
Ist halt ne Angewohnheit von mir, es so zu machen!
Viele Grüße,
Hans-Jürgen

Roti

unregistriert

5

Sonntag, 29. Juni 2003, 14:34

Frage zu Cross Aroon

@Hans-Jürgen

danke, WL-Sprache ist doch anders als Investox; Investox ist hier komfortabler. Aroon funktioniert jetzt bis auf die Variante mit Cross Aroon Up und Aroon Down.

Eine Frage noch zu Cross Aroon; ich würde gerne mit

Cross(AroonUp) AroonDown,1)=1

ein Long- bzw. Short-Signal erzeugen wenn der AroonUp den Down (und umgekehrt) kreuzt. Ich weiss das ich hier mit Cross und den Wert 1 bzw. -1 arbeiten muss.

Leider funktionert die obige Cross-Formel nicht, hab ich da einen grundsätzlichen Fehler gemacht?

Viele Grüße

Roti :)

Thomas

unregistriert

6

Sonntag, 29. Juni 2003, 14:45

Hallo roti,

wennn du den Aroon bereits in den Definitionen berechnet hast, wie in dem obigen von Hans-Jürgen vorgeschlagenem Handelssystem, dann brauchst du eigentlich nur die Klammer in der Formel durch ein Komma ersetzen, dann müsste es klappen.


Definitionen:

const P: 14;

calc AroonUp: AroonUp(Close, P);
calc AroonDown: AroonDown(Close, P);

Enter Long oder Enter Short:

Cross(AroonUp, AroonDown,1)=1