Il s'agit d'une stratégie de trading à haute fréquence basée sur la ligne K de 3 minutes de l'échange Coinbase. Elle calcule les lignes d'ombre supérieure et inférieure de la ligne K pour déterminer s'il existe une opportunité d'inversion à court terme. Lorsque la hausse ou la baisse du prix est relativement importante, la stratégie prendra une position opposée à la tendance, en s'attendant à un renversement à court terme.
La stratégie juge principalement s'il y a des opportunités de "surachat" ou de "survente" à court terme.
Plus la ligne d'ombre est grande, plus la confrontation entre le pouvoir d'achat et le pouvoir de vente est intense avant la fermeture de la ligne actuelle. Si la ligne d'ombre supérieure est trop grande, cela signifie que de nombreux ordres d'achat ont été vaincus par des ordres de vente avant la fermeture de la ligne K, ce qui indique que le pouvoir haussier est sur le point d'affaiblir. Si la ligne d'ombre inférieure est trop grande, cela signifie que de nombreux ordres de vente ont été absorbés par des ordres d'achat avant la fermeture de la ligne K, ce qui indique que le pouvoir baissier est sur le point d'affaiblir.
Selon cette logique, lorsque la ligne d'ombre est trop grande (c'est-à-dire lorsque le prix apparaît "suracheté" ou "survendu" à court terme), la stratégie choisit de prendre une position opposée à la tendance.
Le plus grand avantage de cette stratégie est de tirer parti des fluctuations irrationnelles à court terme du marché pour obtenir un arbitrage inverse.
Une autre avantage est que Coinbase est une bourse avec de plus grandes fluctuations.
Le plus grand risque auquel cette stratégie est confrontée est que les fluctuations de prix à court terme peuvent ne pas avoir beaucoup de prévisibilité. La taille des lignes d'ombre supérieures et inférieures peut ne pas capturer pleinement toutes les informations sur les renversements de prix. Les émotions irrationnelles des traders peuvent également ne pas suivre de règles logiques. Il y a donc encore un certain risque de hasard dans cette stratégie.
En outre, le réglage des points de stop-loss est également essentiel. Les points de stop-loss trop lâches peuvent augmenter la perte de la stratégie. Les points de stop-loss trop stricts peuvent manquer les opportunités. Un équilibre doit être trouvé entre le rapport risque-rendement et le taux de gain.
Cette stratégie peut être encore optimisée dans les dimensions suivantes:
Dans l'ensemble, cette stratégie est une stratégie d'arbitrage statistique typique. Elle tente de tirer parti des fluctuations de prix irrationnelles à court terme pour réaliser des profits, avec une certaine logique et faisabilité.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //for coinbase, 3min logic //This strategy trades against the short term trend. The first position can be either long or short. //In the short term, prices fluctuate up and down on wide spread exchanges. //And if the price moves to one side, the price tends to return to its original position momentarily. //This strategy set stop order. Stop price is calculated with upper and lower shadows. strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50) fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year") frommonth = input(12, minval = 1, maxval = 12, title = "From Month") fromday = input(1, minval = 01, maxval = 31, title = "From day") toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year") tomonth = input(12, minval = 01, maxval = 12, title = "To Month") today = input(31, minval = 01, maxval = 31, title = "To day") end = true length = input(3, title="period") mag = input(1.2, title="sigma", minval=0.1, step=0.1) up_shadow = abs(high - max(open, close)) dn_shadow = abs(low - min(open, close)) up_shadow_ma = sma(up_shadow, length) * mag dn_shadow_ma = sma(dn_shadow, length) * mag upper = close + dn_shadow_ma lower = close - up_shadow_ma plot(upper, color=red) plot(lower, color=blue) if strategy.position_size == 0 strategy.entry("Long", strategy.long) if 0 < strategy.position_size strategy.entry("Short", strategy.short, stop=lower, when=end) if 0 > strategy.position_size strategy.entry("Long", strategy.long, stop=upper, when=end)