Hallo liebe Leute! Ich schreibe regelmässig neue Codes, bevorzugt auf kleinen Zeiteinheiten wie eine oder drei Minuten. Ich habe nun einen neuen Code geschrieben, der auf dem 1-Minuten-DAX-Chart im Backtest seit Januar sehr zuverlässig läuft. Ich habe ihn inzwischen auch live geschaltet. Mein Problem ist, dass ich auf der Zeiteinheit leider nur bis zu 200 K testen kann. Daher anbei einmal mein Code mit der Bitte an diejenigen, die diesen vielleicht einem Backtest über mehrere Jahre prüfen können, mir eine kurze Rückmeldung dazu zu geben! Vielen Dank 🙂
Die Besonderheit an diesem Code liegt in der Anpassung der Positionsgröße. Diese wächst nämlich mit laufendem Gewinn. Derzeit ist er so eingestellt, dass er maximal eine Position eingeht. Stellt man dieses jedoch auf TRUE um, werden nach frühenstens 480 Bars eine neue Position bei entsprechendem Signal eröffnet.
// =====================================================
// PARAMETER
// =====================================================
DEFPARAM CumulateOrders = False
WaitBars = 480
TargetPoints = 30
// =====================================================
// KAPITAL / POSITIONSGRÖSSE
// =====================================================
// Startkapital des Backtests
InitialCapital = 2820
// Aktuelles Strategiekapital
CurrentCapital = InitialCapital + STRATEGYPROFIT
// Positionsgröße abhängig vom aktuellen Kapital
IF CurrentCapital < 3000 THEN
PositionSize = 0.5
ELSIF CurrentCapital < 4500 THEN
PositionSize = 0.75
ELSIF CurrentCapital < 6000 THEN
PositionSize = 1.0
ELSIF CurrentCapital < 7500 THEN
PositionSize = 1.25
ELSIF CurrentCapital < 9000 THEN
PositionSize = 1.5
ELSIF CurrentCapital < 10500 THEN
PositionSize = 1.75
ELSE
PositionSize = 2.0
ENDIF
// =====================================================
// INDIKATOREN
// =====================================================
indicator1 = ExponentialAverage[25](close)
c1 = close >= indicator1
indicator2 = ExponentialAverage[25](close)
indicator3 = ExponentialAverage[50](close)
c2 = indicator2 CROSSES OVER indicator3
indicator4 = ExponentialAverage[50](close)
indicator5 = ExponentialAverage[100](close)
c3 = indicator4 >= indicator5
indicator6 = ExponentialAverage[200](close)
c4 = close >= indicator6
indicator7 = ADX[14]
c5 = indicator7 > 20
indicator8 = ADXR[14]
c6 = indicator8 > 20
entrySignal = c1 AND c2 AND c3 AND c4 AND c5 AND c6
// =====================================================
// ERSTE POSITION
// =====================================================
IF COUNTOFPOSITION = 0 THEN
IF entrySignal THEN
BUY PositionSize CONTRACT AT MARKET
firstEntryBar = BARINDEX
// Ziel 30 Punkte über dem ersten Einstieg
firstTargetPrice = close + TargetPoints
SET TARGET PRICE firstTargetPrice
ENDIF
ENDIF
// =====================================================
// ZWEITE POSITION
// =====================================================
IF COUNTOFPOSITION = PositionSize THEN
IF BARINDEX – firstEntryBar >= WaitBars THEN
IF entrySignal THEN
BUY PositionSize CONTRACT AT MARKET
// Das ursprüngliche Ziel bleibt bestehen
SET TARGET PRICE firstTargetPrice
ENDIF
ENDIF
ENDIF