스토카스틱 소용돌이 전략은 스토카스틱 오시레이터의 K 라인이 D 라인의 위를 넘을 때 구매 신호를 생성하는 전략이며 긍정적 인 VI는 마이너스 VI보다 높습니다. 이 전략은 스토카스틱 오시레이터 지표와 스토카스틱 오시레이터 지표의 장점을 결합하여 주가가 역전될 때 기회를 잡습니다.
이 전략은 주로 두 가지 지표에 기반합니다.
스토카스틱 오시일레이터: 이 지표는 하루의 종료 가격을 특정 기간 동안의 최고 및 최저 가격과 비교하여 시장이 과판되거나 과입되었는지 반영합니다. 스토카스틱 오시일레이터의 빠른 라인 K가 느린 라인 D 위에 넘어가면 구매 신호로 간주됩니다.
소용돌이 지표: 이 지표는 특정 기간 동안의 변동을 비교함으로써 시장의 소용돌이 같은 상승 또는 하락 움직임을 반영합니다. 긍정적 소용돌이 지수가 부정적인 소용돌이 지수보다 높을 때, 그것은 주식 가격의 상승 동력이 하락 동력보다 강하다는 것을 의미합니다. 그래서 우리는 구입할 수 있습니다.
이 전략의 구매 신호는 스토카스틱 오시레이터의 느린 라인 D 위에 있는 빠른 라인 K를 넘어서서 나온다. 이는 주식 가격이 과판된 영역에서 회복되는 것을 나타냅니다. 그리고 마이너스 워터렉스 인덱스보다 높은 긍정적인 워터렉스 인덱스는 주식 가격의 강력한 상승 동력을 의미합니다. 따라서 이 두 신호의 조합은 최종 구매 결정을 생성합니다.
이 전략의 주요 특징은 다음과 같습니다.
주식 가격의 회복을 적시에 파악합니다. D 라인의 위의 K 라인이 가격 반전을 반영합니다.
전략 최적화를 위한 조정 가능한 매개 변수
직관적인 판단을 위해 구매 신호를 시각화합니다.
스토카스틱과 포터엑스는 너무 많은 역사적인 데이터가 없는 메커니즘을 가지고 있습니다.
이 전략에는 몇 가지 위험이 있습니다.
구매 신호는 오류가 있을 수 있고 손실은 완전히 피할 수 없습니다.
부적절한 매개 변수 설정은 전략 성능에 영향을 줄 수 있습니다.
주식 가격이 급격히 변동할 때 지표가 실패할 확률이 더 높습니다.
시장 동향을 결정할 수 없고, 하락 시장에서 구매 신호를 생성할 수도 있습니다.
이러한 위험은 매개 변수를 조정하고, 스톱 로스 설정, 시장 트렌드를 고려하여 등으로 완화 될 수 있습니다. 그러나 양적 전략은 손실을 완전히 피할 수 없습니다. 특정 위험을 감수해야합니다.
이 전략은 다음 측면에서도 최적화 될 수 있습니다.
다른 기술적 지표를 결합하여 전체 추세를 결정하여 높은 수준의 포지션을 개설하지 않도록 합니다.
최대 단일 손실을 통제하기 위해 스톱 로스 메커니즘을 증가시킵니다.
최적의 매개 변수를 찾기 위해 지표 매개 변수의 다양한 조합을 테스트합니다.
거짓 양성 확률을 줄이기 위해 개척 조건을 높여
거래 비용을 고려하고 최소한의 수익 목표를 설정하십시오.
이러한 최적화는 전략의 안정성을 향상시키고 손실을 줄이고 전략의 가치를 극대화 할 수 있습니다.
스토카스틱 소용돌이 전략은 가격 반전 신호와 상승 동력 신호를 고려한다. 이것은 전형적인 역전 전략이다. 주식 가격이 과판된 지역에서 회복될 때 기회를 잡으며 허위 브레이크오웃을 피하기 위해 상승 동력을 결정하기 위해 소용돌이 지수를 사용합니다. 이 유연하고 구현하기 쉬운 전략은 통제 가능한 위험을 가지고 있으며 좋은 양적 전략입니다. 그러나 어떤 전략도 시장 위험을 완전히 피할 수 없습니다. 우리는 신중하게 다루고 전략의 더 큰 가치를 발견하기 위해 가능한 최적화 공간에주의를 기울여야합니다.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Stochastic and Vortex Strategy", overlay=true) // Stochastic Oscillator settings kPeriod = input(14, title="K Period") dPeriod = input(3, title="D Period") slowing = input(3, title="Slowing") k = sma(stoch(close, high, low, kPeriod), slowing) d = sma(k, dPeriod) // Vortex Indicator settings lengthVI = input(14, title="Vortex Length") tr = max(max(high - low, abs(high - close[1])), abs(low - close[1])) vmPlus = abs(high - low[1]) vmMinus = abs(low - high[1]) viPlus = sum(vmPlus, lengthVI) / sum(tr, lengthVI) viMinus = sum(vmMinus, lengthVI) / sum(tr, lengthVI) // Buy condition buyCondition = crossover(k, d) and viPlus > viMinus if (buyCondition) strategy.entry("Buy", strategy.long) plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plot(k, title="%K", color=color.blue) plot(d, title="%D", color=color.orange) hline(80, "Overbought", color=color.red) hline(20, "Oversold", color=color.green) plot(viPlus, title="VI+", color=color.purple) plot(viMinus, title="VI-", color=color.red)