모멘텀 트렌드 팔로잉 전략


생성 날짜: 2023-10-30 11:36:26 마지막으로 수정됨: 2023-10-30 11:36:26
복사: 1 클릭수: 440
1
집중하다
1166
수행원

모멘텀 트렌드 팔로잉 전략

개요

이 전략은 비디아 (변수 지수 이동 평균) 지표를 사용하여 암호화폐 시장의 트렌드 방향을 식별하고 트렌드 기반의 거래를 수행합니다. 이는 정량화된 기술 거래 전략입니다.

전략 원칙

이 전략은 먼저 VIDYA 지표를 계산한다. VIDYA 지표는 가격 변화의 동력을 기반으로 트렌드 변화에 더 빠르게 대응할 수 있다. 특히, 그것은 Chande Momentum Oscillator (CMO) 와 Simple Moving Average (SMA) 를 결합한다. CMO는 가격 상승과 하락의 차이를 측정하여 트렌드 강도를 판단한다. SMA는 가격에 대한 평평화 처리를 한다.

VIDYA를 계산한 후, 전략은 그 곡선의 방향에 따라 트렌드 방향을 판단한다. VIDYA가 올라갈 때, 더 많이 하고, VIDYA가 떨어질 때, 평소한다.

우위 분석

  • VIDYA 지표는 빠르게 반응하여 트렌드의 변화를 일찍 포착할 수 있으며, SMA와 같은 전통적인 지표에 비해 더 우수합니다.

  • 트렌드 강도와 트렌드 방향 판단을 결합하여 강하고 약한 트렌드를 효과적으로 구별할 수 있으며, 흔들리는 시장의 가짜 트렌드에 의해 오해되는 것을 피할 수 있다.

  • 하나의 비디야 지표만 기준으로 판단하면 전략의 단순성이 실현된다. 지표의 충돌과 오해가 발생하지 않는다.

  • 장기적인 VIDYA 설정을 사용하면 장기적인 트렌드를 추적할 수 있으며, 주요 트렌드 방향을 파악하는 데 도움이 됩니다.

  • 전략적 재검토는 긍정적인 기대수익을 가지고 좋은 성과를 내고 있다.

위험 분석

  • VIDYA는 시장의 갑작스러운 사건에 대한 반응이 지연될 수 있으며, 단기 거래 기회를 즉시 잡을 수 없습니다.

  • 장기적인 VIDYA 설정은 단기적인 트렌드 변화에 민감하지 않으며, 중간에 큰 회귀가 발생할 수 있다.

  • 순수 트렌드 추적 전략으로, 충격적인 상황에서는 성능이 좋지 않다. 부가적인 필터링 조건과 결합하여 성능을 향상시킬 수 있다.

  • 회귀 데이터는 부족하여 전략의 안정성을 완전히 검증할 수 없습니다. 실제 거래에서, 매개 변수는 반복적으로 최적화 테스트가 필요합니다.

  • 암호화폐 시장의 변동성이 높으며, 포지션 규모와 스톱로드 조건을 신중하게 통제하고, 엄격한 리스크 관리를 해야 한다.

최적화 방향

  • 부가가치 지표 또는 변동률 지표를 테스트하여 트렌드 변화에 대한 인식 민감성을 높인다.

  • 다른 트렌드 지표들과의 조합을 테스트하여 지표 집합 효과를 형성한다.

  • 트렌드 반전 시 가능한 한 빨리 손실을 막기 위한 최적화된 스톱 로즈 전략

  • 포지션 관리 전략을 최적화하고, 시장 상황에 따라 포지션을 동적으로 조정한다.

  • 다양한 암호화폐 품종과 주기적 변수에서 안정성을 테스트한다.

요약하다

이 전략은 전체적으로 양적 트렌드 추적 전략이다. 이 전략은 트렌드 방향을 판단하기 위해 VIDYA 지표를 사용하며, 암호화폐의 장기적인 트렌드 상황을 간단하고 효과적으로 파악한다. 그러나 또한 몇 가지 제한이 있으며, 스톱 로즈, 포지션 관리 등의 측면에 대한 추가적인 최적화가 필요하므로 전략이 더 안정적이고 실물적으로 실행될 수 있다.

전략 소스 코드
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @version=5
// Author = TradeAutomation


strategy(title="VIDYA Trend Strategy", shorttitle="VIDYA Trend Strategy", process_orders_on_close=true, overlay=true, pyramiding=25,  commission_type=strategy.commission.percent, commission_value=.075, slippage = 1, initial_capital = 1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=4)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2000 08:00'), group="Date Range", title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00'), group="Date Range", title='End Time')
InDateRange = true

// Strategy Inputs //
len = input.int(title="VIDYA Length", defval=50, step=5,group="Trend Settings")
src = input.source(title="VIDYA Price Source",defval=ohlc4, group="Trend Settings")

// VIDYA Calculations //
valpha=2/(len+1)
vud1=src>src[1] ? src-src[1] : 0
vdd1=src<src[1] ? src[1]-src : 0
vUD=math.sum(vud1,9)
vDD=math.sum(vdd1,9)
vCMO=nz((vUD-vDD)/(vUD+vDD))
var VIDYA = 0.0
VIDYA := na(VIDYA[1]) ? ta.sma(src, len) : nz(valpha*math.abs(vCMO)*src)+(1-valpha*math.abs(vCMO))*nz(VIDYA[1])
plot(VIDYA, title="VIDYA",color=(VIDYA > VIDYA[1]) ? color.green : (VIDYA<VIDYA[1]) ? color.red : (VIDYA==VIDYA[1]) ? color.gray : color.black, linewidth=2)

// Entry & Exit Signals //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = VIDYA>VIDYA[1])
    strategy.close("Long", when = VIDYA<VIDYA[1])
if (not InDateRange)
    strategy.close_all()