Freitag, 19. April 2024, 11:25 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Taliesin

unregistriert

1

Donnerstag, 17. Juni 2004, 11:30

Handelssystem gibt immer Errors

Hallo,

Ich habe schon einige Male versucht das untenstehende Handelssystem (Adaptive Moving Average aus Metastock) nach Investox zu portieren. Ich stehe aber irgendwie an, weil ich immer Errors bekomme.
Kann mir jemand von Euch eine Lösung präsentieren.

Enter Long:
Sig:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV)); Sig>Ref(Sig,-1)

Exit Long:
Sig:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV)); Sig<Ref(Sig,-1)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Taliesin« (17. Juni 2004, 12:25)


oko

unregistriert

2

Donnerstag, 17. Juni 2004, 12:36

Das kommt in Definitionen:

Sig:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV));

Eventuell mit Global Calc:

Global Calc Sig:=If(Cum(1)=5,Ref(C,-1)+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-Ref(C,-1)),PREV+(Pwr((Abs((C-Ref(C,-4))/Sum(Abs(ROC(C,1,$)),4)))*((2/3)-(2/31))+(2/31),2))*(C-PREV));

Das kommt in Enter Long:
Sig>Ref(Sig,-1)

Das kommt in Exit Long:
Sig<Ref(Sig,-1)

Der Parameter "C" ist nicht definiert, müsste unter Definitionen etwa
sowas rein Global Calc C: ?????

Also ich glaub da fehlt noch was zumindest die Definiton für "C"

Bin aber auch noch laie, vielleicht ist das auch alles quatsch was ich da rede

Cu Oko :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »oko« (17. Juni 2004, 12:36)


oko

unregistriert

3

Donnerstag, 17. Juni 2004, 12:38

Upps hab gerade gelesen das der Code von Metastox ist, da wirste pech
haben, den muss man wohl komplett umschreiben

Cu Oko

Taliesin

unregistriert

4

Donnerstag, 17. Juni 2004, 13:16

C entspricht meiner Meinung nach Close

C enspricht meiner Meinung nach Close.
Ich bin gerade am aiseinanderschrauben der Formel.
Ich werde mal meine Variante reinstellen und hoffe auf Feedback :-), denn das System lieferte ganz gute Werte.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Taliesin« (17. Juni 2004, 13:19)


Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

5

Donnerstag, 17. Juni 2004, 14:46

RE: C entspricht meiner Meinung nach Close

Hallo,

eine sinnvolle Umsetzung könnte z.B. so lauten:

Enter Long:
Sig>Ref(Sig,-1)

Enter Short:
Sig<Ref(Sig,-1)

Übergreifende Definitionen:
#_fastprev#

global calc Faktor: (Power((ABS((Close-Ref(Close,-4))/SUM(ABS(ROC(Close,1,$)),4)))*((2/3)-(2/31))+(2/31),2));

global calc Sig: If(CUM(1)=5,
Ref(Close,-1)+ Faktor * (Close-Ref(Close,-1)),
PREV+Faktor * (Close-PREV));

Viele Grüße
Andreas Knöpfel

oko

unregistriert

6

Donnerstag, 17. Juni 2004, 15:51

Geht leider nicht.

Fehler in Def. Formel:
Indikator: Div
Meldung:Überlauf aufgetreten,die Werte einer Berechnung liegen
außerhalb des gültigen Bereiches oder es fand eine Division durch
0 statt.(Fehler Nr.6).

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »oko« (17. Juni 2004, 15:52)


Taliesin

unregistriert

7

Donnerstag, 17. Juni 2004, 16:07

Habe die Formel 1 zu 1 Kopiert und durch die Investox Funktionen ersetzt

So nun habe ich die Formel nochmals 1 zu 1 aus Metastock kopiert und durch die Investoxfunktionen ersetzt.
Sieht gar nicht so verschieden aus.
Leider bekomme ich den gleichen Fehler 6. In Metastock ergibt dieses HS ganz gute Signale.

Der Haken muss im Bereich

/SUM(ABS(ROC(Close, 1, $)), 4))) *((2/3)-(2/31))+(2/31)

liegen.

Auch die Lösung von Herrn Knöpfel bringt mich nicht weiter, da gleicher Fehler.


Defintionen:
calc Sig: If(CUM(1)=5, Ref(Close, -1)+(Power((ABS((Close-Ref(Close, -4))/SUM(ABS(ROC(Close, 1, $)), 4))) *((2/3)-(2/31))+(2/31), 2))*(Close-Ref(Close, -1)), PREV+(Power((ABS((Close-Ref(Close, -4))/SUM(ABS(ROC(Close, 1, $)), 4)))*((2/3)-(2/31))+(2/31), 2))*(Close-PREV));

Enter Long:
Sig>Ref(Sig,-1)

Exit Long:
Sig<Ref(Sig,-1)

hermann

unregistriert

8

Donnerstag, 17. Juni 2004, 16:42

@ Taliesin

Auch wenn ich bis jetzt Deine Formel nicht nachvollzogen habe, eine Frage dazu. Hast Du eine Beschreibung des Handelsansatzes?? Denn die Berechnung eines „adapiven gleitenenden Durchschnittes ist doch in Investox drin „AMA“ als Mode.
Und die Formel ist für mich nicht nachvollziehbar.

In dem Formel-Teil *((2/3)-(2/31))+(2/31) kürzt sich doch -((2/31 gegen +(2/31) heraus, so dass für diesen Teil nur noch * (2/3) übrig bleibt. ( oder habe ich da mal nicht aufgepasst )

Bin gespannt , was als Lösung herauskommt ... viel Erfolg

Taliesin

unregistriert

9

Donnerstag, 17. Juni 2004, 16:56

Beschreibung aus MS

Den Teil der Formel den Du Ansprichst habe ich auch schon etwas skeptisch angesehen, hab die Formel aber dann trotzdem 1:1 reingestellt.

Ebenfalls Grüssen aus Kempten (Schweiz)

Ev.hat ja jemand einen Vorschlag der sich an dieses System anlehnt.

**********
Beschreibung
**********

The Adaptive Moving Average was designed by Perry Kaufman as a way to change the speed of a moving average based on
the noise level of the market being analyzed.
In a choppy sideways market you want a slower moving average to reduce whipsaws that occur.
In a trending market you want a faster moving average to lock in profits when a change in trend occurs.
The Adaptive Moving Average accomplishes this and allows a system to be created to trade the variations in the market.

Unlike standard moving average systems that are based upon the crossing of different length moving averages,
this one is based upon the direction of the Adaptive Moving Average with no variation in length being necessary.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Taliesin« (17. Juni 2004, 16:57)


Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

10

Donnerstag, 17. Juni 2004, 16:57

Hallo,

Zitat

Meldung:Überlauf aufgetreten,die Werte einer Berechnung liegen
außerhalb des gültigen Bereiches oder es fand eine Division durch
0 statt.(Fehler Nr.6).


Die Division durch 0 entsteht, wenn 4 Datenperioden ohne Kursänderung auftreten, da durch SUM(ABS(ROC(Close, 1, $)), 4) geteilt wird. Verwenden Sie mal Tages- oder Wochendaten, um dies zu testen.
Der KAMA ist der GD von Investox mit Einstellung "AMA".

Viele Grüße
Andreas Knöpfel

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Investox« (17. Juni 2004, 16:58)


Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

11

Donnerstag, 17. Juni 2004, 17:27

Ansonsten führt vielleicht auch noch diese Variante zum gewünschten Erfolg:

übergreifende Definitionen wie folgt ändern:


#_fastprev#

global calc Divisor: SUM(ABS(ROC(Close,1,$)),4);
global calc Dummy: If(Divisor = 0,0.00001,Divisor);
global calc Faktor: (Power((ABS((Close-Ref(Close,-4))/Dummy))*((2/3)-(2/31))+(2/31),2));

global calc Sig: If(CUM(1)=5,
Ref(Close,-1)+ Faktor * (Close-Ref(Close,-1)),
PREV+Faktor * (Close-PREV));

Enter Long und Exit Long Bedingungen bleiben gleich
Viele Grüße von Anke

http://www.ascunia.de

Taliesin

unregistriert

12

Donnerstag, 17. Juni 2004, 17:59

Vielen, vielen Dank @>-->--

Ich werde alle diese Anregungen heute Abend mal unter die Lupe nehmen und ein Feedback geben.
Auf jeden Fall möchte ich Euch allen ganz herzlich für diese prompte Unterstützung danken.
Das ist ja kaum zu fassen.
Hier wird tatsächlich noch geholfen und nicht nur über "dumme"-Frager gelästert.

oko

unregistriert

13

Donnerstag, 17. Juni 2004, 19:46

Soweit läuft es jetzt, wieso kommt da immer ein Fenster in dem PREV neu
berechnet wird?

Echt nervig kann man das abstellen, und was ist PREV überhaupt :baby:

Grüße Oko :D

oko

unregistriert

14

Donnerstag, 17. Juni 2004, 19:46

upps war doppelt :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »oko« (17. Juni 2004, 19:48)


hermann

unregistriert

15

Donnerstag, 17. Juni 2004, 21:49

mal eine andere Idee

@ Taliesin

danke für die Beschreibung.
Der erste Teil beschreibt ja nur die Charakteristik des KAMA.
Wenn ich den Handelsansatz mal etwas großzügig interpretiere, so wird die Eigenheit des KAMA, in Seitwärtsphasen schnell einen horizontalen Verlauf einzunehmen ausgenützt, in der Form, dass dann zu Beginn einer Trend-Phase der rasche Übergang des KAMA zur Signalerzeugung herangezogen wird. Es wird eine Art „Beschleunigung“ des KAMA ausgewertet.
Dass in Metastock event. „Alles“ zu berechnen ist ...??? ich kenne Metastock nicht, aber in Investox ist es doch sicher machbar, den verfügbaren KAMA (wie auch Herr Knöpfel bestätigt) als Grundlage zu verwenden und dann das Momentum darauf zur Signalgebung zu verwenden. ... dann geht das sicher ohne PREV und schneller.

Das Ganze nur, um auch mal einen anderen Weg zu zeigen, um die Aufgabe zu lösen.

(das mit Kempten ist ja lustig .. gibt es den Ort in CH??)

@ WIWU ...tolle Idee eine DIV durch NULL zu "umschiffen" Grüße nach Berlin

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »hermann« (17. Juni 2004, 23:27)


Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

16

Donnerstag, 17. Juni 2004, 22:58

Hallo Hermann,

schön, Dich mal wieder hier zu sehen. Danke für die "Blumen" und herzliche Grüße zurück ins Allgäu von Anke :]

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

17

Freitag, 18. Juni 2004, 00:26

@ Oko

Aus der Investox Hilfe:

Liefert den vorigen Wert einer Berechnung.
Die Funktion PREV liefert den vorherigen (previous) Wert der Berechnung. Die PREV-Funktion arbeitet zwar mit beliebig vielen Perioden, allerdings aufgrund der Komplexität ziemlich langsam. Die wesentlich effizientere Lösung besteht daher darin, für entsprechende Berechnungen die Programmierschnittstelle von Investox zu verwenden (www.knoepfel.de).

Schreibweise

PREV

Beispiel

PREV + If(RSI(Close,10) > 50, 1, -1)

Die Berechnung beginnt bei 0. Liegt der RSI über der 50er-Linie, wird zum vorigen Wert 1 addiert, ansonsten 1 subtrahiert.

© 2002 Andreas Knöpfel


PREV arbeitet sehr langsam #_fastprev# etwas schneller. Wenn man extern programmiert ist es noch schneller.Teilweise kann man bei bestimmte Formelkonstellationen PREV mit GDs ersetzen-klappt aber nicht immer oder mit geringfügigen Abweichungen.



Zitat

Soweit läuft es jetzt, wieso kommt da immer ein Fenster in dem PREV neu
berechnet wird?


Dazu fällt mir jetzt nur ein:

EINSTELLUNGEN-INVESTOX ANPASSEN-PROGRAMME-KEINE MELDUNG BEI AKTUALISIERUNG
Happy Trading

oko

unregistriert

18

Freitag, 18. Juni 2004, 10:37

@ Udo

Wie immer vielen Dank für deine Hilfe :)

Grüße Oko

Taliesin

unregistriert

19

Freitag, 18. Juni 2004, 16:27

Feedback

Das System läuft jetzt.
Dank Wiwu's Ansatz sogar ohne Fehlermeldung.
Ist etwas langsam mit dem PREV, aber das hab ich in div Postings schon gelesen und somit auch bewusst in Kauf genommen.
Ich werd mal den Vorgeschlagenen Ansatz von Hermann weiterverfolgen und mich in Investox vertiefen.

@Hermann
Ja Kempten ist ein Teil von Wetzikon.

@Wiwu
Danke auch Dir für Deinen Vorschlag.

Gibt es hier eigentlich nirgens ein Bereich von dem man Systeme Up- bzw. Downloaden kann? Ich weiss, dass gute Handelssysteme wie die Rezepte von Starköchen gehütet werden, aber es gibt doch sicher auch Leute die andere an Ihrem Wissen und Ihrer Erfahrung Teilhaben lassen. Oft ist es nämlich interessant von der Lösng her zu arbeiten.
Währe doch schön Vorlagen von einfachen Systemen oder solchen, welche publiziert werden hier zur Verfügung zu stellen.