
신호-소음 이동 평균 거래 전략
이 전략은 일정 주기 내의 신호-소음 비율을 계산한 후, 일률적인 거래 신호와 결합하여 양적 거래를 실현한다. 그것의 기본 아이디어는 다음과 같다:
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위험 해소:
이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.
이 전략은 신호음 비율을 통해 시장의 변동 위험을 판단하고, 일률을 사용하여 거래 신호를 생성하여 수량 거래를 구현한다. 단일 기술 지표에 비해 이 전략은 신호음 비율과 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)