beebParticipant
Average
Hallo ich möchte gerne direkt bei eröffnung einer Position den stop setzen lassen. Der dann auch nicht mehr geändert werden soll. Und zwar soll der stop auf den stand des MA 100 gesetzt werden wenn dieser mehr als 10 pips vom Eröffnungspreis entfernt ist. Sollte der MA100 näher als 10 pips am Eröffnungskurs sein, soll der stop auf 10 pip gesetzt werden. Ich muss ganz ehrlich sein das ich da gerade auf dem Schlauch stehe. Der Stop soll halt nur am Anfang einmal gesetzt werden und danach nicht mehr verändert werden.
Gruß Benny
Also, wenn ich das richtig verstehe, ist die Stop-Loss-10 Pips vom Eröffnungskurs, wenn der Abstand zwischen dem MA100 und dem Eröffnungskurs ist platziert weniger als 10 Pips und in diesem Fall wird der Stoploss auf MA100 gelegt?
beebParticipant
Average
Also folgende Konstellation :
Beispiel 1
Eröffnung bei 100
Der ma100 liegt bei 85 also 15 pip entfernt von der Eröffnung.
Jetzt soll der stop auf den ma100 gesetzt werden also auf 85
Beispiel 2
Eröffnung wieder bei 100
Jetzt liegt der ma100 bei 95 also 5 Punkte entfernt von der Eröffnung.
Jetzt soll ein stop von 10 pip gesetzt werden. Also bei 90 weil der ma100 zu nah an der Eröffnung liegt.
Ich hoffe so ist es verständlich
Gruß Benny
Ich verstehe Ihre Anfrage. Der Code sollte wie folgt sein: (Beispiel für eine Kaufposition )
if conditionbuy then
BUY 1 CONTRACT AT MARKET
mystoploss=max(10*pointsize,close-average[100])
endif
set stop loss mystoploss
Ich habe nicht getestet, aber es sollte funktionieren.
beebParticipant
Average
Das klappt leider nicht , hab das ergebnis angehängt .
Siehe Bilder
Es sollte funktionieren .. In diesem Beispiel können wir deutlich sehen, dass der Stop-Loss auf 10 Pips gesetzt ist, wenn die MA100 sehr nah ist …
Könnten Sie bitte hier Ihren vollständigen Strategiecode posten?
beebParticipant
Average
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
// Indicatoren
MA20 = Average[20](close)
MA50 = Average[50](close)
MA100 = Average[100](close)
// Bedingungen zum Einstieg in Long-Positionen
c1 = (MA20 CROSSES OVER MA50)
c2 = (MA100 < MA50)
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
mystoploss=max(10*pointsize,close-MA100)
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
c3 = (MA20 CROSSES UNDER MA50)
IF c3 THEN
SELL AT MARKET
ENDIF
// Bedingungen zum Einstieg in Short-Positionen
//c4 = (MA20 CROSSES UNDER MA50)
//c5 = (MA100 > MA50)
//
//IF c4 AND c5 THEN
//SELLSHORT 1 CONTRACT AT MARKET
//ENDIF
// Bedingungen zum Ausstieg aus Short-Positionen
//c6 = (MA20 CROSSES OVER MA50)
//
//IF c6 THEN
//EXITSHORT AT MARKET
//ENDIF
// Stops und Targets
SET STOP pLOSS mystoploss
hier
beebParticipant
Average
Hab den fehler gerade selber gefunden, habe
SET STOP pLOSS drin und sie hatten geschrieben SET STOP LOSS
Sorry hab ich übersehen
Gruß Benny
beebParticipant
Average
Vielen Dank für die Hilfe erstmal.
Eine Frage hätte ich aber noch und zwar möchte ich gerne das das System am Wochen Anfang (Montag morgen) erst ab 5 Uhr die ersten trades beginnt.
Danach soll das System die ganze Woche rund um die Uhr laufen.
Und am Freitag sollen alle Positionen um 20 Uhr glattgestellt werden. Damit keine Position übers Wochenende läuft.
Ich hab die Zeit begrenzen können mit
DEFPARAM FlatBefore = 050000
DEFPARAM FlatAfter = 200000
Aber das macht er dann jeden Tag
Gruß Benny
Sie können beliebige Bedingungen mit den Datums- und Uhrzeitfunktionen der Programmiersprache erstellen:
https://www.prorealcode.com/documentation/category/dateandtime/
beebParticipant
Average
Hallo ja das hatte ich gesehen, aber eine if Bedingung kann ich nicht mit DEFPARAM FlatBefore = 050000 nutzen.
Oder kann ich FlatBefore auch ohne DEFPARAM nutzen?
Sitze gerade nicht vorm Rechner.
beebParticipant
Average
Also ich habe jetzt getestet flatbefor geht nicht ohne DEFPARAM und if geht nicht mit DEFPARAM.
Jetzt kann ich verhindern das postionen am Montag vor 5 uhr eingegangen werden
IF (CurrentDayOfWeek = 1) AND (CurrentTime < 050000) Then
notrade = 1
else
notrade = 0
ENDIF
IF notrade = 0 AND bedingungen then
BUY 1 C.....
Am freitag kann ich zwar auch verhindern das neue Positionen eingegangen werden aber wie kann ich dann um 20 Uhr alle postionen die noch offen sind schließen lassen ?
tradingtime=currentdayofweek>=1 and currentdayofweek<=5 and not (currentdayofweek=1 and time<50000)
if tradingtime then
.... //hier schreibst du dein Programm
endif
if currentdayofweek=5 and time=200000 then
if longonmarket then
sell at market
elsif shortonmarket then
exitshort at market
endif
endif
Bitte schön. 🙂
Hierzu habe ich nochmal ne Frage:
Ich möchte gern einen festen Stop Loss setzen, der sich nach dem Entry nicht mehr verschiebt.
Zum Hintergrund, ich lege die Einstiegssignale fest, nach denen beim nächsten open eine Position eröffnet wird. Der Einstieg erfolgt nur, wenn die vorherige Kerze negativ (also close<open) war. Bei einer Long Position soll der Stop die Entfernung zwischen entry und high der vorherigen Kerze sein.
Ich habe es bisher wie folgt versucht:
sl=(high[1]-close[1])
SET STOP LOSS sl
das funktioniert leider nicht.
Bestimmt könnt ihr helfen
Danke!