Эта стратегия сочетает в себе индикатор RSI, индикатор MACD и двойные скользящие средние для достижения эффектов отслеживания тренда и позиционирования на рынке волатильности.
Расчет изменения цены вверх и вниз
Расчет RSI на основе изменения цены
Определение уровня перекупленности и перепроданности
Вычислить быстрый MA, медленный MA и линию сигнала
Входите на Золотой Крест и выходите на Смертный Крест.
Нарисуйте ситуацию перекрестного действия
Вычислить быстрые и медленные скользящие средние
Рассматривать торговлю только тогда, когда быстрый MA пересекает более медленный MA
Фильтруйте шум и следуйте тенденции
Фильтр входного сигнала с RSI, MACD и двойной MA
Улучшение точности и стабильности стратегии
Комбинация нескольких показателей повышает точность
Следующая тенденция фильтрует шум и повышает стабильность
RSI обнаруживает потенциальные точки переворота
Кроссовер MACD обеспечивает простые сигналы входа и выхода
Двойной MA устраняет большинство контратендных сделок
Легко понять с несколькими параметрами, хорошо для обучения
Риск чрезмерного использования нескольких показателей
Двойной MA жертвует гибкостью и может упустить возможности
Параметры RSI и MACD требуют тщательного выбора
Обратите внимание на стоп-лосс на основе символа
Требует периодической перестройки параметров
Настройка параметров RSI для различных символов
Оптимизировать двойные периоды MA для лучшего отслеживания
Добавление стоп-лосса для контроля потери от одной сделки
Включить больше показателей для обогащения комбинации
Разработка адаптивной модели параметров для автоматической настройки
Эта стратегия сочетает в себе RSI, MACD и двойной MA для выявления и отслеживания тенденций и фильтрации сигналов через несколько слоев. Она очень подходит для обучения и совершенствования новичков. Преимущество заключается в ее простоте и адаптивности. Прекрасное настройка параметров может генерировать приличную стабильную отдачу. Следующие шаги могут включать добавление большего количества индикаторов, разработку адаптивной модели параметров для автоматической оптимизации для различных рыночных условий.
/*backtest start: 2023-09-22 00:00:00 end: 2023-10-22 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy(title="RSI MACD", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.25, initial_capital = 1000) // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop //standard rsi template src = ohlc4, len = input(14, minval=1, title="Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, color=#87ff1a) band1 = hline(80) band = hline(50) band0 = hline(20) fill(band1, band0, color=purple, transp=90) //macd fast_length = input(title="Fast Length", defval=9) slow_length = input(title="Slow Length", defval=72) signal_length = input(title="Signal Length", defval=9) fast_ma = sma(rsi, fast_length) slow_ma = sma(rsi, slow_length) shortma = sma(ohlc4, fast_length) longma = sma(ohlc4, slow_length) controlmainput = input(title = "Control MA", defval = 234) controlma = sma(ohlc4, controlmainput) macdx = fast_ma - slow_ma signalx = sma(macdx, signal_length) hist = macdx - signalx ma_hist = shortma - controlma macd = macdx + 50 signal = signalx + 50 plot(macd,"macd", color = fuchsia) plot(hist,"hist", style = histogram, color = fuchsia) //plot(ma_hist,"ma hist", style = histogram, color = orange) plot(signal,"signal", color = white) //input control_buy_toggle = input(true, "Buy on crossover control MA?", type = bool) buy_on_control = control_buy_toggle == true? true : false //conditions buy = buy_on_control == true? ma_hist > 0 and shortma > longma and crossover(macd,signal) or crossover(shortma, controlma) : ma_hist > 0 and shortma > longma and crossover(macd,signal) sell = ma_hist > 0 and shortma > longma and crossunder(macd,signal) stop = crossunder(shortma, longma) or crossunder(shortma, controlma) plotshape(buy,"buy", shape.triangleup, location.bottom, green, size = size.tiny) plotshape(sell,"sell", shape.triangledown, location.bottom, red, size = size.tiny) plotshape(stop,"stop",shape.circle,location.bottom, white, size = size.tiny) if testPeriod() strategy.entry("buy", true, when = buy, limit = close) strategy.close("buy", when = sell) strategy.close("buy", when = stop)