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

Динамическая стратегия торговли с двойной скользящей средней перекрестной торговлей с получением прибыли и остановкой потерь

Автор:Чао Чжан, Дата: 2024-06-21 14:02:56
Тэги:SMAТПSL

img

Обзор

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

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

  1. Использует два SMA: краткосрочный (50-периодный) и долгосрочный (100-периодный).
  2. Строящий сигнал покупки, когда краткосрочная SMA пересекает длинную SMA; сформирующий сигнал продажи, когда краткосрочная SMA пересекает длинную SMA.
  3. Вычисляет уровни прибыли и стоп-лосса на основе текущей цены и заранее установленных процентов для каждой сделки.
  4. Автоматически закрывает позиции, когда цена достигает уровня получения прибыли или стоп-лосса.
  5. Марки покупают и продают сигналы на графике и графики уровень линий получения прибыли и остановки потери.

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

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

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

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

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

  1. Введение фильтров: добавление объема, волатильности или других технических показателей в качестве условий фильтрации для уменьшения ложных сигналов.
  2. Динамическая корректировка периодов SMA: автоматически корректировать длины SMA на основе волатильности рынка для адаптации к различным рыночным условиям.
  3. Оптимизировать получение прибыли и стоп-лосс: рассмотреть возможность использования ATR (средний истинный диапазон) для установления динамических уровней получения прибыли и стоп-лосса для лучшей адаптации к волатильности рынка.
  4. Улучшить подтверждение тренда: включить другие индикаторы тренда, такие как MACD или ADX, чтобы повысить надежность торговых сигналов.
  5. Внедрение размеров позиций: динамическое регулирование размера каждой сделки на основе размера счета и волатильности рынка.
  6. Фильтрация по времени: добавление ограничений по времени торговли, чтобы избежать периодов высокой волатильности или низкой ликвидности.
  7. Контроль вывода: Добавление максимальных лимитов вывода для приостановки торговли при достижении определенного уровня последовательных потерь.

Заключение

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


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

//@version=5
//@version=5
strategy("TSLA 1-Hour SMA Crossover Strategy with Buy/Sell Signals", overlay=true)

// Parameters
shortSmaLength = input.int(50, title="Short SMA Length")
longSmaLength = input.int(100, title="Long SMA Length")
takeProfitPerc = input.float(5.0, title="Take Profit Percentage", step=0.1) // 5.0% take profit
stopLossPerc = input.float(3.0, title="Stop Loss Percentage", step=0.1) // 3.0% stop loss

// Calculate SMAs
shortSma = ta.sma(close, shortSmaLength)
longSma = ta.sma(close, longSmaLength)

// Plot SMAs
plot(shortSma, color=color.blue, title="Short SMA")
plot(longSma, color=color.red, title="Long SMA")

// Entry Conditions
longCondition = ta.crossover(shortSma, longSma)
shortCondition = ta.crossunder(shortSma, longSma)

// Trade Management
var float entryPrice = na
var float takeProfitLevel = na
var float stopLossLevel = na

if (longCondition)
    entryPrice := close
    takeProfitLevel := entryPrice * (1 + takeProfitPerc / 100)
    stopLossLevel := entryPrice * (1 - stopLossPerc / 100)
    strategy.entry("Long", strategy.long)
    label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, textcolor=color.white)

if (shortCondition)
    entryPrice := close
    takeProfitLevel := entryPrice * (1 - takeProfitPerc / 100)
    stopLossLevel := entryPrice * (1 + stopLossPerc / 100)
    strategy.entry("Short", strategy.short)
    label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, textcolor=color.white)

// Exit Conditions
if (strategy.position_size > 0)
    if (close >= takeProfitLevel or close <= stopLossLevel)
        strategy.close("Long")

if (strategy.position_size < 0)
    if (close <= takeProfitLevel or close >= stopLossLevel)
        strategy.close("Short")

// Plot Take Profit and Stop Loss Levels
plot(strategy.position_size > 0 ? takeProfitLevel : na, title="Take Profit Level", color=color.green, style=plot.style_stepline)
plot(strategy.position_size > 0 ? stopLossLevel : na, title="Stop Loss Level", color=color.red, style=plot.style_stepline)
plot(strategy.position_size < 0 ? takeProfitLevel : na, title="Take Profit Level (Short)", color=color.green, style=plot.style_stepline)
plot(strategy.position_size < 0 ? stopLossLevel : na, title="Stop Loss Level (Short)", color=color.red, style=plot.style_stepline)

Связанные

Больше