Chiến lược giao dịch định lượng dựa trên tỷ lệ tín hiệu trên nhiễu và đường trung bình động


Ngày tạo: 2024-01-02 12:24:35 sửa đổi lần cuối: 2024-01-02 12:24:35
sao chép: 1 Số nhấp chuột: 868
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch định lượng dựa trên tỷ lệ tín hiệu trên nhiễu và đường trung bình động

Tên chiến lược

Chiến lược giao dịch trung bình chuyển động tín hiệu-tiếng ồn

Chiến lược tổng quan

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à:

  1. Tính toán tỷ lệ tín hiệu tiếng ồn trong một chu kỳ nhất định
  2. Tỷ lệ tiếng ồn đối tín dụng sử dụng phẳng trung bình
  3. So sánh tỷ lệ tín hiệu tiếng ồn hiện tại với giá trị đường trung bình, tạo ra tín hiệu giao dịch
  4. Làm nhiều đầu hoặc trống theo tín hiệu giao dịch

Ba, nguyên tắc chiến lược

  1. Công thức tính toán của Signal to Noise Ratio là: StN = -10*log(Σ(1/close)/n) Trong đó n là thời gian chu kỳ.
  2. Tỷ lệ nhiễu tín hiệu áp dụng trung bình di chuyển đơn giản (SMA) để có được tỷ lệ nhiễu tín hiệu mịn
  3. So sánh tỷ lệ tín hiệu tiếng ồn hiện tại StN với tỷ lệ tín hiệu tiếng ồn trơn SMAStN: (1) Nếu SMAStN > StN, làm trống (2) Nếu SMAStN < StN, làm nhiều hơn (3) Hoàn toàn thanh toán

B. Phân tích lợi thế chiến lược

Chiến lược này có những lợi thế chính như sau:

  1. Tỷ lệ tín nhiệm tiếng ồn có thể đánh giá biến động và rủi ro của thị trường, SMA có chức năng loại bỏ tiếng ồn
  2. Kết hợp tỷ lệ tín hiệu tiếng ồn để đánh giá rủi ro thị trường với SMA để tạo ra tín hiệu giao dịch, sử dụng lợi thế của các chỉ số khác nhau
  3. Có thể thiết lập chiến lược điều chỉnh tham số để thích ứng với các tình huống thị trường khác nhau
  4. Có thể báo hiệu Stdout chỉ thị làm nhiều空, trực quan đánh giá đặc điểm thị trường

5. Phân tích rủi ro chiến lược

Chiến lược này cũng có một số rủi ro:

  1. Tỷ lệ tín hiệu tiếng ồn so với đường trung bình có nguy cơ bị sai vị trí
  2. Việc đặt chu kỳ không đúng có thể dẫn đến tín hiệu sai
  3. Có ít cơ hội làm trống, có thể được điều chỉnh và tối ưu hóa thông qua tham số
  4. Sự kiện đột ngột gây ra biến động mạnh, có thể kích hoạt dừng lỗ

Giải quyết rủi ro:

  1. Điều chỉnh tham số đường trung bình để tránh mượt quá mức
  2. Tối ưu hóa các tham số chu kỳ, kiểm tra khả năng thích ứng với các thị trường khác nhau
  3. Điều chỉnh các điều kiện làm空 để cung cấp nhiều cơ hội làm空 hơn
  4. Cài đặt dừng để kiểm soát tổn thất tối đa

Sáng kiến tối ưu hóa

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Thử nghiệm sử dụng kết hợp của nhiều loại đồng nhất
  2. Tăng khả năng kiểm soát rủi ro của hệ thống ngăn chặn
  3. Tăng quản lý vị trí, điều chỉnh vị trí theo biến động
  4. Kết hợp nhiều yếu tố phán đoán để tăng sự ổn định chiến lược
  5. Tự động tối ưu hóa tham số bằng cách sử dụng phương pháp học máy

VII. Kết luận

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.

Mã nguồn chiến lược
/*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)