전략에 따른 추진 동향

저자:차오장, 날짜: 2023-10-30 11:36:26
태그:

img

전반적인 설명

이 전략은 트렌드를 기반으로 암호화폐 시장 및 거래의 트렌드 방향을 식별하기 위해 VIDYA (변형 지수 동적 평균) 지표를 사용합니다. 이는 양적 기술 거래 전략입니다.

전략 논리

이 전략은 먼저 VIDYA 지표를 계산한다. VIDYA 지표는 가격 동력을 기반으로 하며 트렌드 변화에 더 빠르게 대응할 수 있다. 구체적으로, 그것은 Chande Momentum Oscillator (CMO) 와 Simple Moving Average (SMA) 를 결합한다. CMO는 트렌드 강도를 측정하기 위해 상승과 하락 동력의 차이를 측정한다. SMA는 가격 데이터를 매끄럽게 한다. VIDYA는 CMO 값에 따라 SMA의 가중치를 동적으로 조정하여 트렌드 변화의 초기에 CMO에 더 많은 무게를 부여하고 트렌드가 확립되면 SMA에 더 많은 무게를 부여한다. 따라서 VIDYA는 트렌드 변화에 신속하게 대응하면서 트렌드의 매끄러운 추적을 유지할 수 있다.

VIDYA를 계산한 후, 전략은 VIDYA의 곡선을 기반으로 트렌드 방향을 판단합니다. VIDYA가 상승할 때 길고 VIDYA가 떨어지면 위치를 닫습니다.

이점 분석

  • VIDYA는 빠르게 반응하고 SMA와 같은 전통적인 지표에 비해 트렌드 변화를 일찍 파악할 수 있습니다.

  • 트렌드 강도와 방향성을 결합하여 강력한 트렌드와 약한 트렌드를 효과적으로 구별하고 다양한 시장에서 잘못된 트렌드를 피할 수 있습니다.

  • VIDYA에만 의존하면 전략이 단순해집니다. 여러 지표에서 모순하거나 오해하는 신호가 없습니다.

  • 더 긴 VIDYA 설정은 장기 트렌드를 추적하고 주요 트렌드 방향을 파악 할 수 있습니다.

  • 좋은 백테스트 결과와 긍정적인 기대 수익.

위험 분석

  • 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()
    

더 많은