Adaptive Moving Average Crossover with Trailing Stop-Loss - это количественный торговый подход, который сочетает в себе множество технических индикаторов. Эта стратегия в основном опирается на сигналы перекрестного перекрестного действия между быстрыми и медленными простыми движущимися средними (SMA) для торговых записей, используя при этом адаптивную последующую стоп-лосс для управления рисками. Стратегия также включает в себя передовые функции, такие как размещение позиций на основе волатильности и адаптивные уровни стоп-лосса, чтобы повысить свою адаптивность и надежность в различных рыночных условиях.
Основная логика этой стратегии включает следующие ключевые компоненты:
Пересечение скользящей средней: использует две простые скользящие средние (SMA) с разными периодами - быструю SMA (по умолчанию 5 периодов) и медленную SMA (по умолчанию 50 периодов).
Размер позиций: Стратегия использует динамический метод размещения позиций, основанный на балансе счета и текущей цене.
Stop-Loss: реализует механизм стоп-лосса, основанный на процентах.
Приспосабливающиеся функции: если включена опция
Логика выхода: стратегия в основном основана на последнем стоп-лос для закрытия позиции, не устанавливая фиксированных точек получения прибыли.
Следование тенденциям: используя перекрестные показатели скользящих средних, стратегия может отслеживать средне- и долгосрочные тенденции, что выгодно для значительного роста на сильно развивающихся рынках.
Управление рисками: механизм остановки потерь эффективно контролирует риск снижения при одновременном обеспечении прибыли.
Приспособляемость: путем включения факторов волатильности для корректировки уровней стоп-лосса стратегия может лучше адаптироваться к различным рыночным условиям.
Управление капиталом: Динамическое размещение позиций помогает увеличить размер сделки по мере роста счета и автоматически снижает риск во время снятия счета.
Гибкость: стратегия предлагает множество регулируемых параметров, таких как скользящие средние периоды и процентные ставки стоп-лосса, что позволяет пользователям оптимизировать на основе различных рынков и личных предпочтений риска.
Ложные прорывы: на рыночных рынках с колебаниями или колебаниями могут происходить частые ложные прорывы скользящих средних, что приводит к нескольким выходам стоп-лосса.
Задержка: скользящие средние показатели по своей сути являются задержками, которые могут не реагировать достаточно быстро на сильно волатильных рынках.
Переоценка: неправильное настройка параметров может привести к частым входам и выходам, увеличивая затраты на транзакции.
Риск снижения: несмотря на снижение стоп-лосса, стратегия может столкнуться со значительными снижениями на быстро меняющихся рынках.
Однонаправленная торговля: стратегия в настоящее время занимает только длинные позиции, потенциально упуская возможности или понеся убытки в нисходящих тенденциях.
Анализ многочасовых периодов: внедряйте более долгосрочные индикаторы тренда, такие как длительные скользящие средние, чтобы уменьшить ложные сигналы.
Добавьте логику короткой продажи: расширьте стратегию для поддержки коротких сделок, улучшая всеобъемлющую и возможности получения прибыли.
Оптимизировать сроки входа: Подумайте о сочетании других технических индикаторов (например, RSI, MACD) для фильтрации торговых сигналов и улучшения точности входа.
Динамическая оптимизация параметров: внедрение адаптивных механизмов корректировки параметров, таких как динамическая корректировка скользящих средних периодов на основе волатильности рынка.
Внедрить механизм получения прибыли: в дополнение к последующим остановкам, подумайте о добавлении правил получения прибыли, основанных на технических показателях или фиксированных целях.
Улучшить управление позициями: внедрить более сложные стратегии размещения позиций, например, основанные на критерии Келли или других методах паритета рисков.
Добавление фундаментальных фильтров: для торговли акциями следует рассмотреть возможность включения фундаментальных индикаторов в качестве дополнительных условий фильтрации торговли.
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)