Stratégie de trading quantitatif Momentum Super BitMoon


Date de création: 2023-09-15 16:13:05 Dernière modification: 2023-09-15 16:13:05
Copier: 1 Nombre de clics: 674
1
Suivre
1617
Abonnés

Cette stratégie, appelée Super BitMoon, est une stratégie de trading dynamique quantifiée en ligne courte pour Bitcoin. La stratégie possède à la fois des capacités de prise de plus et de prise de moins, permettant de négocier lorsque Bitcoin atteint un support ou une résistance critique.

Comment fonctionne cette stratégie ?

  1. L’indicateur ATR est utilisé pour calculer la marge de fluctuation et le point de rupture à court terme. Lorsqu’un prix franchit le point de rupture de la ligne K supérieure, il est jugé que la tendance est inversée.
  2. Utilisez la moyenne mobile pondérée WVF et l’indicateur de la ceinture de Brin pour déterminer si Bitcoin est en survente ou en survente. Si la ceinture de Brin est en panne sous le WVF, ce qui indique que le marché pourrait être en survente, vous pouvez faire plus.
  3. L’indicateur RSI est utilisé pour déterminer si le Bitcoin est en survente. Si le RSI est inférieur à deux lignes de survente, il est possible d’effectuer une vente à la baisse.

Stratégies de négociation spécifiques:

  1. Si le cours du WVF est supérieur au prix d’arrêt ATR, il y a plus de bitcoins que si le cours du WVF est supérieur au prix d’arrêt ATR.
  2. Si le RSI est inférieur à 50 ou 30 sur la ligne de vente, le Bitcoin est mis en short.

Les avantages de cette stratégie sont les suivants:

  1. Il est également capable de faire du multi-cookie et de négocier dans les deux sens.
  2. Utilisez l’ATR Stop Loss pour contrôler le risque et éviter une augmentation des pertes.
  3. L’indicateur WVF, les bandes de Brin et le RSI sont utilisés pour le jugement, ce qui améliore la précision du signal.

Le risque de cette stratégie:

  1. Une mauvaise configuration des paramètres de la BRI et du RSI peut entraîner des signaux erronés.
  2. Les événements imprévus qui ont provoqué une hausse ou une baisse des prix peuvent avoir déclenché un arrêt de la perte.
  3. Les frais de transaction ont une certaine incidence sur les bénéfices.

En résumé, Super BitMoon est une stratégie quantifiée dynamique qui convient parfaitement aux combinaisons d’indicateurs à courte ligne, tout en offrant des fonctionnalités de suivi de tendance et de trading inversé. Avec une optimisation des paramètres raisonnable, il est possible d’obtenir un meilleur rapport risque/rendement. Cependant, les facteurs tels que le contrôle des frais et la gestion des fonds doivent également être pleinement pris en compte par les traders pour réduire les risques liés aux transactions en bourse.

Code source de la stratégie
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-08 09:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Super BitMoon v1", overlay=false, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)

/////////////////////////////////////////////////////////////
//START - SET DATE RANGE

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2011, title = "From Year")
ToMonth   = input(defval = 12, title = "To Month", minval = 1)
ToDay     = input(defval = 31, title = "To Day", minval = 1)
ToYear    = input(defval = 2018, title = "To Year")

startDate = time > timestamp(FromYear, FromMonth, FromDay, 00, 00)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true

/////////////////////////////////////////////////////////////
//END - SET DATE RANGE



/////////////////////////////////////////////////////////////
//START - INDICATORS

//ATR STOPS TREND FILTER
length = input(5, title="ATR Stop's Length")
mult = input(1, minval=0.01, title="ATR Stop's Multiple")
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1

//SYNTHETIC VIX
pd = input(10, title="Synthetic VIX's Length")
bbl = input(2, title="Synthetic VIX's Bollinger Band's Length")
mult2 = input(0.01, minval=0.01, title="Synthetic VIX's Bollinger Band's Std Dev")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult2 * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
upperBand = midLine + sDev

//RSI
rsi = rsi(close, input(10,title="RSI's Length"))
os1 = input(50,title="RSI's Oversold Level 1")
os2 = input(50,title="RSI's Oversold Level 2")

/////////////////////////////////////////////////////////////
//END - INDICATORS



/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

condition1 = crossunder(wvf, upperBand) and close > vstop and withinTimeRange
condition2 = crossunder(rsi, os1) and withinTimeRange
condition3 = crossunder(rsi, os2) and withinTimeRange

strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2 or condition3)

/////////////////////////////////////////////////////////////
//END - TRADING RULES