이 전략은
이 전략은 이중 소용돌이 지표와 실제 강도 지표 (TSI) 를 모두 사용합니다. 이중 소용돌이 지표는 각각 상승 및 하락 모멘텀의 크기를 반영하는 VI + 및 VI- 라인으로 구성됩니다. TSI는 가격 변화의 강도와 방향을 측정하는 빨간색과 파란색 라인을 가지고 있습니다.
VI+가 상승하고 VI-가 하락할 때 상승 추세가 강화되고 하락 추세 동력이 약화되는 것을 나타냅니다. 이중 소용돌이 지표는 긴 신호를 생성합니다. 동시에 TSI 파란색 선이 빨간 선 위에 넘어가면 TSI도 긴 신호를 발산합니다. 전략은 두 지표가 동시에 긴 신호를 발산하면 긴 포지션을 열 것입니다.
반대로, VI+가 떨어지고 VI-가 상승하여 상승 동력이 약화되고 하락 동력이 강화되는 것을 신호하면 이중 소용돌이는 짧은 신호를 발산합니다. TSI 파란색 선이 빨간 선 아래를 넘으면 TSI도 짧은 신호를 생성합니다. 전략은 정렬 된 짧은 신호를 수신하면 짧은 포지션을 개척합니다.
두 지표의 신호를 이렇게 결합함으로써 전략은 중장기 트렌드를 파악하고 추적할 수 있다. 트렌드가 끝나면 출구 신호가 생성된다. 따라서 이 전략은 시장에서 큰 트렌드를 따르는 움직임을 효과적으로 포착할 수 있다.
이 전략의 주요 장점은 다음과 같습니다.
또한 다음과 같은 위험 요소가 있습니다.
전략을 최적화하는 몇 가지 방법은 다음과 같습니다.
요약하자면, 이 전략은 중장기 트렌드 다음 접근법으로 우수하다. 이중 소용돌이 지표와 TSI의 기술을 활용함으로써, 신흥 중장기 트렌드를 안정적으로 인식할 수 있다. 적절한 매개 변수 조정으로, 거래 리스크를 관리할 수 있다. 더 많은 지표와 리스크 제어 기법을 통합함으로써 더 많은 최적화가 성과를 향상시킬 수 있다. 중장기 트렌드 트레이딩에 관심 있는 투자자들에게 적합하다.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 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/ // © hydrelev //@version=4 strategy("Vortex TSI strategy", overlay=false) ///////////////////INDICATOR TSI long = input(title="Long Length", type=input.integer, defval=25) short = input(title="Short Length", type=input.integer, defval=13) signal = input(title="Signal Length", type=input.integer, defval=13) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_blue = 100 * (double_smoothed_pc / double_smoothed_abs_pc) tsi_red = ema(tsi_blue, signal) // plot(tsi_blue, color=#3BB3E4) // plot(tsi_red, color=#FF006E) // hline(0, title="Zero") /////////////////INDICATOR VI period_ = input(14, title="Period", minval=2) VMP = sum( abs( high - low[1]), period_ ) VMM = sum( abs( low - high[1]), period_ ) STR = sum( atr(1), period_ ) VIP_blue = VMP / STR VIM_red = VMM / STR // plot(VIP_blue, title="VI +", color=#3BB3E4) // plot(VIM_red, title="VI -", color=#FF006E) ////////////////////STRATEGY bar=input(1, title="Close after x bar", minval=1, maxval=50) tsi_long = crossover(tsi_blue, tsi_red) tsi_short = crossunder(tsi_blue, tsi_red) vi_long = crossover(VIP_blue, VIM_red) vi_short = crossunder(VIP_blue, VIM_red) LongConditionOpen = tsi_long and vi_long ? true : false LongConditionClose = tsi_long[bar] and vi_long[bar] ? true : false ShortConditionOpen = tsi_short and vi_short ? true : false ShortConditionClose = tsi_short[bar] and vi_short[bar] ? true : false if (LongConditionOpen) strategy.entry("Long Entry", strategy.long) if (LongConditionClose) strategy.close("Long Entry") if (ShortConditionOpen) strategy.entry("Short Entry", strategy.short) if (ShortConditionClose) strategy.close("Short Entry")