
Стратегия Pine Script реализует на платформе TradingView среднесуточную стратегию стоимости в сочетании с сенсорными сигналами EMA для определения точки входа. Стратегия следует правилу инвестирования среднесуточной стоимости, покупая за фиксированную сумму каждый день, чтобы распределить риск. В то же время, с помощью сенсорных сигналов EMA для указания конкретного времени входа.
Эта стратегия имеет следующие основные характеристики:
Закон среднесуточной стоимости инвестиций
Показатели EMA определяют точку входа
Динамический механизм остановки убытков
Ограничение максимальной позиции
В частности, стратегия вкладывает фиксированную сумму в день, исчисляя количество акций, которые можно купить по цене закрытия в тот день. На этой основе, если в день закрытия цена пройдет через любой из 5 дней, 10 дней, 20 дней и т. Д. в EMA, то это вызовет сигнал к покупке.
Эта стратегия имеет следующие преимущества:
Дифференцированные инвестиции, снижение риска отдельных инвестиций
EMA объединяет и избегает краткосрочных корректировок
Динамическая остановка убытков
Ограничение максимальной позиции, контроль риска
Интуитивно понятная EMA позволяет легко определить
Настройка высоты
В этой стратегии также есть некоторые риски, о которых следует помнить:
Системные риски неизбежны
Риски, связанные с фиксированной суммой инвестиций
EMA не может реагировать на экстремальные ситуации
Ограничение позиций также ограничивает возможности для прибыли.
Настройка точки остановки требует опыта и навыков
В этой стратегии есть место для дальнейшей оптимизации:
Повышение динамической корректировки ежедневных вложений
Вместе с другими критериями
Использование скользящего среднего индекса
Динамическая коррекция максимальной позиции
Применение постепенной потери
В целом, эта стратегия среднесуточных затрат в сочетании с сигналом касания EMA реализует идею долгосрочного инвестирования. По сравнению с одноразовым открытием позиции, можно распределить риск и избежать празднования на пике. Присоединение 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")