Einfache Handelsstrategie auf der Grundlage von Zufallsglück

Schriftsteller:ChaoZhang, Datum: 2023-09-13 17:48:13
Tags:

Diese Strategie wird Simple Trading Strategy Based on Random Luck genannt. Sie verwendet zufällige Methoden, um am ersten Handelstag jeder Woche lange oder kurze Signale zu generieren und die Leistung des zufälligen Handels durch eine große Menge wiederholter Tests zu bewerten.

Insbesondere ist die Handelslogik sehr einfach:

  1. Wir werfen jeden Montag eine Münze und erzeugen zufällig Kopf- oder Rückenresultate.

  2. Wenn Kopf, dann Long, wenn Schwanz, dann Short.

  3. Setzen Sie den Stop-Loss auf 1 x ATR und nehmen Sie bei Long mit 1 x ATR Gewinn, umgekehrt bei Short, wodurch ein Risiko-Rendite-Verhältnis von 1:1 erreicht wird.

  4. Halten Sie die Position bis Ende der Woche, dann schließen Sie.

Der Vorteil besteht darin, viele Jahre Daten zurück zu testen, um die durchschnittliche Gewinnrate des zufälligen Handels zu bewerten.

Der Random-Trading kann jedoch keine Marktmuster nutzen und dürfte kaum nachhaltige Gewinne erzielen.

Die Ergebnisse des Backtests können zwar zufälligen Handelsergebnissen nahe kommen, stellen jedoch keine tatsächlich anwendbaren Strategien dar.


/*backtest
start: 2022-09-12 00:00:00
end: 2023-01-12 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("CoinFlip", overlay = true)

int result = int(math.random()+0.5)
atr_period = input(defval = 20, title = "ATR Period")
year_to_test = input(defval = 2022, title = "Year to Test")
day_of_week = input(defval = 1, title = "Day of Week")

atr = ta.atr(atr_period)

shouldSell = result == 0 and dayofweek == day_of_week
shouldBuy = result == 1 and dayofweek == day_of_week 

plotshape(result == 0 and dayofmonth == day_of_week, title="sell", location=location.abovebar, color=color.red, transp=0, style=shape.arrowdown)
plotshape(result == 1 and dayofmonth == day_of_week, title="buy", location=location.belowbar, color=color.lime, transp=0, style=shape.arrowup)


strategy.entry("short entry", strategy.short, 1000 / (1*atr), when=shouldSell and year == year_to_test)
strategy.entry("long entry", strategy.long,  1000  / (1*atr), when=shouldBuy and year == year_to_test)

strategy.exit("exit", "long entry", limit = close + 1*atr, stop = close - 1*atr, when = shouldBuy)
strategy.exit("exit", "short entry", limit = close - 1*atr, stop = close + 1*atr, when = shouldSell)



Mehr