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

SMA MA EMA ATR SL TP
Дата создания: 2024-07-29 14:27:58 Последнее изменение: 2024-07-29 14:27:58
Копировать: 0 Количество просмотров: 544
1
Подписаться
1617
Подписчики

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

Обзор

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

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

Основная логика этой стратегии включает в себя следующие ключевые компоненты:

  1. Кроссовая скользящая средняя: используется простая скользящая средняя с двумя различными циклами (SMA), а именно быстрый SMA (дифолтный 5 циклов) и медленный SMA (дифолтный 50 циклов).

  2. Размер позиции: стратегия использует динамический метод размера позиции, основанный на балансе счета и текущей цене. При этом вводится фактор “уверенности”, который позволяет скорректировать долю вложенных средств.

  3. Следить за убытками: внедрение механизма слежения за убытками на основе процентов. Уровень убытков поднимается по мере роста цены, чтобы закрепить прибыль и ограничить отзыв.

  4. Самостоятельно адаптируемая функция: если включена опция “fancy_tests”, стратегия будет использовать динамические стоп-проценты, основанные на стандартной погрешности, что позволит самостоятельно адаптировать уровень стоп-ущерба в зависимости от волатильности рынка.

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

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

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

  2. Управление рисками: применение механизма отслеживания стоп-лосс позволяет эффективно контролировать нисходящие риски и позволяет свободно расти прибыли.

  3. Самостоятельная адаптация: стратегия может лучше адаптироваться к различным рыночным условиям, корректируя уровень остановки за счет факторов волатильности.

  4. Управление капиталом: Динамическое увеличение позиции помогает увеличить объем торгов по мере роста счета, а также автоматически снижает риск при сокращении счета.

  5. Гибкость: Стратегия предлагает множество регулируемых параметров, таких как скользящая средняя продолжительность, стоп-процент и т. д., которые пользователь может оптимизировать в соответствии с различными рынками и личными предпочтениями риска.

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

  1. Фальшивые прорывы: в кривых или волатильных рынках могут часто возникать ложные прорывы в движущихся средних, что приводит к многократным остановкам.

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

  3. Чрезмерная торговля: если параметры установлены неправильно, это может привести к частым входам и выходам, увеличивая стоимость торгов.

  4. Риск вывода: Несмотря на то, что есть слежение за потерями, в быстро меняющихся рынках все еще может быть большой вывод.

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

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

  1. Анализ многократных временных рамок: введение более длительных трендовых показателей, таких как скользящие средние с более длительными периодами, для уменьшения ложных сигналов.

  2. Присоединение к логике дисконтирования: расширение стратегии для поддержки дисконтирования, повышение полноты стратегии и возможности получения прибыли.

  3. Оптимизация времени входа в рынок: учитывайте возможность фильтрации торговых сигналов в сочетании с другими техническими показателями (например, RSI, MACD и т. Д.) для повышения точности входа в рынок.

  4. Оптимизация динамических параметров: внедрение механизмов адаптивной корректировки параметров, например, корректировки циклов скользящих средних на основе динамики волатильности рынка.

  5. Добавление механизмов прибыли: помимо отслеживания стоп-лосса, можно рассмотреть возможность добавления правил прибыли, основанных на технических показателях или фиксированных целях.

  6. Улучшение управления позициями: внедрение более сложных стратегий размещения позиций, таких как основанные на принципах Келли или других методах выравнивания риска.

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

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

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

Исходный код стратегии
/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
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/
// © chinmay.hundekari

//@version=5
//@version=5
strategy("test", overlay = true)

// Calculate two moving averages with different lengths.
SLMA = input.int(50,"SMA",minval=10,step=1)
FSMA = input.int(5,"SMA",minval=1,step=1)
fancy_tests = input.bool(true,"Enable Fancy Changes")
longLossPerc = input.float(2, title="Trailing Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01
stdMult = input.float(2.0, title="Standard Deviation Multiplier",
     minval=0.0, step=0.01)

float fastMA = ta.sma(close, FSMA)
float slowMA = ta.sma(close, SLMA)
float closMA = ta.sma(close, 25)

confidence = 1.0
if (fancy_tests)
    longLossPerc := stdMult * ta.stdev(ohlc4, 20)/close
balance = strategy.initial_capital + strategy.netprofit
balanceInContracts = balance* confidence/close

// Enter a long position when `fastMA` crosses over `slowMA`.
if ta.crossover(fastMA, slowMA)
    strategy.entry("BUY", strategy.long, qty=balanceInContracts)
//longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
//Trailing Stop loss Code
longStopPrice = 0.0
percLoss = longLossPerc
longStopPrice := if strategy.position_size > 0
    //if (strategy.openprofit_percent/100.0 > longLossPerc)
    //    percLoss := math.min(strategy.openprofit_percent/200.0, longLossPerc)
    stopValue = close * (1 - percLoss)
    math.max(stopValue, longStopPrice[1])
else
    0
if strategy.position_size > 0
    strategy.exit("STP", stop=longStopPrice)
plot(strategy.position_size > 0 ? longStopPrice : na,
     color=color.red, style=plot.style_cross,
     linewidth=2, title="Long Stop Loss")
// Enter a short position when `fastMA` crosses under `slowMA`.
//if ta.crossunder(fastMA, closMA)
//    strategy.close_all("SEL")//strategy.entry("sell", strategy.short)

// Plot the moving averages.
plot(fastMA, "Fast MA", color.aqua)
plot(slowMA, "Slow MA", color.orange)
plot((confidence)*(close), "Confidence", color=color.green, linewidth=2)