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

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

Автор:Чао Чжан, Дата: 2024-07-29 14:27:58
Тэги:SMAМ.А.ЕМАATRSLТП

img

Обзор

Adaptive Moving Average Crossover with Trailing Stop-Loss - это количественный торговый подход, который сочетает в себе множество технических индикаторов. Эта стратегия в основном опирается на сигналы перекрестного перекрестного действия между быстрыми и медленными простыми движущимися средними (SMA) для торговых записей, используя при этом адаптивную последующую стоп-лосс для управления рисками. Стратегия также включает в себя передовые функции, такие как размещение позиций на основе волатильности и адаптивные уровни стоп-лосса, чтобы повысить свою адаптивность и надежность в различных рыночных условиях.

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

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

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

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

  3. Stop-Loss: реализует механизм стоп-лосса, основанный на процентах.

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

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

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

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

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

  3. Приспособляемость: путем включения факторов волатильности для корректировки уровней стоп-лосса стратегия может лучше адаптироваться к различным рыночным условиям.

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

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

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

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

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

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

  4. Риск снижения: несмотря на снижение стоп-лосса, стратегия может столкнуться со значительными снижениями на быстро меняющихся рынках.

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

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

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

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

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

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

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

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

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

Заключение

Adaptive Moving Average Crossover with Trailing Stop-Loss - это комплексный подход, который объединяет несколько количественных торговых концепций. Он улавливает тенденции с помощью пересечения скользящих средних, управляет рисками с использованием последующих остановок и повышает адаптивность с помощью динамических корректировок параметров.


/*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)


Связанные

Больше