Стратегия торговли с пересечением двух скользящих средних с динамическим стоп-профитом и стоп-лоссом

SMA TP SL
Дата создания: 2024-06-21 14:02:56 Последнее изменение: 2024-06-21 14:02:56
Копировать: 3 Количество просмотров: 584
1
Подписаться
1617
Подписчики

Стратегия торговли с пересечением двух скользящих средних с динамическим стоп-профитом и стоп-лоссом

Обзор

Эта стратегия является автоматической торговой системой, основанной на скрещивании простых скользящих средних (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)