신호-소음 이동 평균 거래 전략
이 전략은 특정 기간 동안 신호와 소음 비율을 계산하고 이동 평균 거래 신호와 결합하여 양적 거래를 실현합니다. 기본 아이디어는:
이 전략의 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
해결책:
전략은 다음과 같은 방법으로 최적화 될 수 있습니다.
이 전략은 시그널-소음 비율을 통해 시장 위험을 판단하고 이동 평균에서 거래 신호를 생성함으로써 양적 거래를 실현합니다. 단일 기술 지표와 비교하면 이 전략은 위험 통제를 통해 안정성을 향상시키기 위해 StN 및 SMA의 장점을 통합합니다. 매개 변수 최적화 및 기계 학습으로이 전략은 개선 잠재력이 있으며 신뢰할 수 있고 효과적인 양적 거래 전략입니다.
/*backtest start: 2023-12-25 00:00:00 end: 2023-12-29 10:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © HPotter 05/01/2021 // The signal-to-noise (S/N) ratio. // And Simple Moving Average. // Thank you for idea BlockchainYahoo // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// SignalToNoise(length) => StN = 0.0 for i = 1 to length-1 StN := StN + (1/close[i])/length StN := -10*log(StN) strategy(title="Backtest Signal To Noise ", shorttitle="StoN", overlay=false) length = input(title="Days", type=input.integer, defval=21, minval=2) Smooth = input(title="Smooth", type=input.integer, defval=7, minval=2) reverse = input(false, title="Trade reverse") StN = SignalToNoise(length) SMAStN = sma(StN, Smooth) pos = iff(SMAStN[1] > StN[1] , -1, iff(SMAStN[1] < StN[1], 1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 ) plot(StN, title='StN' ) plot(SMAStN, title='Smooth', color=#00ff00)