В процессе загрузки ресурсов... загрузка...

Динамическая тенденция двойного МСФО в соответствии со стратегией разумного управления рисками

Автор:Чао Чжан, Дата: 2024-11-29 11:06:38
Тэги:SMAТПSLATRROC

img

Обзор

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

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

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

Преимущества стратегии

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

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

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

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

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA Buy/Sell Strategy with Significant Slope", overlay=true)

// Parametri configurabili
smaPeriod = input.int(20, title="SMA Period", minval=1)
initialTPPercent = input.float(5.0, title="Initial Take Profit (%)", minval=0.1)  // Take Profit iniziale (ambizioso)
trailingSLPercent = input.float(1.0, title="Trailing Stop Loss (%)", minval=0.1) // Percentuale di trailing SL
slopeThreshold = input.float(0.05, title="Slope Threshold (%)", minval=0.01)    // Soglia minima di pendenza significativa

// SMA calcolate su HIGH e LOW
smaHigh = ta.sma(high, smaPeriod)
smaLow = ta.sma(low, smaPeriod)

// Funzioni per pendenza significativa
isSignificantSlope(sma, threshold) =>
    math.abs(sma - sma[5]) / sma[5] > threshold / 100

slopePositive(sma) =>
    sma > sma[1] and isSignificantSlope(sma, slopeThreshold)

slopeNegative(sma) =>
    sma < sma[1] and isSignificantSlope(sma, slopeThreshold)

// Condizioni di BUY e SELL
buyCondition = close > smaHigh and low < smaHigh and close[1] < smaHigh and slopePositive(smaHigh)
sellCondition = close < smaLow and high > smaLow and close[1] > smaLow and slopeNegative(smaLow)

// Plot delle SMA
plot(smaHigh, color=color.green, linewidth=2, title="SMA 20 High")
plot(smaLow, color=color.red, linewidth=2, title="SMA 20 Low")

// Gestione TP/SL dinamici
longInitialTP = strategy.position_avg_price * (1 + initialTPPercent / 100)
shortInitialTP = strategy.position_avg_price * (1 - initialTPPercent / 100)

// Trailing SL dinamico
longTrailingSL = close * (1 - trailingSLPercent / 100)
shortTrailingSL = close * (1 + trailingSLPercent / 100)

// Chiusura di posizioni attive su segnali opposti
if strategy.position_size > 0 and sellCondition
    strategy.close("Buy", comment="Close Long on Sell Signal")
if strategy.position_size < 0 and buyCondition
    strategy.close("Sell", comment="Close Short on Buy Signal")

// Apertura di nuove posizioni con TP iniziale e Trailing SL
if buyCondition
    strategy.entry("Buy", strategy.long, comment="Open Long")
    strategy.exit("Long TP/Trailing SL", from_entry="Buy", limit=longInitialTP, stop=longTrailingSL)

if sellCondition
    strategy.entry("Sell", strategy.short, comment="Open Short")
    strategy.exit("Short TP/Trailing SL", from_entry="Sell", limit=shortInitialTP, stop=shortTrailingSL)


Связанные

Больше