Frage zur Indikator-Programmierung
Forums › ProRealTime Deutsch forum › ProBuilder Support › Frage zur Indikator-Programmierung
- This topic has 11 replies, 2 voices, and was last updated 7 years ago by Despair.
-
-
08/31/2017 at 12:57 PM #45031
Hallo liebes Formum,
ich möchte einen Indikator programmieren der folgendes kann:1.Es sollen zig verschiedene Zustände definiert und mit Werten versehen werden.
zb. positve Hinweise wie (Zp1: Zustandpositiv; Zn1:Zustandnegativ):Zp1=close>close[1]
Zp2=close> EMA200
Zp3=close>EMA50
usw. bis Zp30 oder sogar noch mehr, was mir alles so einfällt und sinnvoll erscheint.
Die positiven Hinweise sollen positive Werte erhalten (z.B. ganz einfach immer +1)negative Hinweise wie z.B.
Zn1=close<close[1]
Zn2=close< EMA200
Zn3=close<EMA50
usw.
Zn30 oder sogar noch mehr, was mir einfällt und sinnvoll erscheint
…sollen negative Werte erhalten (z.B. -1)
Wenn ich so z.B. jeweils 30 positive und 30 negative Zustände definiert habe, soll der Indikator die Summe berechnen.
So ergäbe die einfache Rechnung Zp1+Zn2+Zp3 den Summenscore 1 (1+-1+1)
Wenn eine Candle exakt 15 negative Zustände und 15 positive Zustände erfüllte wäre der Summenscore entsprechend Null. Wenn ein Wert alle 30 positiven Zustände erfüllen würde, wäre der Score entsprechend 30 usw.
Bin noch absolutes Greenhorn in der Sache. Bislang habe ich die Zustände definiert und mich damit beholfen, dass ich versuchte jede mögliche Kombi von Zuständen mit einem Indikatorwert zu versehen. Dies ist aber bei der gewünschte Vielzahl unübersichtlich. Kannst mir jemand sagen wie man einen solchen Indikator am Elegantesten aufsetzt?Jede Hilfe ist willkommen, ich weiß nicht mal wie man einem definierten Zustand (Variable) einen Wert zuweist, mit dem man später weiterrechnen kann.
Gerne auch eine arbeitssparsame Lösungen mit indexierten Anweisungen, falls das geht, also nicht zum Schluss:
Indikator=Zp1+Zp2+Zp3…Zn30 – (Zn1+Zn2+Zn3…Zn30)
sondern sowas wie:
Indikator= Summenfunktion (Zp(i)-((Zn(i))
Würde mich sehr freuen!
Nette Tradergrüsse
Micha08/31/2017 at 1:39 PM #45038Dein Indikator ist sehr leicht zu programmieren in PRT, aber schön/übersichtlich wird das wohl nicht.
Z.B. gibt es in PRT keine Arrays von Variablen. D.h. Du kommst am Ende um die lange Summe nicht drum herum. Ich helfe dir gerne, aber bis jetzt weiss ich nicht so recht, womit du Probleme hast (außer dass du gerne Array hättest – ich auch ;)).
08/31/2017 at 4:06 PM #45058Okay super, dann wäre es toll wenn du mir ein bisschen hilfst.
Um im Beispiel zu bleiben: Wie weise ich “Zp1=close>close[1]” den Wert “1” zu, damit ich am Ende damit weiterrechnen kann und den Summenscore bilden?
Am liebsten wäre es mir, wenn du mir anhand meines og Ansatzes die ersten Zeilen, also den grundsätzlichen Ansatz coden könntest. Wenn ich den kapiert hab, dann kann ich den Rest ausarbeiten und später hier veröffentlichen 🙂
08/31/2017 at 4:18 PM #45059Ich code dir das auch lieber. Das ist einfacher, als deine Fragen zu verstehen. 😉 Kleiner Scherz…
Gib mir mal sowohl 3 positive, als auch 3 negative Zustände wie du es nennst. Dann programmiere ich das und du kannst es dann um beliebig viele Zustände erweitern.
08/31/2017 at 4:53 PM #45061Okay super, dann bleib ich bei den o.g. Beispielen:
positve Hinweise wie (Zp1: Zustandpositiv; Zn1:Zustandnegativ):
Zp1=close>close[1]
Zp2=close> EMA200
Zp3=close>EMA50
Die positiven Hinweise sollen positive Werte erhalten (z.B. ganz einfach immer +1)negative Hinweise wie z.B.
Zn1=close<close[1]
Zn2=close< EMA200
Zn3=close<EMA50Indikator= Summenfunktion (Zp(i)-((Zn(i))
08/31/2017 at 5:08 PM #4506709/01/2017 at 10:56 AM #45115Super, danke!
Das sieht ja erschreckend einfach aus;-) Damit kann ich auf jeden Fall weiterarbeiten. Was ich nicht checke ist, wo der Indikator die Info her hat, dass er jedem Zustand den Wert 1 zuordnen soll. Also er rechnet ja mit 1 (Zustand erfüllt) und 0 (Zustand nicht erfüllt), aber wo steht das im Programm, frage ich mich? Kannst du mir das bitte noch verraten?
Lieben Gruß
09/01/2017 at 11:59 AM #45117Für den Computer entsprechen 0 und 1 wahr und falsch. D.h.
1Zp1=close>close[1]Zp1 wird der Wert 1 zugewiesen, wenn der close grösser als der davor war und 0 wenn er es nicht wahr.
Durch diese Definition ist Zp1 eine Variable vom Typ boolesche Variable. Sie kann den Wert wahr oder unwahr annehmen.
Du könntest sie z.B. abfragen mit:
12345IF Zp1 THEN...oderIF NOT Zp1 THEN...Für PRT ist es dasselbe ob du schreibst Zp1=TRUE oder Zp1=1.
09/01/2017 at 2:03 PM #45119Ah verstehe, kann ich einer Variable auch den Wert 2 oder 2.5 oder 4 zuweisen?
09/01/2017 at 2:49 PM #45120Du kannst jeder Variable einen Wert zuweisen, wie du willst. Hängt davon ab was du vor hast. Im schlimmsten Fall musst du für deine Variable eine IF-Schleife hinzufügen:
123IF close>close[1] THENZp1=7ENDIFWenn du dich jedoch auf boolsche Variablen beschränkst, ersparst du dir eine Menge IF-Schleifen. Aber das kommt ja darauf an, wie du es haben willst.
09/01/2017 at 6:20 PM #45131Super, dann kann ich jetzt richtig loswerden.
Es wartet ne Menge Arbeit auf mich. In 2-3 Monaten wissen mehr, ob mein Ansatz funktioniert. und die Profitabilitätsgrenze gesprengt wird. Jetzt muss ich erstmal ganz viele Zustände definieren und adieren 😉
DANKE für die Starthilfe !!!
09/02/2017 at 10:00 AM #45209 -
AuthorPosts
Find exclusive trading pro-tools on