Express vs. Multiple Timeframe

Teilzeitfreak
Posts: 13
Joined: 19 Sep 2013 18:34

Express vs. Multiple Timeframe

Post by Teilzeitfreak »

Hallo Gemeinde!

Ich stehe gerade vor folgendem Problem, dass ich vereinfacht so beschreiben will (auf den Sinn oder nicht kommt es erst mal nicht an).
- Chareinstellung: TickChart, 1 Tick
- MACD geladen
- MACD im Express Code als series eingebunden: series MACD (MACD.main);
- In der Interpretation Section folgender Code:
if (MACD > 0) then sentiment = 100;

Nun zur Frage:
Solange ich die Aggregation des MACD-Indikators auf "ohne Aggregation" lasse, tut der Code was ich will. Sobald der MACD über 0 steigt, kommt der Einstieg.
Sobald ich aber aber über die Indikator-Aggregation 2 oder mehr Perioder zusammenfassen lasse, erfolgen total wilde Einstiege, die ich absolut nicht nachvollziehen kann. Auch bei negativem MACD.
Woran kann das liegen?

MFG, TF
User avatar
WHS Support
Posts: 2443
Joined: 14 Feb 2013 10:27

Re: Express vs. Multiple Timeframe

Post by WHS Support »

Hallo Teilzeitfreak,

aggregieren Sie den "importierten" MACD? Also die MACD-Main? Falls ja ist dies nicht sehr ratsam und Sie sollten dazu den MACD direkt neu im Express programmieren.
Ich habe Ihnen den Basiscode dafür einmal angehangen (allerdings ohne "Interpretation"). Wenn Sie die Werte direkt aus diesem Indikator verwenden sollten Sie ohne Probleme auch (hoch-)aggregieren können.

Freundliche Grüße,
Timo
WH SelfInvest
You do not have the required permissions to view the files attached to this post.
Teilzeitfreak
Posts: 13
Joined: 19 Sep 2013 18:34

Re: Express vs. Multiple Timeframe

Post by Teilzeitfreak »

Hallo Timo,

die Einstellungen sehen so aus:
Masterchart --> Aggregation: 1 Tick
MACD --> Aggregation: 50 Ticks

Wiso funktioniert das nicht, dass die FS den letzten ermittelten Wert des MACD.main an den Expresscode, der Tick by Tick durchlaufen wird, übergibt? Irgendwo muss der doch intern stehen und solange konstant bleiben, bis wieder eine 50Tick-Periode voll ist.

Hintegrund des Ganzen ist folgender:
Ich möchte mir einen StopBuy basteln.
Der MACD (der hier der Einfachkeit halber als Beispiel dient) soll als übergeordneter Filter in einer höheren Aggregation dienen.
Sobald der Filter die Einstiege freigibt, soll bei Erreichen eines bestimmten Preises (= StopBuy Trigger) der Einstieg Market erfolgen - deshalb Charteinstellung 1 Tick. Den MACD direkt als Filter zu verwenden, hilft mir nicht weiter, da ich damit nicht das abbilden kann, was ich ich im Express-Code machen möchte.
Ich hoffe ich bringe das verständlich rüber... :D

Ich habe auch schon daran gedacht, den MACD selber zu implementieren. Das bringt aber für micht folgendes Probleme mit sich:
- Aggregiere ich den Express-Code, in dem der MACD abgebildet ist, erfolgt das Einstiegssignal erst wenn 50 Ticks voll sind und mein der StopBuy ist mehr oder weniger verzögert
- Aggregiere ich den Express-Code nicht, habe ich keinen übergeordneten Filter.
==> Darum die Idee wie, den MACD zu aggregieren, in Express einzulesen und Tick-by-Tick zu schauen, ob das StopBuy Niveau erreicht.

Gibt's ne Lösung?
Gäbe es die Möglichkeit Indikatorwerte, die in anderen Study's berechnet werden, einzulesen? Ich kenne nur das Einlesen von Preisdaten und Meta-Sentimentorwerten anderer Study's.

VG, TF
User avatar
WHS Support
Posts: 2443
Joined: 14 Feb 2013 10:27

Re: Express vs. Multiple Timeframe

Post by WHS Support »

Hallo Teilzeitfreak,

vielleicht stehe ich ja auf dem Schlauch, aber ich verstehe es leider nicht. ;) Insbesondere diesen Satz:
"Wiso funktioniert das nicht, dass die FS den letzten ermittelten Wert des MACD.main an den Expresscode, der Tick by Tick durchlaufen wird, übergibt?"
Grundsätzlich kann jeder Indikator auch im aggregierten Zustand als Trendfilter genutzt werden. Die einzige Ausnahme sind importierte Serien, womit es nämlich Probleme geben kann. Daher den MACD nicht als Standardindikator sondern direkt als Express - Code, womit ein Inportieren überflüssig wird.

Ich habe nun einmal folgendes getestet:
- 1 TickChart
- MACD (als Express) als Trendfilter mit Aggregation x50
- beliebiges Einstiegssignal (in meinem Bsp. habe ich einen einfachen EntryTime Indikator in Express genommen).

Das ganze funktioniert ohne Probleme (siehe Screenshot):
forumPOST.jpg
Indikatorwerte aus anderen Studien kann man leider über Express nicht einlesen.

Freundliche Grüße,
Timo
WH SelfInvest
You do not have the required permissions to view the files attached to this post.
Teilzeitfreak
Posts: 13
Joined: 19 Sep 2013 18:34

Re: Express vs. Multiple Timeframe

Post by Teilzeitfreak »

Hey Timo,

Ich stell die Frage mal anders - sorry für meine umständliche Erklärung. :D
Gibt es irgendeine Möglichkeit in einem 1 Tick Chart innerhalb eines in Express codierten Sentimentors an Werte eines Indikators zu kommen, der z.B auf 50 Tick Aggregation berechnet wurde?
Ginge das, wenn der Indikator selbst in Express codiert ist?

VG, TF
User avatar
WHS Support
Posts: 2443
Joined: 14 Feb 2013 10:27

Re: Express vs. Multiple Timeframe

Post by WHS Support »

Hallo Teilzeitfreak,

okay, nun verstehe ich es, denke ich :) . Ja, das geht! Allerdings muss die Serie über die Funktion "Unaggregate()" in die MasterChart-Aggregation zurück berechnet werden. Der vorher ermittelte Wert bleibt dabei jedoch erhalten.

Beispiel:

Die Variable "aggline" ist eine importierte, aggregierte (z.B. x50) Serie (es spielt keine Rolle ob diese von einem Express- oder einem normalen Indikator stammt - könnte daher auch die MACD.main sein). Bevor sie in einem Express Code z.B. für die Interpretation verwendet werden kann, muss sie "zurück" aggregiert werden. Dies kann in dem Fall z.B. so aussehen:

If IsFirstBar() then Unaggregate(aggline, unaggline);

Im Anschluss muss dann mit der Serie unaggline weitergearbeitet werden.

Freundliche Grüße,
Timo
WH SelfInvest
Teilzeitfreak
Posts: 13
Joined: 19 Sep 2013 18:34

Re: Express vs. Multiple Timeframe

Post by Teilzeitfreak »

Hallo Timo,

klingt vielversprechend und nachvollziehbar. :idea:

Allerdings habe ich offenbar noch irgendwo einen Denkfehler oder sonstiges drin, weil noch nicht das gewünschte Ergebnis dabei heraus kommt.
Ich hab jetzt mal demohaft zwei MACD Linien importiert. Bei Aufwärtsschnitt soll ein Long-Einsgieg erfolgen.
WHS3.PNG
Das Ergebnis ist folgendes:
WHS.PNG
WHS2.PNG
Ich frage mich:
- Warum hören die Signal um kurz nach 09:00 Uhr auf? (Der Backtestzeitraum IST alles!)
- Warum scheinen die Einstiege willkürlich zu sein?

Sobald ich die Aggregation vom MACD herausnehme, kommen die Einstieg wie gewünscht.

MFG, TF
You do not have the required permissions to view the files attached to this post.
User avatar
WHS Support
Posts: 2443
Joined: 14 Feb 2013 10:27

Re: Express vs. Multiple Timeframe

Post by WHS Support »

Hallo Teilzeitfreak,

die Berechnung darf nicht bei der Interpretation gemacht werden. Sie müssen diesen Part nach oben unter "Calculation" verschieben:
----------
Calculation
If IsFirstBar() then
begin
unaggregate(MACD_aggre, MACD);
unaggregate(MACDT_aggre, MACDT);
end

Interpretation
begin
if CrossesAbove(MACD, MACDT) then Sentiment = 100;

end
----------

Freundliche Grüße,
Timo
WH SelfInvest
Teilzeitfreak
Posts: 13
Joined: 19 Sep 2013 18:34

Re: Express vs. Multiple Timeframe

Post by Teilzeitfreak »

aaahhh...

Danke für die kompetente Unterstützung!!
Lima
Posts: 26
Joined: 17 Apr 2014 18:15

Re: Express vs. Multiple Timeframe

Post by Lima »

Hallo Gemeinde,

Ich stehe vor änhlichem Problem mit dem Multitimeframeansatz.

Auf einem 100 Tick Chart habe ich einen Filter mit dem SuperTrend Indikator mit einer Aggregation von 400 Ticks eingestellt. Ich moechte nun benachrichtigt werden (mit Klang), wenn einen Trendwechsel mit dem Supertrend auf 400 Ticks (aggregiert) stattfindet. Dafuer habe ich einen Expressindikator gebaut und habe den SuperTrendIndikator importiert. Es hat funktioniert. Beim Trendwechsel werde ich mit einem Klang nun benarichtigt, allerdings nur wenn der Supertrendindikator nicht aggregiert ist. Sobald ich den Supertrend indikator aggregiere, dann funktioniert es nicht mehr.

Ich habe hier in diesem Beitrag gelesen, mann sollte den aggregierten Indikator nicht importieren, sondern den Indikator direkt im Express programmieren. Dann habe ich gedacht, mache ich. Ich habe hier im Forum die Code fuer den SuperTrend indikator heruntergeladen und ins Express importiert. Meine Portion Code fuer die Benachritigung reingebracht, aber es funktioniert immer nocht nicht, wenn ich den Express SuperTrend Indikator aggregiere.

Ich habe dann den Standard Supertrendindikator und den Express in den gleichen Chart zum Vergleichzwecks platziert und habe festgestell, dass wenn die agrregiert sind, liefern sie verschiedene Egebnisse.

Anbei sind zwei Dateien: Eine ohne Aggregation und die andere mit Aggregation, wo man die verschiedene Ergebnisse sehen kann.
Supertrend_ohne_Aggregation.PNG
Supertrend_mit_Aggregation.PNG

Kann Jemand mir helfen und mir ein paar Tips geben, wie ich dieses Problem lösen kann? d.h. Den Wert des aggregierten SupertrendIndikators im Express nutzen?

Warum bekommt man zwei verschiedene Ergebnisse, wenn man den Indikator aggregiert?

Vielen Dank!
You do not have the required permissions to view the files attached to this post.
Post Reply

Return to “WHS NANOTRADER - EXPRESS PROGRAMMING”