Donnerstag, 18. April 2024, 21:50 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.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Dienstag, 6. September 2005, 12:45

Innerhalb einer Komp-Periode nur den 1.Trade ausführen

Hallo,

ich möchte die globale Handelssystem-Zeiteinstellung auf 1min einstellen, wobei die Signalgenerierung weiter mit 35Min arbeiten soll. Um das zu erreichen arbeite ich mit dem Komp-Indikator.

so in der Art:
global Const kompMinuten: 35;
global Calc long_Signal: Komp(#...#, #kompMinuten#);


Leider wird jetzt duch die globale HS-Zeiteinstellung auf 1min, mehrere ungewollte Handelssignale in der KompPeriode (35min) generiert.
Ich möchte jeweils nur das erste Signal umsetzen, pro KompPeriode.

Ich versuche das Problem über einen periodenSignalCounter zu lösen.
global Calc periodenSignalCounter: CumSince(enterLong or enterShort,resetCounter,0);

Frage:
Wie müßte man den Reset-Imputs berechnen, so dass der Counter bei jeder
kompMinuten-Periode (alle 35 Min) zurück gesetzt wird? Das HS startet immer um 8Uhr.

Bei Tageswechsel würde so aussehen:
ROC(DatePart(y),1,$) <> 0
bei Stundenwechsel so:
ROC(DatePart(h),1,$) <> 0

ich bin da noch am grübeln, aber vielleicht gibt es hier eine ganz einfache Lösung.
Danke.

Viele Grüße
Torsten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (6. September 2005, 12:47)


Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

2

Dienstag, 6. September 2005, 20:11

Hallo Torsten,

hier meine Lösung, ob's auch einfacher geht???

const kompMinuten: 35;
calc Minuten: ROC(DatePart(n), 1, $) > 0;
calc SumMinuten: CUM(Minuten);

CumSince(Minuten, FRAC(SumMinuten/kompMinuten) = 0, 1)
Viele Grüße,
Hans-Jürgen

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

3

Mittwoch, 7. September 2005, 00:18

Hallo Hans-Jürgen,

vielen Dank für Deine Lösung.
Eine Resetimpuls im Abstand der kompMinuten-Einstellung zu erzeugen ist knifflicher als gedacht.

Ich habe Deine Formeln ausprobiert und noch etwas überarbeitet, so dass SumMinuten jeden Tag bei 1 anfängt. Und kompMinuten=30, damit man es
leichter bei der Überprüfung im Chart hat.

Zitat

{kompMinuten-Reset-Imputs erzeugen}
global Const kompMinuten: 30;
...
global Calc Minuten: ROC(DatePart(n), 1, $) <> 0; {Mitutenwechsel}
global Calc neuerTag: ROC(DatePart(y),1,$) <> 0; {Tageswechsel}
global Calc SumMinuten: CumSince(Minuten, neuerTag, 1);

global Calc resetCounter: FRAC(SumMinuten/kompMinuten) = 0;


Auf den 1.Blick scheint es auch gut zu funktionieren. Aber leider kommt es immer wieder zu Verschiebungen. Manchmal beginnt der Bund zw. 8:01 bis 8:02Uhr und machmal später und dadurch kommt es zu Verschiebungen.
Zu noch stärkeren Verschiebungen kommt es, wenn man die globale HS-Zeiteinstellung auf 2 Ticks stellt, dann stimmen leider nur noch die ersten Impulse.

Im Chart ist blau die SumMinuten dargestellt und viollett der Resetimpuls "resetCounter". Beide Zeitscalen habe ich links skaliert und den Resetimpuls noch mit 100 mulipliziert, damit er nicht so winzig ist.

1.Chart: globale HS-Zeiteinstellung=1min
2.Chart: globale HS-Zeiteinstellung=2Ticks

Gibt es vielleicht eine andere Berechungsmöglichkeit die unabhängig ist von den ersten Zeitstempel der Kursaufzeichnung und auch auf Tickbasis nicht durcheinander kommt.
Leider muß das Zeitfenster ganz genau stimmen, damit immer nur das 1.Setup innerhalb einer kompMinuten-Periode durchgelassen wird.
Danke.

Viele Grüße
Torsten
»sten« hat folgende Bilder angehängt:
  • 050906_resetCounter.gif
  • 050906_resetCounter_aufTickbasis.gif

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »sten« (7. September 2005, 07:25)


foxxx

unregistriert

4

Samstag, 15. Oktober 2005, 06:26

Hallo sten,

ich habe das gleiche Problem - hast du schon eine Lösung gefunden ?

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

5

Samstag, 15. Oktober 2005, 20:41

Hallo Foxxx,

nein, leider nicht. Ich habe an der Stelle abgebrochen.
Der Beitrag ist auch irgendwie ungelesen in der Masse untergegangen.

Viele Grüße
Torsten

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

6

Montag, 17. Oktober 2005, 10:23

Hallo,

wie ist es, wenn Sie innerhalb der Komp()-Berechnung nur Open-Kurse verwenden, so dass sich die Berechnung eines Komp()-Zeitstempels nicht mehr ändert?

Viele Grüße
Andreas Knöpfel

foxxx

unregistriert

7

Montag, 17. Oktober 2005, 16:41

@ sten: schade

@ Hr. Knöpfel

haben Sie ev. eine Idee wie dieses Problem lösbar ist - ich berechne all 40 min eine linie - wenn diese gekreutzt wird soll ein Signal generiert werden, jedoch nicht wenn schon ein Signal in dieser 40 min Periode generiert wurde.

Ich denke man müsste irgendwie auf auf das letzte TradeSignal zugreifen/abfragen können !?