Chiến lược giao dịch trung bình di chuyển tín hiệu-đối với tiếng ồn
Chiến lược này thực hiện giao dịch định lượng bằng cách tính tỷ lệ tín hiệu-đồn trong một khoảng thời gian nhất định và kết hợp nó với các tín hiệu giao dịch trung bình động.
Những lợi thế chính của chiến lược này là:
Ngoài ra còn có một số rủi ro với chiến lược này:
Giải pháp:
Chiến lược có thể được tối ưu hóa theo những cách sau:
Chiến lược này thực hiện giao dịch định lượng bằng cách đánh giá rủi ro thị trường thông qua tỷ lệ tín hiệu-gọi tiếng ồn và tạo ra các tín hiệu giao dịch từ đường trung bình động. So với các chỉ số kỹ thuật duy nhất, chiến lược này tích hợp các lợi thế của cả StN và SMA để cải thiện tính ổn định trong khi kiểm soát rủi ro. Với tối ưu hóa tham số và học máy, chiến lược này có tiềm năng cải thiện lớn và là một chiến lược giao dịch định lượng đáng tin cậy và hiệu quả.
/*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)