듀얼 보텍스 지표와 트루 스트렝스 지표를 결합한 트렌드 추종 전략


생성 날짜: 2023-12-12 16:23:10 마지막으로 수정됨: 2023-12-12 16:23:10
복사: 0 클릭수: 735
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

듀얼 보텍스 지표와 트루 스트렝스 지표를 결합한 트렌드 추종 전략

개요

이 전략의 이름은 쌍 지표와 실제 강도 지표를 결합한 트렌드 추적 전략 . 이 전략은 쌍 지표와 실제 강도 지표를 동시에 적용하여, 그들이 구매 및 판매 신호를 발송할 때 포지션을 열고 더 많은 공백을 하고, 일정 파급 후 평형 포지션을 탈퇴하여 중장선 트렌드를 포착한다.

전략 원칙

이 전략은 쌍둥이 지표와 실제 강도 지표를 동시에 사용한다. 쌍둥이 지표는 VI+와 VI- 두 개의 라인을 포함하고 있으며, 이들은 가격의 상승과 하락의 강도를 반영한다. 실제 강도 지표는 가격 변화의 강도와 방향을 측정하는 TSI 적색 라인과 TSI 파란색 라인을 포함한다.

VI+ 상승 추세가 강화되고 VI- 하락 추세가 약화될 때, 쌍방향 지표는 다중 신호를 발산한다. 이 시점에 만약 TSI 파란색 선이 빨간 선을 통과한다면, 실제 강도 지표도 다중 신호를 발산한다. 두 지표가 동시에 다중 신호를 발산할 때, 다중 거래를 한다.

대조적으로, VI+ 상승세가 약화되고 VI- 하락세가 강화될 때, 쌍둥이 지표는 공백 신호를 발산한다. 이 시점에 만약 TSI 파란색 선이 적색 선을 통과한다면, 실제 강도 지표도 공백 신호를 발산한다. 두 지표가 동시에 공백 신호를 발산할 때, 공백 포지션을 열는다.

이러한 조합을 통해, 중장선 트렌드가 시작될 때 포지션을 열 수 있고, 그 트렌드를 추적할 수 있다. 트렌드가 끝날 때, 지표는 평소 신호를 발산하기도 한다. 따라서, 이 전략은 가격 중장선 대장선 트렌드의 상황을 효과적으로 포착할 수 있다.

전략적 강점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 이중 지표 필터링은 신호의 신뢰성을 높이고, 가짜 신호를 방지한다.

  2. 중장선 지표는 더 큰 트렌드 상황을 추적할 수 있다. 단선 지표는 시장 소음에 방해를 받아 큰 트렌드를 놓치게 된다.

  3. 매개 변수 조정으로 전략의 지분 시간을 유연하게 조정할 수 있다. 전략이 트렌드를 추적하면서도 단기 손실을 제어할 수 있다.

  4. 트렌드 추적과 위험 통제를 병행한다. 지표는 트렌드를 효과적으로 식별하고, 탈퇴 범위를 설정하여 위험을 제어한다.

전략적 위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 중장선 지위를 유지하여, 충격적인 거래상태의 정지 손실에 취약하다. 탈퇴파를 적절히 단축하거나, 정지를 조정하여 대응할 수 있다.

  2. 이중 지표 조합은 거짓 신호가 발생할 가능성이 있다. 확인을 위해 다른 지표를 도입하거나, 파라미터를 조정할 수 있다.

  3. 효율성이 낮고, 중장선 지분을 보유하는 동안 자금이 차지된다. 지위 규모를 적절히 조정하여 자금 사용 효율성을 최적화 할 수 있다.

  4. 트렌드 상황에 의존해야 한다. 불안한 상황에서는 포지션 규모를 줄여서 불필요한 손실을 피해야 한다.

전략 최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다른 지표 조합을 추가하여 여러 지표 필터를 형성하여 신호 품질을 더욱 향상시킬 수 있습니다.

  2. 다양한 품종의 특성에 맞게 지표 파라미터를 최적화합니다.

  3. 동적 포지션 관리 메커니즘을 추가하고, 트렌드 상황에서는 포지션을 늘리고, 충격적인 상황에서는 포지션을 줄인다.

  4. 스톱 전략을 늘리고, 스톱을 이동하거나, 스톱을 축소하는 등의 방법으로 위험을 통제한다.

  5. 파동 이론과 결합하여, 더 큰 수준의 잠재적인 경향 방향을 방향 필터 조건으로 식별한다.

  6. 기계학습 방법을 사용하여 매개 변수 및 거래 규칙을 자동으로 최적화하여 전략을 더 최적화하고 적응시킬 수 있습니다.

요약하다

이 전략은 전체적으로 우수한 중장선 트렌드 추적 전략이다. 이 전략은 쌍방향 지표와 실제 강도 지표를 사용하여 각자의 기술적 이점을 발휘하고 서로 신호를 검증하여 가격 중장선 트렌드의 생성을 효과적으로 식별할 수 있다. 적절한 매개 변수를 조정하여 단편 거래의 위험을 제어할 수 있다.

전략 소스 코드
/*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")