Antwort

Einen benutzerdefinierten Indikator als Oszillator verwenden

5 Antworten

Robbie

Kunde, bbp_participant, Gemeinschaft, 17 Antworten.

Profil besuchen

vor 7 Jahren #115281

Ich habe eine Version von Supertrend als benutzerdefinierten Indikator importiert. Die Daten für den Indikator sehen wie folgt aus:

 

06.03.2016,18:29,16971,1
06.03.2016,18:30,16969,1
06.03.2016,18:31,16967,1
06.03.2016,18:32,16966,1
06.03.2016,18:33,16963,-1
06.03.2016,18:34,16963,-1
06.03.2016,18:35,16963,-1
06.03.2016,18:38,16962,-1
06.03.2016,18:39,16964,-1

 

Der Indikatorwert ist "1" für Long-Trend und -1 für Short-Trend. Er verhält sich wie ein Oszillator mit seinem mittleren Wert von "0".

 

Die Definition des benutzerdefinierten Indikators sieht wie der beigefügte Bildschirmausdruck aus.

 

Ich habe versucht, es als Baustein für Strategien zu verwenden, und die Handelsregeln, die von SQ erstellt werden, sehen so aus:

——————————————————————–
Pseudo-Quellcode der Strategie 1.87
  mit Parameternamen.

  Erzeugt von StrategyQuant Version 3.8.1
  Erzeugt am Wed Jun 22 16:39:00 GMT 2016
                                                          
  Geprüft an YM_M01_100D, M1, 06.03.2016 - 16.06.2016
  Spread: 1.0, Slippage: 0.0, Mindestabstand des Stops vom Preis: 5.0
——————————————————————–
====================================================================
== Zulassungsbedingungen
====================================================================
LongEntryCondition = (((Hoch(15) + (PivotPP - AuSQCallSuperTrendU11(3).UpTrend[0])) + (HeikenAshiHigh(11) + (Close(6) + PivotS2))) < PivotS3)

 

SQ behandelt den von mir importierten benutzerdefinierten Indikator als "Preis", indem es ihn von PivotPP subtrahiert, obwohl ich ihn als Zahl definiert habe, die über und unter Null oszilliert.

 

Gibt es eine Möglichkeit, diesen benutzerdefinierten Indikator so zu definieren, dass SQ weiß, dass eine positive Zahl über Null = Long Trend und eine negative Zahl unter Null = Short Trend?

0

mikeyc

Kunde, bbp_participant, Gemeinschaft, 877 Antworten.

Profil besuchen

vor 7 Jahren #137959

 

SQ behandelt den von mir importierten benutzerdefinierten Indikator als "Preis", indem es ihn von PivotPP subtrahiert, obwohl ich ihn als Zahl definiert habe, die über und unter Null schwankt.

 

Das ist ein weiterer SQ3-Fehler, fürchte ich.

 

Wiederholen Sie es, aber dieses Mal Aktivieren Sie nicht das Kontrollkästchen Oszillatordefinieren Sie seinen Rückgabetyp als Zahl.

 

Schade, dass es so viele Bugs bei den benutzerdefinierten Indikatoren gibt...

0

Robbie

Kunde, bbp_participant, Gemeinschaft, 17 Antworten.

Profil besuchen

vor 7 Jahren #137976

Danke für die Anregung, Mikeyc.

 

Es sieht so aus, als hätte SQ aufgehört, den Indikator als Preis zu behandeln und ihn jetzt als Zahl zu erkennen.

 

Die Sache ist nur die, dass SQ keinen Kontext hat, wie der Indikator zu implementieren ist. SQ hat keine Kenntnis des logischen Bereichs (-1 <= 0 <= 1) oder des Kontexts.

 

Wir wissen, dass ein Wert von +1 ein Longtrend und -1 ein Shorttrend ist, aber alles, was ich der SQ mitteilen kann, ist, dass es sich um eine Zahl handelt: .... ?!?

 

Wie Sie sagen, es ist schade... 

Ich sehe keinen Grund, weiterhin zu versuchen, alle Ninjatrader-Indikatoren zu verwenden, die ich im Laufe der Jahre angesammelt und entwickelt habe.

 

Hier ist ein Beispiel dafür, was geschaffen wurde, und zwar ganz und gar nicht im richtigen Kontext:

——————————————————————–
Pseudo-Quellcode der Strategie 1.13
  mit Parameternamen.

  Erzeugt von StrategyQuant Version 3.8.1
  Erzeugt am Thu Jun 23 13:42:00 GMT 2016
                                                          
  Geprüft an YM_M01_100D, M1, 06.03.2016 - 16.06.2016
  Spread: 1.0, Slippage: 0.0, Mindestabstand des Stops vom Preis: 5.0
——————————————————————–
====================================================================
== Zulassungsbedingungen
====================================================================
LongEntryCondition = (AuSQCallSuperTrendU11(3).UpTrend[0] < 2,4)
ShortEntryCondition = (AuSQCallSuperTrendU11(3).UpTrend[0] > -2,4)

 

0

mikeyc

Kunde, bbp_participant, Gemeinschaft, 877 Antworten.

Profil besuchen

vor 7 Jahren #137977

Es gibt eine Möglichkeit, SQ dazu zu bringen, +1 für einen Aufwärtstrend, -1 für einen Abwärtstrend und 0 für einen Nichttrend zu verwenden.

 

Definieren Sie zwei Ausgänge für Ihren Indikator.

 

Eine ist ein Signal (+1, -1 und 0)

Andere Ich nenne Basislinie und es ist einfach 0 für jede Zeile des Indikators ausgegeben:

 

06.03.2016,18:29,16971,1,0
06.03.2016,18:30,16969,1,0
06.03.2016,18:31,16967,1,0
06.03.2016,18:32,16966,1,0
06.03.2016,18:33,16963,-1,0
06.03.2016,18:34,16963,-1,0
06.03.2016,18:35,16963,-1,0
06.03.2016,18:38,16962,-1,0
06.03.2016,18:39,16964,-1,0

 

Sie können die Spalte mit den Nullen zum Beispiel in Excel hinzufügen.

 

Beide Outputs bei der Erstellung von Strategien einbeziehen und SQ erstellt Regeln wie z. B.:

 

LongEntryCondition = (AuSQCallSuperTrendU11(3).UpTrend[0] < AuSQCallSuperTrendU11(3).BaseLine[0])
ShortEntryCondition = (AuSQCallSuperTrendU11(3).UpTrend[0] > AuSQCallSuperTrendU11(3).BaseLine[0])

 

Das ist es, was Sie brauchen.

0

Robbie

Kunde, bbp_participant, Gemeinschaft, 17 Antworten.

Profil besuchen

vor 7 Jahren #137987

Nochmals vielen Dank an Mikeyc für die Hilfe.

 

Ich habe einen Bildschirmausdruck der aktualisierten Definition des Supertrend-Indikators beigefügt.

 

SQ erstellt jetzt gelegentlich Handelsregeln, die den richtigen Kontext haben:

——————————————————————–
Pseudo-Quellcode der Strategie 1.98
  mit Parameternamen.

  Erzeugt von StrategyQuant Version 3.8.1
  Erzeugt am Fri Jun 24 07:56:00 GMT 2016
                                                          
  Geprüft an NQ_M01_100D, M1, 06.03.2016 - 16.06.2016
  Spread: 1.0, Slippage: 0.0, Mindestabstand des Stops vom Preis: 5.0
——————————————————————–
====================================================================
== Zulassungsbedingungen
====================================================================
LongEntryCondition = ((ATR(78) kreuzt über ATR(41)) und (AuSQCallSuperTrendU11(3).ZeroLine[0] < AuSQCallSuperTrendU11(3).Trend[0]))
ShortEntryCondition = ((ATR(78) kreuzt unterhalb von ATR(41)) und (AuSQCallSuperTrendU11(3).ZeroLine[0] > AuSQCallSuperTrendU11(3).Trend[0]))

Ich nehme an, dass die Zeiten, in denen SQ immer noch Regeln erstellt, die aus dem Zusammenhang gerissen sind, auf die "genetische" Art und Weise zurückzuführen sind, in der die SQ-Engine die verschiedenen Ausgaben von Indikatoren zusammensetzt, um alle möglichen Kombinationen von Handelsregeln zu bilden:

——————————————————————–
Pseudo-Quellcode der Strategie 1.167
  mit Parameternamen.

  Erzeugt von StrategyQuant Version 3.8.1
  Erzeugt am Fri Jun 24 08:05:00 GMT 2016
                                                          
  Geprüft an NQ_M01_100D, M1, 06.03.2016 - 16.06.2016
  Spread: 1.0, Slippage: 0.0, Mindestabstand des Stops vom Preis: 5.0
——————————————————————–
====================================================================
== Zulassungsbedingungen
====================================================================
LongEntryCondition = ((ATR(15) kreuzt unterhalb von ATR(11)) und ((ATR(80) kreuzt unterhalb von ATR(75)) oder (((AuSQCallSuperTrendU11(3).ZeroLine[0] < -77,279999) Oder (ATR(97) < ATR(63))) Und (ATR(41) kreuzt über ATR(53)))))
ShortEntryCondition = ((ATR(15) kreuzt über ATR(11)) und ((ATR(80) kreuzt über ATR(75)) oder (((AuSQCallSuperTrendU11(3).ZeroLine[0] > 77,279999) Oder (ATR(97) > ATR(63))) Und (ATR(41) kreuzt unterhalb von ATR(53)))))
 

Wir wissen, dass die Nullstelle immer gleich 0 ist, so dass die obige Regel -77,279999 > 0 > 77,279999 niemals WAHR sein wird.

 

Was SQ noch braucht, ist eine Möglichkeit, ihm mitzuteilen, dass die Bereiche der Indikatorausgabe ZeroLine = 0 und Trend = -1 oder 1 sind, und dass der Kontext Long: Trend > Zeroline und Short: Trend < Zeroline ist.

 

Wenn ich das könnte, wüsste SQ, wie man den benutzerdefinierten SuperTrend-Indikator richtig einsetzt, und würde sich nicht die Mühe machen, Handelsregeln zu erstellen, die einfach nie funktionieren werden.

 

Daher denke ich, dass die SQ Custom Indicator Definition einen Abschnitt für "Simple Rules" enthalten sollte, ähnlich wie bei den anderen Standardindikatoren, die in SQ unter "Building Blocks" definiert sind. Zum Beispiel: "Langfristiger RSI > 50" oder "Schluss über Bollinger Band".

0

tomas262

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 7 Jahren #138043

Hallo,

 

Ich werde Mark fragen, ob in diesem Bereich mit dem neuen SQ4 etwas verbessert werden kann. Ich mag diesen Indikator auch, besonders wenn er mit tickbasierten Charts (Range Bar, Volumen) kombiniert wird.

0

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)