Биткоин - стратегия перекрестного использования

Автор:Чао Чжан, Дата: 2023-12-04 13:55:45
Тэги:

img

Обзор

Эта стратегия представляет собой следующую торговую стратегию, разработанную на основе принципа перекрестки движущихся средних линий биткоина. Стратегия использует перекресток быстро движущейся средней линии и медленно движущейся средней линии в качестве сигналов покупки и продажи. Когда быстро движущаяся средняя линия пересекает линию медленно движущегося среднего, она считается золотым крестом и идет на длинный; когда быстро движущаяся средняя линия пересекает линию медленно движущегося среднего, она считается смертельным крестом и идет на короткий.

Принцип стратегии

Стратегия основывается на двух показателях:

  1. Движущаяся средняя (MA): рассчитывает среднюю цену закрытия за определенный период для определения ценовых тенденций и сигналов реверсии.

  2. Индекс относительной силы (RSI): рассчитывает скорость роста и падения цен в течение определенного периода, чтобы судить о перекупленных и перепроданных областях.

В частности, стратегия использует более короткую MA как быструю линию и более длинную MA как медленную линию. Когда быстрая линия пересекает поверх медленной линии, это указывает на то, что краткосрочный рост цен ускоряется и генерируется сигнал покупки; когда быстрая линия пересекает ниже медленной линии, это указывает на то, что краткосрочное падение цен ускоряется и генерируется сигнал продажи.

В то же время стратегия также устанавливает порог для RSI, генерируя сигналы покупки только тогда, когда RSI превышает 50, и сигналы продажи только тогда, когда RSI ниже 50, избегая безрассудного входа, когда цены сильно колеблются.

Анализ преимуществ

Стратегия имеет следующие преимущества:

  1. Принцип прост, его легко понять и применить.
  2. Надежные торговые сигналы избегают иррационального входа.
  3. Меньше параметров и легко оптимизировать.
  4. Зрелая техника скользящей средней с широким применением.
  5. Индикатор RSI может эффективно идентифицировать явления перекупа и перепродажи.

Анализ рисков

Стратегия также сопряжена с некоторыми рисками:

  1. Стратегии, следующие тренду, склонны к большим потерям при перепаде цен.
  2. Движущиеся средние задерживаются и не могут оперативно улавливать изменения цен.
  3. Неправильный выбор параметров может привести к ухудшению качества торговых сигналов.
  4. В стратегии рассматриваются только технические показатели без фундаментальных факторов.

Для смягчения рисков рекомендуется оптимизировать параметры скользящей средней продолжительности, корректировать позиции стоп-лосса и соответствующим образом сократить размеры позиций.

Руководство по оптимизации

К основным направлениям оптимизации этой стратегии относятся:

  1. Оптимизировать параметры скользящей средней продолжительности для поиска оптимальной комбинации параметров с помощью инкрементального поиска, генетических алгоритмов и т.д.

  2. Увеличить другие технические показатели для фильтрации, такие как KDJ, MACD и т. д., чтобы улучшить качество торговых сигналов.

  3. Наблюдать за колебаниями цен и корректировать позиции и стоп-потери соответственно.

  4. Включить объем торговли, чтобы избежать ложных прорывов, выпуская сигналы только при увеличении объема торговли.

  5. Разработка механизмов самоадаптирования параметров, позволяющих стратегиям автоматически корректировать значения параметров на основе различных рыночных условий.

Заключение

В целом, это типичная стратегия, следующая за трендом. Основываясь на принципе пересечения скользящей средней, логика торговли проста и понятна, легко понять и реализовать. Включение индикатора RSI может избежать иррациональной торговли. Стратегия несет в себе как риски, так и выгоды, подходящие для инвесторов с некоторым опытом квантовой торговли, но потенциальные риски потери должны быть защищены. Если разработчики могут добавить больше фильтров, оптимизировать адаптивность параметров, это может еще больше улучшить устойчивую прибыльность стратегии.


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Trading Strategy Warning - Past performance may not equal future performance
//Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown.
//Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended
//Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future
strategy("Bitcoin - MA Crossover Strategy", overlay=true)

// User Input
usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false)
sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false)
sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false)
rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false)

// Create Indicator's
shortSMA = sma(close, sma_fast)
longSMA = sma(close, sma_slow)
rsi = rsi(close, rsi_valu)
strategy.initial_capital = 50000
// Units to buy
amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)

// Specify entry conditions
longEntry = crossover(shortSMA, longSMA)
shortEntry = crossunder(shortSMA, longSMA)

// Specify exit conditions
longExit = crossunder(shortSMA, longSMA)
shortExit = crossover(shortSMA, longSMA)

// Execute long trade
if (longEntry)
    strategy.entry("long", strategy.long, units, when = rsi > 50)

// Exit long trade
if(longExit and strategy.position_size > 0)    
    strategy.order("exit long", strategy.short, abs(strategy.position_size))

// Execute short trade
if (shortEntry)
    strategy.entry("short", strategy.short, units, when = rsi < 50)
    
// Exit short trade
if(shortExit and strategy.position_size < 0)    
    strategy.order("exit short", strategy.long, abs(strategy.position_size))

// Plot Moving Average's to chart
plot(shortSMA)
plot(longSMA, color=color.black)

Больше