Guten Morgen,
im Backtest werden jegliche geöffnete und geschlossene Positionen nummeriert.
Wie kann ich auf diese nummern zugreifen?
Im Beispiel werden nach der Schließung weitere Longpositionen geöffnet. Dies möchte ich unterbinden, indem ich auf den letzten Shorttrade zugreife und somit dies als Bedingung für einen weiteren Longtrade einsetze.
Hab viel von Tradeindex und Barindex gefunden. Kann aber die Befehle nicht umsetzen.
Gruß
Vjper
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = false
// Bedingungen zum Einstieg in Long-Positionen
a=1
indicator1 = MACD[50,200,28](close)
c1 = (0.99*indicator1[a] > (indicator1[a+1]))
IF c1 AND Not longOnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = MACD[50,200,28](close)
c2 = indicator2 < indicator2[1]
IF c2 and LongOnMarket THEN
SELL AT MARKET
ENDIF
Sie haben das Beispiel vergessen. Können Sie nähere Angaben machen?
Oh sorry!
unten das Beispiel.
Ich versuche es nochmals zu beschreiben.
Im Beispiel werden nach der Schließung weitere Longpositionen geöffnet. Dies möchte ich unterbinden, indem ich auf den letzten Shorttrade zugreife und somit dies als Bedingung für einen weiteren Longtrade einsetze.
Meine Frage lautet: Kann ich im Backtest auf die Tradenummer zugreifen um sie für mein Code zu verwenden?
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = false
// Bedingungen zum Einstieg in Long-Positionen
a=1
indicator1 = MACD[50,200,28](close)
c1 = (0.99*indicator1[a] > (indicator1[a+1]))
IF c1 AND Not longOnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = MACD[50,200,28](close)
c2 = indicator2 < indicator2[1]
IF c2 and LongOnMarket THEN
SELL AT MARKET
ENDIF
Auf diese Nummern kann nicht zugegriffen werden, aber Sie können Ihre eigene Liste erstellen.
Dieser Code füllt das Array $TradeArray mit dem BarIndex-Wert für jeden neu eröffneten Trade. Die Variable ArrayElement behält die Gesamtzahl der geöffneten Trades:
ONCE ArrayElement = 0
NewTrade = (OnMarket AND Not OnMarket[1]) OR (LongOnMarket AND ShortOnMarket[1]) OR (LongOnMarket[1] AND ShortOnMarket) OR (Not OnMarket AND Not OnMarket[1] AND (StrategyProfit <> StrategyProfit[1]))
IF NewTrade THEN
ArrayElement = ArrayElement + 1
$TradeArray[ArrayElement] = BarIndex
ENDIF