Une stratégie de trading simple basée sur la chance aléatoire


Date de création: 2023-09-13 17:48:13 Dernière modification: 2023-09-13 17:48:13
Copier: 0 Nombre de clics: 734
1
Suivre
1617
Abonnés

Cette stratégie s’appelle la stratégie de trading simple basée sur la chance aléatoire. Cette stratégie utilise une méthode aléatoire pour générer des signaux de plus ou moins le premier jour de la semaine et évaluer l’efficacité des transactions aléatoires par un grand nombre de tests répétés.

La logique de négociation de la stratégie est très simple et directe:

  1. Chaque lundi, un jet de pièces de monnaie donne au hasard le résultat de la tête ou de la queue.

  2. Si c’est la tête, faites plus ce jour-là; si c’est la queue, faites moins ce jour-là.

  3. Le stop-loss est réglé sur 1x l’ATR et le stop-loss sur 1x l’ATR; le short-swap est réglé sur 1x le risque-rendement.

  4. Les détenteurs d’une position ont été réduits à zéro ce week-end.

L’avantage de cette stratégie réside dans le fait qu’en remontant de nombreuses années de données, on peut évaluer le succès moyen des transactions aléatoires. Les règles de négociation sont très simples et peuvent servir de référence pour comparer les stratégies.

Cependant, les transactions aléatoires ne peuvent pas exploiter les lois du marché et sont difficiles à obtenir des gains positifs de manière continue. La fixation d’un stop-loss peut également entraîner une augmentation des pertes.

Dans l’ensemble, le retour de données peut indiquer l’efficacité d’une transaction aléatoire, mais ne représente pas une stratégie utilisable. Les traders ont finalement besoin de jugement et de techniques de trading systématiques.

Code source de la stratégie
/*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)