Freitag, 19. April 2024, 14:33 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.

frank sinatra

unregistriert

1

Donnerstag, 22. September 2011, 11:45

3 aus 5

Hallo allerseits,

ja noch eine Frage von mir...

Ich möchte eine Handlelssystem programmieren, dass im wesenstlichen auf einer externen Zeitreihe basiert. Enter long soll nun sein, dass wenn von den 5 letzten Kursen (close) 3 gestiegen sind.

Ich bin noch ein Newbie und finde einfach nicht heraus wie ich das schaffe. Ich suche so etwas wie die Countiffunktion in Excel. Auch wenn es nicht so elegant wäre - ich habe auch nicht die IF-Funktion in Excel gefunden..

Hoffe jemand weiß hier Rat...

Ganesha

unregistriert

2

Donnerstag, 22. September 2011, 13:31

------------------------
calc gestiegen: if(close>open, 1, 0);
calc enterlong: sum(gestiegen, 5)>=3;
------------------------

Peratron

unregistriert

3

Donnerstag, 22. September 2011, 14:32

Kleine Korrektur falls erlaubt.

calc gestiegen: if(ref(close>open, -1), 1, 0);
calc enterlong: sum(gestiegen, 5)>=3;

Basis Open, Delay 0

frank sinatra

unregistriert

4

Donnerstag, 22. September 2011, 14:39

Danke euch beiden,

Ich verstehe das noch nicht so ganz Peratron, was hat es mit calc Enterlong auf sich. Calc bedeutet dass ich eine Variable definiere wenn ich das richtig verstehe, wieso wird das Kaufsignal dann in einer Variablen gespeichert? ?(

Das mit dem Ref ist interessant aber die Reihe hat nur Close Kurse. Da es sich um den Ifo Index handelt und dieser wird immer nur einmal im Monat veröffentlicht. Da ich mir schon dachte, dass es einfacher ist, wenn die Kurse immer am gleichen Tag kommen, habe ich die Kursreihe so bearbeitet, dass der Indexwert für den Monat immer am 27. kommt (kommt eigentlich früher), was müsste ich dann da für REf eingeben? Die Monate sind ja schließlich unterschiedlich lang und ich will ja den Kurs von Diesem Monat mit den Kursen der letzten 4 Monate und nicht 4 Tagen vergleichen.

aber erstmal thx soweit...

Registrierungsdatum: 6. August 2010

Beiträge: 311

5

Donnerstag, 22. September 2011, 15:03

Welche Komprimierung hat Dein HS? Täglich?

Wenn Du nun hier auf 12 konkrete Datenpunkte/ Jahr zugreifen möchtest, geht das mit ValueWhen und DatePart.

Natürlich könntest Du unter dem unter dem Reiter "Enter Long" die Bedingungen dafür schreiben. Vorteilhafter, weil übersichtlicher ist es jedoch, wenn Du alle Bedingungen unter "Definitionen" verfasst und dann nur noch "enterlong" unter dem Reiter "Enter Long" einträgst.

Mit Ref( ,-1) verhinderst Du einen Zukunftsblick.
Beste Grüße!
Livermore

Peratron

unregistriert

6

Donnerstag, 22. September 2011, 15:12

Hallo frank sinatra,

was hat es mit calc Enterlong auf sich

Hast Du mal das Handbuch, Beispiel Projekte und Videos angeschaut?
Würde ich mal machen, da werden viele Anfängerfragen automatisch beantwortet.

...wieso wird das Kaufsignal dann in einer Variablen gespeichert?

Damit Du diese überall aufrufen kannst z.b in Enterbasis bzw. Enterlong

Wenn die Daten nur aus Close bestehen brauchste das ref nicht. Der Werte sum(gestiegen, 5)>=3 bezieht sich auf die Komp
in deinem HS.

Grüße Peratron

frank sinatra

unregistriert

7

Donnerstag, 22. September 2011, 15:25

Hallo ihr beiden,

Danke euch. 2 Fragen haben sich gerade glaube ich erübrigt. Muss das erstmal kurz verdauen was ihr geschrieben habt.

Erstmal danke für das coole Forum hier...

Peratron

unregistriert

8

Donnerstag, 22. September 2011, 15:37

Hallo frank sinatra,

was passiert eigentlich wenn ich die close Long Bedingungen auch unter Enter Long schreibe dann funktioniert das System nciht mehr oder?


Das HS würde die Pos. eröffnen und in der nächsten Periode wieder schliessen.

Beispiel wieso man nicht direkt in Enter Long / Short & Exit Long / Short programmiert.

Global Calc Gestiegen: If(Close > Ref(Open, -1), 1, 0);
Global Calc Bedingung: If(sum(Gestiegen, 5)>=3, 1 , 0):

Wenn die Summe des Ifo Index in den letzten 5 Monaten mindestens 3 oder mehrmals "gegenüber Vormonat" gestiegen ist dann gib 1 ansonsten 0 aus.

Enter Long:
Bedingung = 1

Exit Long:
Bedingung = 0

Grüße Peratron
P.s: Auf Fehler gibt es keine Garantie :S

frank sinatra

unregistriert

9

Donnerstag, 22. September 2011, 16:54

erste Schritte

Also ich habe mir das jetzt angeschaut und wenn ich das richtig verstanden habe, dann müsste die EnterLong Bedingung so aussehen. Nochmal für alle: Das Ziel ist es das von einer externen Datenreihe immer der Kurs am 27. des Monats (Es gibt nur einen Kurs) genommen wird und wenn 3 der letzten 5 Monate einen Anstieg anzeigen, dann soll gekauft werden.

calc enterlong: SUM(gestiegen,5)>=3;

calc TagImMonat: If(DatePart(d)=27,1,0);
calc gestiegen: If(ValueWhen(Close, TagImMonat=1,1,V) > ValueWhen(Close, TagImMonat=1,2,V),1,0);


Was mir jetzt daran noch Probleme bereitet ist:

1. Funktion ValueWhen wird in der Hilfe nicht beschrieben was das Argument "V" sein soll..
2. Das ganze bringt noch eine Fehlermeldung..(Hatte aber auch noch das semikolon in der ersten Reihe vergessen vielleicht lags daran...)
3. Das System hat eine tägliche Komprimierung, die Datenreihe auch, obwohl die externen Daten ja nur am 27. sich aktualisieren, so ganz ist mir aber nicht klar was passiert wenn ich die Komprimierung des HS auf monatlich stellen würde, die aktualisierung kommt ja immer am 27. no matter what...

Ich werde zwar noch längere Zeit einige Fragen was Investox angeht haben, aber ihr habt mich schon mal auf einen guten Weg gebracht :)

Grüezi

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »frank sinatra« (22. September 2011, 17:17)


Ganesha

unregistriert

10

Donnerstag, 22. September 2011, 23:18

RE: erste Schritte

..
Ist nicht gut. :)

Begründung: Du guckst immer am 27. Was machst Du, wenn der Wert erst am 28. veröffentlich wird?

Was aber wichtiger ist: Der Wert kommt einmal pro Monat und Dein Handelssystem ist EOD?

Dann ist die notwendige Abfrage möglicherweise sehr viel komplexer. Also Tipp: Rechtsklick im Chart "Formel einfügen" und dort gibt Du ein

--------------
#_LoadDefs#
TagImMonat
--------------

Also ohne Striche.

Du kannst Du Dir so im Chart angucken, welchen Wert eine Zeitreihe zu einem bestimmten Zeitpunkt tatsächlich hat.
Bezüglich Zukunftsblick: Du rennst mit Deiner Handelsidee möglicherweise gleich in eine Falle, da der Zugriff auf Daten in unterschiedlicher Komprimierung (in Deinem Fall monatliche ifo-Daten plus Kursdaten in vermutlich anderer Auflösung) eine typische Kombination für potentielle Zukunftsblicke ist. Wenn Du wissen willst was das ist: Suchfunktion benutzen. Einen Zukunftsblick erkennst Du daran, dass Deine Kapitalkurve sehr gleichmäßig und schnell steigt. :)