シグナルからノイズへの移動平均取引戦略
この戦略は,一定の期間における信号対ノイズ比を計算し,移動平均取引信号と組み合わせることで,定量的な取引を実現する.基本的なアイデアは:
この戦略の主な利点は以下の通りです.
この戦略にはいくつかのリスクもあります:
解決策:
戦略は以下の方法で最適化できます.
この戦略は,シグナル対ノイズ比による市場リスクを判断し,移動平均から取引信号を生成することによって定量的な取引を実現する.単一の技術指標と比較して,この戦略は,リスクを制御しながら安定性を向上させるために,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)