이 파인 스크립트 전략은 EMA 터치 신호를 통합하여 엔트리 포인트를 결정하기 위해 트레이딩뷰 플랫폼에서 일일 달러 비용 평균화 접근 방식을 구현합니다. 매일 고정 금액 투자를 위해 달러 비용 평균화 방법론을 따르며 위험을 완화하기 위해 시간을 통해 구매를 분산합니다. EMA 크로스오버는 엔트리의 특정 트리거로 사용됩니다.
이 전략은 다음과 같은 주요 특징을 가지고 있습니다.
일일 달러 비용 평균
입국 신호에 대한 EMA
동적 스톱 로스
거래 수 제한
특히, 매일 전략은 일정한 금액을 투자하고 종료 가격에 따라 구매할 주식을 계산합니다. 종료 가격이 5일, 10일, 20일 EMA 등 중 하나를 넘으면 구매 신호가 트리거됩니다. 누적된 거래 수치가 300를 달성하면 추가 구매가 발생하지 않습니다. 또한, 가격이 20일 SMA 이하로 종료되거나 미리 설정된 출구 날짜에 도달하면 모든 포지션이 클리어됩니다. 스크립트는 시각 분석을 위해 가격 차트에 EMA를 플롯링합니다.
이 전략의 장점은 다음과 같습니다.
리스크 다양화
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")