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

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

Автор:Чао Чжан, Дата: 2024-12-27 15:08:40
Тэги:SMAМ.А.ТПSL

img

Обзор

Эта стратегия представляет собой тенденционную систему, основанную на двойных движущихся средних перекрестных сигналах, включающих динамический механизм получения прибыли и остановки потери. Она использует 5-периодные и 12-периодные простые движущиеся средние (SMA) для генерации торговых сигналов, оптимизируя соотношение риск-вознаграждение посредством динамической корректировки уровней получения прибыли и остановки потери. Первоначальная прибыль устанавливается на уровне 10% и остановка потери на уровне 5%, при этом уровни корректируются на 20% и 2,5% соответственно, когда цена движется благоприятно.

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

Основная логика основана на перекрестном отношении между быстрыми (5-периодными) и медленными (12-периодными) скользящими средними. Сигнал покупки генерируется, когда быстрый MA пересекает более медленного MA, в то время как позиции закрываются, когда быстрый MA пересекает ниже медленного MA. Уникальность стратегии заключается в ее динамическом механизме управления рисками: после входа в позицию система непрерывно отслеживает движение цен и динамически регулирует уровни получения прибыли и стоп-лосса для максимизации прибыли при одновременном контроле риска.

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

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

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

  1. Может генерировать ложные сигналы на различных рынках, что приводит к частой торговле
  2. Потенциальные значительные снижения при сценариях быстрого перехода
  3. Неправильные параметры могут повлиять на эффективность стратегии
  4. Проблемы с ликвидностью на рынке могут повлиять на выполнение стоп-лосса Рекомендации по управлению рисками:
  • Добавить фильтры трендов
  • Оптимизировать выбор параметров
  • Следить за ликвидностью рынка в режиме реального времени
  • Создать комплексную систему управления деньгами

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

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

Резюме

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


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

//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)







Связанные

Больше