Стратегия количественной торговли Super BitMoon Momentum


Дата создания: 2023-09-15 16:13:05 Последнее изменение: 2023-09-15 16:13:05
Копировать: 1 Количество просмотров: 674
1
Подписаться
1617
Подписчики

Эта стратегия, получившая название Super BitMoon, представляет собой стратегию количественной динамики торговли, применяемую к биткоину. Эта стратегия обладает одновременной способностью делать плюсы и минусы, и может быть использована для торговли, когда биткойн пробивает ключевые точки поддержки или сопротивления.

Как работает стратегия:

  1. Используйте индикатор ATR для расчета недавнего диапазона колебаний и стоп-пойнтов. Когда цена прорывает стоп-пойнт на одной из K-линий, это рассматривается как обратный тренд.
  2. Используйте весомые скользящие средние WVF и индикаторы Бринского пояса, чтобы определить, находится ли биткоин в состоянии перекупа или перепродажи. Если проход Бринского пояса под WVF находит свое место, что указывает на то, что рынок может быть в состоянии перепродажи, можно сделать больше.
  3. Используйте RSI, чтобы определить, перепродано ли биткоин. Если RSI ниже двух линий перепродажи, можно сделать прибыль.

Конкретные торговые стратегии:

  1. Если WVF пересекает Брин-полосу и цена выше ATR-стоп-стоп, делайте больше биткойнов.
  2. Если RSI ниже 50 или 30 сверхпродажной линии, то декодируйте биткоин.

Преимущества этой стратегии заключаются в следующем:

  1. В то же время имеет возможность многократного дисконтирования и может осуществлять двустороннюю торговлю.
  2. Используйте ATR Stop Loss, чтобы контролировать риски и избежать увеличения убытков.
  3. В то же время используются WVF, BRI и RSI, чтобы повысить точность сигнала.

Риски этой стратегии:

  1. Неправильная настройка параметров BRI и RSI может привести к ошибочному сигналу.
  2. Внезапные события, вызванные повышением цены или скачками, могут привести к возникновению убытков.
  3. Транзакционные сборы оказывают определенное влияние на прибыль.

В общем, Super BitMoon - это количественно-динамическая стратегия, которая идеально подходит для коротких линий Indicatorscombos, а также сочетает в себе особенности отслеживания тенденций и реверсивной торговли. С разумной оптимизацией параметров ожидается получение лучшего соотношения риска и прибыли.

Исходный код стратегии
/*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