Многоиндикаторная система совместной торговли, основанная на стратегии композитного сигнала трендового импульса

SMA RSI MACD TP SL TS
Дата создания: 2025-02-20 16:10:54 Последнее изменение: 2025-02-20 16:10:54
Копировать: 1 Количество просмотров: 333
2
Подписаться
319
Подписчики

Многоиндикаторная система совместной торговли, основанная на стратегии композитного сигнала трендового импульса Многоиндикаторная система совместной торговли, основанная на стратегии композитного сигнала трендового импульса

Обзор

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

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

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

  1. Определение тренда: используется 50-дневная и 200-дневная двойная равнолинейная система, чтобы определить направление большого тренда с помощью золотой форки
  2. Подтверждение динамики: в сочетании с RSI сверхпокупка сверхпродажа ((7030) и MACD сверхпокупка, подтверждение динамики цены
  3. Управление рисками: установка 2% стоп-лосса, 4% стоп-стопа и 1% слежения за стоп-лоссами, создание полноценной системы управления рисками

В частности, когда быстрая средняя линия (на 50-й день) проходит медленную среднюю линию (на 200-й день) и образует золотую спираль, в то же время RSI не достигает уровня перекупа и MACD образует золотую спираль, система генерирует сигнал доли. Наоборот, когда возникает мертвая спираль и RSI не достигает уровня перепродажи, MACD образует мертвую спираль, система генерирует сигнал доли.

Стратегические преимущества

  1. Высокая надежность сигнала: эффективное фильтрация ложных сигналов с помощью перекрестной проверки множества показателей
  2. Точная оценка тенденций: классическая двухлинейная система, которая позволяет лучше отслеживать основные тенденции
  3. Усовершенствованный контроль рисков: комплексный использование различных методов остановки, эффективное управление рисками снижения
  4. Адаптируемость: стратегические параметры адаптируются к различным рыночным условиям
  5. Ясность исполнения: условия создания сигнала четкие, избегая помех, вызванных субъективным суждением

Стратегический риск

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

Направление оптимизации стратегии

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-06-01 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EthioTrader

//@version=5
strategy("Optimal Multi-Indicator Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)

// ===== Input Parameters =====
// Moving Averages
fastMA = ta.sma(close, 50)
slowMA = ta.sma(close, 200)
plot(fastMA, "Fast MA", color=color.green)
plot(slowMA, "Slow MA", color=color.red)

// RSI
rsiLength = input(14, "RSI Length")
rsiOverbought = input(70, "RSI Overbought")
rsiOversold = input(30, "RSI Oversold")
rsi = ta.rsi(close, rsiLength)

// MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// Risk Management
stopLossPerc = input(2.0, "Stop Loss (%)") / 100
takeProfitPerc = input(4.0, "Take Profit (%)") / 100
trailingStopPerc = input(1.0, "Trailing Stop (%)") / 100

// ===== Strategy Logic =====
// Trend Condition: Golden Cross (Fast MA > Slow MA)
bullishTrend = ta.crossover(fastMA, slowMA)
bearishTrend = ta.crossunder(fastMA, slowMA)

// Momentum Condition: RSI and MACD
bullishMomentum = rsi < rsiOverbought and ta.crossover(macdLine, signalLine)
bearishMomentum = rsi > rsiOversold and ta.crossunder(macdLine, signalLine)

// Entry Signals
longCondition = bullishTrend and bullishMomentum
shortCondition = bearishTrend and bearishMomentum

// Exit Signals
trailingStop = strategy.position_avg_price * (1 - trailingStopPerc)
exitLong = ta.crossunder(close, trailingStop) or (close >= strategy.position_avg_price * (1 + takeProfitPerc))
exitShort = ta.crossover(close, trailingStop) or (close <= strategy.position_avg_price * (1 - takeProfitPerc))

// ===== Execute Orders =====
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - stopLossPerc), limit=strategy.position_avg_price * (1 + takeProfitPerc), trail_price=trailingStop, trail_offset=trailingStopPerc * close)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + stopLossPerc), limit=strategy.position_avg_price * (1 - takeProfitPerc), trail_price=trailingStop, trail_offset=trailingStopPerc * close)

// ===== Plotting =====
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")