Биткоин - Стратегия пересечения скользящих средних


Дата создания: 2023-12-04 13:55:45 Последнее изменение: 2023-12-04 13:55:45
Копировать: 0 Количество просмотров: 910
1
Подписаться
1619
Подписчики

Биткоин - Стратегия пересечения скользящих средних

Обзор

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

Стратегический принцип

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

  1. Moving Average (MA): рассчитывает среднее значение цены закрытия за определенный период, используется для определения движения цены и сигналов о повороте.

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

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

В то же время, стратегия также устанавливает понижение 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)