Handelssystem – Programmierung – Frage
Forums › ProRealTime Deutsch forum › ProOrder Support › Handelssystem – Programmierung – Frage
- This topic has 7 replies, 2 voices, and was last updated 4 years ago by NoName.
-
-
04/07/2020 at 8:16 AM #124962
Guten Tag zusammen,
ich habe ein einfaches Programm erstellt, um mich mit ProRealTime anzufreunden. Zu erst habe ich ein Indikator programmiert. „Analyser.py (Speaker)“
Ausgabe des Indikators:
- hasStocks [schwarze Balken] =Positionen gemäß Handelssystem. 0 = keine Position; 1 = 1 Position (läuft)
- nTrades [schwarze Linie] = zählt die Anzahl an Trades.
Bei den Folgenden Ausgaben gilt: 2 = inaktive; 1 = Aktive
- ntp [grün Linie] = Kriterien für TP Ausstieg.
- nsl [rot Linie] = Kriterien für SL Ausstieg.
- nent [blau Linie] = Kriterien für Entry Einstieg.
Daraus habe ich ein Handelssystem gemacht „MeinHandelssystem“. Kaufen bei „nent“ und verkaufen bei „ntp“ und „nsl“.
Kommen wir nun zu meinem Problem:
Das Handelssystem „MeinHandelssystem“ hat im Zeitraum Dezember und Januar Kaufsignale (siehe Bild: “Frage.jpg”) wo mein Indikator „Analyser.py (Speaker)“ keine Signale hat.- Wie kommt es dazu?
- Warum?
- Was kann ich dort gegen machen?
04/15/2020 at 6:49 AM #12619904/15/2020 at 10:21 AM #126223Sind Sie sicher, dass der in Ihrem Diagramm angezeigte Indikator genau dieselben Einstellungen hat wie der, den Sie in Ihrer Strategie verwenden? Wenn Sie sicher sein möchten, welche Variablen in einer Strategie enthalten sind, können Sie GRAPH und GRAPHONPRICE verwenden . Dies sind die einzigen Möglichkeiten, Variablenwerte in einer Strategie zu debuggen.
04/15/2020 at 12:13 PM #126257Guten Tag Nicolas,
Danke für Ihre Rückmeldung.
Ihren Hinweis bezüglich GRAPH und GRAPHONPRICE habe ich mir angeschaut.
Die Funktion GRAPH habe ich umgehen implementiert. Handelsstrategie habe ich angefügt als “MeinHandelssystem”.
Groß debuggen kann ich leider nicht , da mein Code genau eine entschiedene Zeile hat.Mein Handelssystem “MeinHandelssystem” beruht zu 100% auf dem Indikator “Analyser.py (Speaker)”. Beide haben die selben Variablen.
Es kommt aber nicht das selbe Raus.Erläuterung des Bildes: “Frage – 20200415”:
-
- [rote dicke Linie] = Unklarheit Zeitraum: 12.12.2019 – 08.01.2020
- Indikators”Analyser.py (Speaker)”:
- ntp [grün Linie] = Kriterien für TP Ausstieg. – 2 = inaktive; 1 = Aktive
- nsl [rot Linie] = Kriterien für SL Ausstieg. – 2 = inaktive; 1 = Aktive
- nent [blau Linie] = Kriterien für Entry Einstieg. – 2 = inaktive; 1 = Aktive
- hasStocks [schwarze Balken] =Positionen gemäß Handelssystem. 0 = keine Position; 1 = 1 Position (läuft)
- nTrades [schwarze Linie] = zählt die Anzahl an Trades.
- Handelssystem “MeinHandelssystem”
- myntp [grün Linie] = Kriterien für TP Ausstieg. – 2 = inaktive; 1 = Aktive
- mynsl [rot Linie] = Kriterien für SL Ausstieg. – 2 = inaktive; 1 = Aktive
- mynent [blau Linie] = Kriterien für Entry Einstieg. – 2 = inaktive; 1 = Aktive
- myhasStocks [schwarze Linie] =Positionen gemäß Handelssystem. 0 = keine Position; 1 = 1 Position (läuft)
Code des Handelssystems “MeinHandelssystem”
MeinHandelssystem123456789101112131415161718// Initialisieren des Indikators und definieren der Variablenmyntp, mynsl, mynent, myhasStocks, mynTrades = CALL "Analyser.py (Speaker)"[0, 2, 100, 2, 60, 40, 2, 1]// Bedingungen zum Einstieg in Long-PositionenIF NOT LongOnMarket AND mynent = 1 THENBUY 1 CONTRACTS AT MARKETENDIF// Bedingungen zum Ausstieg von Long-PositionenIf LongOnMarket AND ((mynsl = 1) or (myntp = 1)) THENSELL AT MARKETENDIF// VisualisierungGRAPH myntp coloured(17,247,55) AS "myntp"GRAPH mynsl coloured(255,0,0) AS "mynsl"GRAPH mynent coloured(44,16,248) AS "mynent"GRAPH myhasStocks coloured(0,0,0) AS "myhasStocks"04/16/2020 at 9:27 AM #126364Vielen Dank, ich kann das gleiche Verhalten in genau derselben Reihenfolge wiederholen. Es scheint nur einmal zu passieren und für dieses Instrument habe ich kein anderes Problem mit anderen Instrumenten gefunden, oder? Ich denke, es wäre zuerst eine gute Idee, den Indikator in den Strategiecode zu integrieren, um zu sehen, ob er in irgendeiner Weise helfen kann. Könnten Sie das tun?
04/16/2020 at 11:55 AM #126383Guten Tag Nicolas,
Danke erneut für Ihre Rückmeldung.
Meine Testversion ist gestern abgelaufen und ich habe nun keine Daten mehr um die Situation erneut zu Simulieren.Das Problem ist mit anderen Instrumenten durch mich nicht getestet worden. Auch ein Test in anderen Zeitintervallen (z.B. 3h oder 2h…) habe ich nicht vorgenommen.
Ich komme gerne Ihrer erneuten Idee nach und habe den Indikator 1:1 in das Handelssystem integriert.Sofern die Möglichkeit besteht meine Testversion, um eine Woche zu verlängern würde ich gerne weiter diesem Problem auf den Grund gehen.
An Wenn könnte ich mich mit dieser Bitte wenden?
Code des Handelssystems: ” Analyser.py”
Analyser.py123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122//Indikator "Analyser.py (Speaker)"//Average definieren//typ = 0//ent1 = 2//ent2 = 100//sl1 = 2//sl2 = 60//tp1 = 100//tp2 = 2//longshort = 1//Gleitenden Durchschnitt zuordnen und einer Variablen zuordnen.ent1Average = Average[ent1,typ](close)ent2Average = Average[ent2,typ](close)//Stop Lost Average definierensl1Average = Average[sl1,typ](close)sl2Average = Average[sl2,typ](close)//Take Profit Average definierentp1Average = Average[tp1,typ](close)tp2Average = Average[tp2,typ](close)//Warten bis größer SMA oder EMA erreicht ist.if BarIndex = 0 Then//finden größten SMA oder EMAstartId = MAX(MAX(MAX(ent1,ent2),MAX(sl1,sl2)),MAX(tp1,tp2))//initialieiseren//hasStocks = 0 --> kein Trade / 1 = Trade aktivhasStocks = 0nTrades = 0sell1 = 0ntp = 2nsl = 2nent = 2elsif BarIndex >= startId Then//Prüfen ob ich im Markt binif hasStocks = 0 Then//Prüfen Kaufenif ent1Average[0] < ent2Average[0] and ent1Average[1] > ent2Average[1] Then//# "Buy" because of EntryhasStocks = 1nent = 1//Kaufen durch ProRealTimeif longshort = 1 Then// LONGBUY 1 CONTRACTS AT MARKETelse// SHORT//SELLSHORT 1 CONTRACTS AT MARKETendifendif//Visualisation von TP und SL durch ntp und nslif (tp1Average[1] < tp2Average[1] and tp1Average[2] > tp2Average[2]) Thenntp = 2endifif (sl1Average[1] < sl2Average[1] and sl1Average[2] > sl2Average[2]) Thennsl = 2endifelse//Visualisation von Entry durch nentif (ent1Average[1] < ent2Average[1] and ent1Average[2] > ent2Average[2]) Thennent = 2endif//Prüfen Verkaufen// "Sell" because of SL or TPif (tp1Average[0] < tp2Average[0] and tp1Average[1] > tp2Average[1]) Thensell1 = 1ntp = 1endifif (sl1Average[0] < sl2Average[0] and sl1Average[1] > sl2Average[1]) Thensell1 = 1nsl = 1endif//Sellif sell1 = 1 ThenhasStocks = 0sell1 = 0nTrades = nTrades + 1//Verkaufen durch ProRealTimeif longshort = 1 Then// LONGSELL AT MARKETelse// SHORT//EXITSHORT AT MARKETendifendifendifendif// Visualisierungmyntp = ntpmynsl = nslmynent = nentmyhasStocks = hasStocks[1]mynTrades = nTradesGRAPH myntp coloured(17,247,55) AS "myntp"GRAPH mynsl coloured(255,0,0) AS "mynsl"GRAPH mynent coloured(44,16,248) AS "mynent"GRAPH myhasStocks coloured(0,0,0) AS "myhasStocks"04/16/2020 at 2:34 PM #126406Das Problem ist in dieser Version weiterhin vorhanden. Aber ich habe festgestellt, dass es ein Problem mit den Daten gibt, es gibt keine Kerzenhalter zwischen dem 13. Dezember und dem 23. Dezember und ich denke, es könnte erklären, warum es zu diesem Zeitpunkt ein ProBacktest-Problem gibt.
04/16/2020 at 2:45 PM #126409Guten Tag Nicolas,
Danke erneut für Ihre Rückmeldung und Ihre Bemühungen.
Interessant Ihre Erkenntnis.
- Kann der Fehler behoben werden?
- Wieso kann ProRealTime ohne Datengrundlage oder Signal kaufen / verkaufen?
Kann ich irgendwie helfen ?
-
AuthorPosts
Find exclusive trading pro-tools on