Trade Nummer im Backtest
Forums › ProRealTime Deutsch forum › ProOrder Support › Trade Nummer im Backtest
- This topic has 4 replies, 2 voices, and was last updated 2 years ago by Vjper.
-
-
01/09/2022 at 8:54 AM #184917
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
MACD_Orderreduzierung12345678910111213141516171819202122// Festlegen der Code-ParameterDEFPARAM CumulateOrders = false// Bedingungen zum Einstieg in Long-Positionena=1indicator1 = MACD[50,200,28](close)c1 = (0.99*indicator1[a] > (indicator1[a+1]))IF c1 AND Not longOnMarket THENBUY 1 CONTRACT AT MARKETENDIF// Bedingungen zum Ausstieg von Long-Positionenindicator2 = MACD[50,200,28](close)c2 = indicator2 < indicator2[1]IF c2 and LongOnMarket THENSELL AT MARKETENDIF01/09/2022 at 12:28 PM #184928Sie haben das Beispiel vergessen. Können Sie nähere Angaben machen?
01/09/2022 at 1:19 PM #184938Oh 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 MARKETENDIF
// Bedingungen zum Ausstieg von Long-Positionen
indicator2 = MACD[50,200,28](close)
c2 = indicator2 < indicator2[1]IF c2 and LongOnMarket THEN
SELL AT MARKET
ENDIF01/12/2022 at 12:23 AM #185213Auf 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:
123456ONCE ArrayElement = 0NewTrade = (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 THENArrayElement = ArrayElement + 1$TradeArray[ArrayElement] = BarIndexENDIF01/12/2022 at 8:38 PM #185305 -
AuthorPosts