Эта стратегия пина реализует ежедневный подход к средней стоимости доллара на платформе TradingView, включая сенсорные сигналы EMA для определения точек входа.
Стратегия имеет следующие ключевые черты:
Средняя стоимость в долларах в день
ЭМА для входных сигналов
Динамическая стоп-лосс
Лимит количества торгов
В частности, каждый день стратегия инвестирует фиксированную сумму и рассчитывает акции для покупки на основе цены закрытия. Если цена закрытия превышает любую из 5-, 10-, 20-дневных EMA и т. Д., Запускается сигнал покупки. Как только накопленное количество сделок достигнет 300 лимита, не будет больше покупок. Кроме того, если цена закрывается ниже 20-дневной SMA или достигает предварительно установленной даты выхода, все позиции очищаются.
Преимущества этой стратегии включают:
Диверсификация рисков
Комбинация EMA избегает отступлений
Динамическая стоп-потеря контролирует потери
Контроль торговых ограничений риски
Интуитивное визуализация EMA
Высокая настраиваемость
Стратегия также сопряжена с некоторыми рисками:
Все еще существуют системные риски
Фиксированная сумма инвестиций
EMA не могут реагировать на экстремальные движения
Предельные пределы торговли
Установка стоп-лосса требует внимания
Дальнейшие оптимизации:
Динамическая суточная сумма инвестиций
Дополнительные сигналы въезда
Экспоненциальные скользящие средние
Динамическая граница положения
Отслеживание остановки потери
В целом, эта комбинированная с EMA ежедневная стратегия DCA реализует концепцию долгосрочных периодических инвестиций, распределяя риски по нескольким небольшим записям по сравнению с крупными разовыми покупками. EMA помогают избежать краткосрочных рисков отзыва в определенной степени, в то время как стоп-лосс контролирует максимальный убыток. Тем не менее, необходимо иметь в виду риски черного лебедя и ограничения фиксированного размера инвестиций. Эти аспекты обеспечивают будущие направления улучшения посредством настройки параметров и комбинаций индикаторов для создания эффективных, но стабильных квантовых стратегий.
/*backtest start: 2024-01-08 00:00:00 end: 2024-01-15 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Daily DCA Strategy with Touching EMAs", overlay=true, pyramiding=10000) // Customizable Parameters daily_investment = input(50000, title="Daily Investment") start_year = input(2022, title="Start Year") start_month = input(1, title="Start Month") start_day = input(1, title="Start Day") end_year = input(2023, title="End Year") end_month = input(12, title="End Month") end_day = input(1, title="End Day") trade_count_limit = input(10000, title="Pyramiding Limit") enable_sell = input(true, title="Enable Sell") start_date = timestamp(start_year, start_month, start_day) var int trade_count = 0 // Calculate the number of shares to buy based on the current closing price shares_to_buy = daily_investment / close // Check if a new day has started and after the start date isNewDay = dayofmonth != dayofmonth[1] and time >= start_date // Buy conditions based on EMA crossovers ema5_cross_above = crossover(close, ema(close, 5)) ema10_cross_above = crossover(close, ema(close, 10)) ema20_cross_above = crossover(close, ema(close, 20)) ema50_cross_above = crossover(close, ema(close, 50)) ema100_cross_above = crossover(close, ema(close, 100)) ema200_cross_above = crossover(close, ema(close, 200)) if isNewDay and (ema5_cross_above or ema10_cross_above or ema20_cross_above or ema50_cross_above or ema100_cross_above or ema200_cross_above) and trade_count < trade_count_limit strategy.entry("Buy", strategy.long, qty=shares_to_buy) trade_count := trade_count + 1 // Dynamic sell conditions (optional) sell_condition = true if enable_sell and sell_condition strategy.close_all() // EMA Ribbon for visualization plot(ema(close, 5), color=color.red, title="EMA 5") plot(ema(close, 10), color=color.orange, title="EMA 10") plot(ema(close, 20), color=color.yellow, title="EMA 20") plot(ema(close, 50), color=color.green, title="EMA 50") plot(ema(close, 100), color=color.blue, title="EMA 100") plot(ema(close, 200), color=color.purple, title="EMA 200")