이중 매끄러운 abs_pc를 얻기 위해 PC를 사용하십시오
TSI 값과 신호선 tsi_signal을 비교함으로써, 우리는 과잉 구매 또는 과잉 판매 구역을 결정할 수 있습니다.
구매 신호: TSI는 상향 신호를 넘어서서 주가 반전을 나타냅니다. 우리가 장기화해야하는 과잉 매수 구역의 시작을 나타냅니다.
판매 신호: TSI는 아래로 신호를 통과합니다. 주가 반전을 나타냅니다. 우리가 판매해야하는 과잉 매출 구역의 끝을 나타냅니다.
이 전략의 가장 큰 장점은 이중 이동 평균 지표를 사용하여 주식 가격의 순환적 특징을 식별하는 데 있다. 이중 이동 평균에서 긴 기간과 짧은 기간을 동시에 사용함으로써 단일 이동 평균보다 가격 변화 추세를 더 민감하고 정확하게 파악할 수 있으며 거래 신호를 결정하는 데 더 효과적입니다.
또한 이 전략은 다른 일반적인 기술 지표보다는 TSI 지표를 선택합니다. 왜냐하면 TSI는 가격 변화 동력을 계산하는 데 더 많은 관심을 기울이기 때문에 더 정확하게 과반 구매/ 과반 판매 조건을 판단 할 수 있기 때문에 더 나은 거래 지점을 얻을 수 있습니다.
이 전략의 가장 큰 위험은 이중 이동 평균 자체는 가격 변화에 매우 민감하다는 것입니다. 가격 변동의 경우, 그것은 쉽게 잘못된 신호를 생성 할 수 있습니다. 게다가, 과잉 구매 / 과잉 판매 구역을 판단하는 TSI의 기준은 여전히 주관적이며 부적절한 매개 변수 설정 또한 정확성에 영향을 미칩니다.
이러한 위험을 제어하기 위해, 이중 이동 평균의 길이를 조정함으로써 매개 변수를 적절히 최적화하는 것이 좋습니다. 변동성 속에서 포지션을 개척하는 것을 피하기 위해 신호를 확인하기 위해 다른 지표를 결합하는 것도 필요합니다. 또한, 스톱 로스 전략을 최적화하고 비상 사태에 대한 위험 통제 조치를 설정하는 것이 매우 중요합니다.
이 전략의 최적화 방향은 주로 두 가지 측면에 초점을 맞추고 있습니다.
매개 변수 최적화. 길고 짧은 이동 평균과 신호 라인의 길이를위한 매개 변수 최적의 조합은 민감도를 향상시키기 위해 역 테스트 할 수 있습니다.
필터링 지표를 구성합니다. 예를 들어 볼링거 밴드, KDJ 등을 결합하여 구매 / 판매 신호를 확인하고 잘못된 포지션 개척을 방지합니다. 거래 볼륨 필터는 볼륨이 급증할 때만 오픈 포지션에 적용 될 수 있습니다.
스톱 로스 전략을 추가합니다. 이동 스톱 로스를 설정하고, 단일 포지션의 손실을 제한하기 위해 시간을 정했습니다. 또한 우리는 체계적인 위험을 제어하기 위해 시장 상태에 따라 일시적으로 거래를 중단 할 수 있습니다.
포지션 크기를 최적화하십시오. 모든 거래의 위험 노출을 관리하기 위해 시장 조건에 따라 포지션의 동적 크기 및 비율을 설정하십시오.
이 전략은 이중 이동 평균 오시일레이터 지수의 계산 방법을 활용하여 가격 동력 변화의 장기 및 단기 분석을 통합하여 엔트리 및 출구를 결정하기 위해 과잉 구매 및 과잉 판매 구역을 결정합니다. 단일 이동 평균에 비해 더 정확하고 민감한 판단의 장점이 있습니다. 물론, 안정성과 수익성을 향상시키기 위해 신호 필터링을위한 다른 지표와 함께 적절한 매개 변수 최적화가 여전히 필요합니다. 전반적으로이 전략은 실시간 테스트 및 최적화 가치가있는 거래 포인트를 결정하는 효과적인 기술적 도구를 제공합니다.
/*backtest start: 2023-01-29 00:00:00 end: 2024-02-04 00:00:00 period: 1d basePeriod: 1h 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/ // © shankardey7310 //@version=5 strategy("TSI STOCKS", shorttitle="TSI", overlay=true) initialCapital = input(10000, title="Initial Capital") riskPercent = input(1, title="Risk Percentage") / 100 longLength = input(12, title="Long Length") shortLength = input(9, title="Short Length") signalLength = input(12, title="Signal Length") price = close pc = ta.change(price) double_smooth(src, long, short) => first_smooth = ta.ema(src, long) ta.ema(first_smooth, short) double_smoothed_pc = double_smooth(pc, longLength, shortLength) double_smoothed_abs_pc = double_smooth(math.abs(pc), longLength, shortLength) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc) tsi_signal = ta.ema(tsi_value, signalLength) riskAmount = (initialCapital * riskPercent) / close if (tsi_value > tsi_signal and tsi_value[1] <= tsi_signal[1]) strategy.entry("Long", strategy.long) if (tsi_value < tsi_signal and tsi_value[1] >= tsi_signal[1]) strategy.close("Long") plot(tsi_value, title="True Strength Index", color=#2962FF) plot(tsi_signal, title="Signal", color=#E91E63) hline(0, title="Zero", color=#787B86)