
Chiến lược giao dịch trung bình chuyển động tín hiệu-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 toán tỷ lệ tín hiệu tiếng ồn trong một chu kỳ nhất định, sau đó kết hợp với tín hiệu giao dịch đồng tuyến. Ý tưởng cơ bản của nó là:
Chiến lược này có những lợi thế chính như sau:
Chiến lược này cũng có một số rủi ro:
Giải quyết rủi ro:
Chiến lược này có thể được tối ưu hóa bằng cách:
Chiến lược này đánh giá rủi ro biến động thị trường thông qua tỷ lệ tín hiệu tiếng ồn và sử dụng đường thẳng để tạo tín hiệu giao dịch, để thực hiện giao dịch định lượng. Chiến lược này tích hợp tỷ lệ tín hiệu tiếng ồn và SMA so với chỉ số kỹ thuật đơn lẻ, tăng cường tính ổn định trong khi kiểm soát rủi ro.
/*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)