Hallo Roberto,
um die Resultate besser vergleichen zu können, habe ich aus Deinem Code einen Indikator erzeugt und diesen über ProBacktest laufen lassen.
Hier der Indikator:
A1 = close CROSSES OVER Average[20](close)
Cond1 = A1
B1 = close CROSSES UNDER Average[20,0](close)
Cond2 = B1
IF Cond1 THEN
A = 1
ELSIF Cond2 THEN
A = -1
ELSE
A = 0
ENDIF
Return A coloured (51,204,0) style(histogram)
Der entsprechende Code für ProBacktest wäre dann folgender:
Timeframe(Daily,UpdateOnClose)
Myindi = CALL "Cross-Average"
Endtime = 215500
// Bedingungen zum Einstieg in Long-Positionen
IF NOT LongOnMarket AND myindi = 1 THEN
BUY 1 CONTRACTS AT dhigh(1) stop
ENDIF
// Bedingungen zum Einstieg in Short-Positionen
IF NOT ShortOnMarket AND Myindi = -1 THEN
SELLSHORT 1 CONTRACTS AT dlow(1) stop
ENDIF
Timeframe(default)
// Bedingungen zum Ausstieg von Long-Positionen
If LongOnMarket and Time >= Endtime THEN
SELL AT MARKET
ENDIF
// Bedingungen zum Ausstieg aus Short-Positionen
IF ShortOnMarket and Time >= Endtime THEN
EXITSHORT AT MARKET
ENDIF
Hier besteht das gleiche Problem. Wird das Hoch erst im Laufe des Tages überschritten, wird der Trade nicht eingegangen.
Daraufhin habe ich Ihren Code direkt in ProBacktest kopiert. Hier funktioniert zwar dieser Einstieg, aber auch nicht regelkonform. Bzw. werden hier auch Positionen eingegangen, wo der Kurs den Average gar nicht kreuzt.
Ich habe dies anhand der beiden Screens verdeutlicht.
Beispielsweise zeigt der Indikator am 06.07 ein Signal an, welches nicht vollzogen wird (siehe ProBacktest CrossAverage, blau Orange), weil der Kurs erst im Laufe des Handelstages den Stopp erreicht.
In ProBacktest CrossAver.2 (blau rosa), wird der Trade eingegangen. (Dies ist die Variante, wo ich Ihren Code in ProBacktest direkt einkopiert habe.) Hier findet aber weder ein regelkonformer Ausstieg statt, noch sind die folgenden Trades, im Bild mit weißen Pfeilen Markiert, erklärbar. Der Kurs ist weit über dem SMA20 im Tageschart.
Vielen Dank nochmal für Deine Unterstützung.