Стратегия двойного скачка цены на скользящий средний

Автор:Чао Чжан, Дата: 2023-11-21 14:28:35
Тэги:

img

Обзор

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

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

  1. Использовать индикатор RSI для определения условий перекупления и перепродажи

    • Параметр RSI установлен на 14 периодов
    • Линия перепродажи на 30, линия перекупки на 70
  2. Используйте три линии SMA разных периодов для определения тренда

    • Быстрая линия представляет собой 9-периодическую SMA, представляющую краткосрочную тенденцию.
    • Средняя линия представляет собой 50-периодную SMA, представляющую собой среднесрочную тенденцию.
    • Медленная линия представляет собой 200-периодную SMA, представляющую долгосрочную тенденцию.
  3. Когда быстрая линия пересекает среднюю линию, и индикатор RSI показывает перепроданность, идите на длинный

  4. Когда быстрая линия пересекается ниже средней линии, и индикатор RSI показывает перекупленность, перейдите на короткий

  5. Стоп-лосс устанавливается на 4% от входной цены

  6. Приобретение прибыли происходит по партиям, сначала получают прибыль в размере 20%, затем получают 15% по мере роста цены, постепенно выходя из позиций

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

  1. Использование трех линий SMA разных периодов позволяет оценить изменения тренда в разных временных рамках
  2. Использование индикатора RSI позволяет избежать открытия позиций за пределами зон перекупки/перепродажи.
  3. Увеличение сбора прибыли по группе за период хранения и средняя прибыль от стратегии

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

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

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

  1. Может тестировать изменение параметров скользящих средних и RSI для оптимизации входа и выхода
  2. Может добавить другие индикаторы для фильтрации моделей свечей и т. д. для улучшения точности
  3. Может динамически отслеживать стоп-лосс для дальнейшего контроля риска

Резюме

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


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © syfuslokust

//@version=4
strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true)


// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
//Normal
oversold = input(30)
overbought =  input(70)
//ALGO
//oversold= input(26)
//overbought= input(80)

//sell pct
SellPct = input(20)
ExitPct = input(15)

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Look Back
inp_lkb = input(12, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

//Entry 

//MA
bullish = crossover(movingaverage_signal, movingaverage_fast)
//Execute buy
strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid))

//when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold)

//Exit

//RSI
Stop_loss= ((input (4))/100)
longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
//MA
bearish = crossunder(movingaverage_signal, movingaverage_fast)
//Execute sell
strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid)
//when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice))


//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2, title="signal")
plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast")
plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow")
plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")

Больше