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