
이 전략은 VIDYA (변수 지수 동적 평균) 지표에 기반한 트렌드 추적 거래 시스템이다. 이 전략은 동적으로 조정하는 무게를 통해 시장의 변동에 적응하고, 더 정확한 트렌드 식별과 거래 신호를 생성하기 위해 氏 운동 지표 (CMO) 와 표준 차 (StDev) 두 가지 계산 방법을 결합한다. 시스템은 전통적인 이동 평균에 기반한 자기 적응 장치를 도입하여 시장 상황에 따라 자동으로 민감도를 조정할 수 있다.
전략의 핵심은 VIDYA 지표이며, 계산 과정은 다음과 같은 몇 가지 중요한 단계를 포함합니다.
이 전략은 사용자가 CMO 또는 표준 차이가 변동률 계수를 계산하는 것을 선택할 수 있게 해 전략의 유연성을 증가시킨다. CMO 모드는 9주기를 고정적으로 사용하며, 표준 차이가 기본주기와 일치한다.
VIDYA 전략은 혁신적인 적응 중량 메커니즘을 통해 비교적 신뢰할 수있는 트렌드 추적 프로그램을 제공합니다. 이 전략은 간단하고 사용하기 쉬운 반면, 동적으로 조정하여 시장 변화에 대한 적응력을 향상시킵니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GriffinJames
//@version=5
strategy("VIDYA Strategy", overlay=true, initial_capital=25000)
// Inputs
src = input(close, title="Source")
pds = input.int(21, title="Length")
fixCMO = input.bool(true, title="Fixed CMO Length (9)?")
select = input.bool(true, title="Calculation Method: CMO/StDev?")
alpha = 2 / (pds + 1)
momm = ta.change(src)
// Functions to calculate MOM
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = fixCMO ? math.sum(m1, 9) : math.sum(m1, pds)
sm2 = fixCMO ? math.sum(m2, 9) : math.sum(m2, pds)
percent(nom, div) => 100 * nom / div
chandeMO = na(percent(sm1 - sm2, sm1 + sm2)) ? 0 : percent(sm1 - sm2, sm1 + sm2)
// Select calculation method
k = select ? math.abs(chandeMO) / 100 : ta.stdev(src, pds)
// Calculate VIDYA
var float VIDYA = na
VIDYA := na(VIDYA[1]) ? src : alpha * k * src + (1 - alpha * k) * VIDYA[1]
// Conditions for long and short
col12 = VIDYA > VIDYA[1]
col32 = VIDYA < VIDYA[1]
// Plot VIDYA with dynamic colors
color2 = col12 ? color.new(color.blue, 0) : col32 ? color.new(color.maroon, 0) : color.new(color.blue, 0)
plot(VIDYA, "VAR", color=color2, linewidth=2)
// Long and Short Strategy
if (col12)
strategy.entry("Go Long", strategy.long)
if (col32)
strategy.entry("Go Short", strategy.short)
// Alert for VIDYA color change
alertcondition(ta.cross(VIDYA, VIDYA[1]), title="Color ALARM!", message="VIDYA has changed color!")