Il s'agit d'une stratégie de trading à court terme qui utilise l'augmentation du volume de trading du week-end de Bitcoin en utilisant un effet de levier de 10x. L'idée principale est d'enregistrer le prix de clôture du vendredi, de comparer les prix de clôture quotidiens du samedi et du dimanche avec le prix de clôture du vendredi, et d'aller long ou court si le seuil est dépassé. Les positions seront fermées le lundi.
La stratégie enregistre d'abord le prix de clôture du vendredi, puis calcule le nombre de jours depuis le vendredi. Le samedi et le dimanche, si le prix de clôture quotidien est supérieur de 4,5% au prix de clôture du vendredi, passez à la vente; si le prix de clôture quotidien est inférieur de plus de 4,5% au prix de clôture du vendredi, passez à la vente. Chaque transaction utilise un effet de levier de 10x. Si le profit atteint 10% du capital initial, fermez toutes les positions. Le lundi, fermez toutes les positions indépendamment.
Plus précisément, la stratégie prend le prix de clôture du vendredi, puis compare le prix de clôture actuel avec le vendredi le samedi et le dimanche.strategy.short
; si le cours de clôture actuel est inférieur de plus de 4,5% à celui des vendredis, passez long viastrategy.long
L' effet de levier est fixé à 10x via leleverage
Si le bénéfice atteint 10% du capital initial, fermer toutes les positions viastrategy.close_all()
Le lundi, fermez toutes les positions viastrategy.close_all()
.
Améliorations potentielles pour atténuer les risques:
La stratégie peut être améliorée dans les domaines suivants:
Ajoutez d'autres indicateurs pour un meilleur timing des entrées.
Optimiser les stratégies de stop-loss et de prise de profit. Utiliser les arrêts de trail, la prise de profit par étapes, etc. pour verrouiller les bénéfices et contrôler les risques.
Ajustez la taille de l'effet de levier pour réduire le risque.
Ajoutez d'autres crypto-monnaies. Échangez des crypto-monnaies supplémentaires avec des modèles de week-end pour l'arbitrage multi-actifs.
Utilisez l'apprentissage automatique pour optimiser les paramètres. Collectez de grands ensembles de données historiques et utilisez l'apprentissage automatique pour optimiser automatiquement le réglage dynamique des paramètres.
Il s'agit d'une stratégie de trading à court terme typique utilisant le volume accru du week-end de Bitcoin. Il capitalise sur le volume du week-end en jugeant les tendances du samedi et du dimanche, en long ou en court. La stratégie présente des avantages tels que l'amplification des bénéfices et le contrôle des risques, mais présente également certains risques. Les prochaines étapes consistent à optimiser des domaines tels que l'entrée, le stop loss, la gestion du levier, l'expansion des actifs, etc. pour rendre la stratégie plus robuste et intelligente.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Copyright Boris Kozak strategy("XBT Weekend Trade Strategy", overlay=false) leverage = input(10,"Leverage") profitTakingPercentThreshold = input(0.10,"Profit Taking Percent Threshold") //****Code used for setting up backtesting.****/// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(12, "Backtest Start Month") testStartDay = input(10, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2025, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na bgcolor(testPeriodBackgroundColor, transp=50) testPeriod() => true //****END Code used for setting up backtesting.****/// //*** Main entry point is here***// // Figure out how many days since the Friday close days_since_friday = if dayofweek == 6 0 else if dayofweek == 7 1 else if dayofweek == 1 2 else if dayofweek == 2 3 else if dayofweek == 3 4 else if dayofweek == 4 5 else 6 // Grab the Friday close price fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday]) plot(fridaycloseprice) strategy.initial_capital = 50000 // Only perform backtesting during the window specified if testPeriod() // If we've reached out profit threshold, exit all positions if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold) strategy.close_all() // Only execute this trade on saturday and sunday (UTC) if (dayofweek == 7.0 or dayofweek == 1.0) // Begin - Empty position (no active trades) if (strategy.position_size == 0) // If current close price > threshold, go short if ((close>fridaycloseprice*1.045)) strategy.entry("Short Entry", strategy.short, leverage) else // If current close price < threshold, go long if (close<(fridaycloseprice*0.955)) strategy.entry("Long Entry",strategy.long, leverage) // Begin - we already have a position if (abs(strategy.position_size) > 0) // We are short if (strategy.position_size < 0) if ((close>strategy.position_avg_price*1.045)) // Add to the position strategy.entry("Adding to Short Entry", strategy.short, leverage) else strategy.entry("Long Entry",strategy.long,leverage) // On Monday, if we have any open positions, close them if (dayofweek==2.0) strategy.close_all()