Chiến lược giao dịch định lượng dựa trên xác minh đa chỉ số


Ngày tạo: 2023-09-15 11:55:04 sửa đổi lần cuối: 2023-09-15 11:55:04
sao chép: 1 Số nhấp chuột: 719
1
tập trung vào
1617
Người theo dõi

Bài viết này sẽ giới thiệu chi tiết về một chiến lược định lượng để tạo ra tín hiệu giao dịch thông qua xác minh nhiều chỉ số. Chiến lược này sử dụng nhiều chỉ số tổng hợp để tăng độ tin cậy của tín hiệu.

A. Nguyên tắc chiến lược

Chiến lược này tập hợp hai kỹ thuật giao dịch:

(I) 123 Chiến lược đảo ngược hình dạng

  1. Xác định quan hệ giá đóng cửa của đường K để xác định hình dạng đáy và đỉnh có thể;

  2. Kết hợp các chỉ số ngẫu nhiên để xác định tín hiệu đảo ngược và tránh tín hiệu sai;

(ii) Đơn giản hóa chỉ số không gian

  1. Tính toán các chỉ số khối lượng trống và các trung bình di chuyển của chúng;

  2. Xác định xu hướng theo chỉ số và đường trung bình;

  3. Chỉ khi có sự đồng thuận giữa hai kỹ thuật mới tạo ra tín hiệu giao dịch cuối cùng.

Bằng cách này, thông qua xác minh đa chỉ số, bạn có thể lọc ra một số tín hiệu giả và cải thiện độ chính xác của tín hiệu.

2 - Lợi thế chiến lược

Ưu điểm lớn nhất của chiến lược này là xác minh kết hợp nhiều chỉ số, tránh sự hạn chế của chỉ số đơn và tăng cường sự ổn định của tín hiệu.

Một lợi thế khác là sự kết hợp của hai loại công nghệ khác nhau, điều này làm tăng thêm tính toàn diện của phán đoán.

Cuối cùng, việc sử dụng kết hợp cũng cung cấp thêm các tham số cho các thử nghiệm tối ưu hóa.

Ba, rủi ro tiềm ẩn

Tuy nhiên, chiến lược này cũng có những vấn đề:

Đầu tiên, việc kết hợp nhiều chỉ số làm tăng sự khó khăn trong việc tối ưu hóa tham số, và thiết lập không đúng cách có thể dẫn đến quá tối ưu hóa.

Thứ hai, có thể có sự khác biệt giữa hai tín hiệu kỹ thuật, cần thiết phải thiết lập các quy tắc phán đoán rõ ràng.

Cuối cùng, một số chỉ số như chỉ số ngẫu nhiên vẫn còn bị tụt hậu.

Bốn nội dung, tóm tắt

Bài viết này mô tả chi tiết một chiến lược định lượng giao dịch thông qua xác minh nhiều chỉ số. Nó cải thiện chất lượng tín hiệu bằng cách sử dụng các chỉ số kết hợp, nhưng cũng cần chú ý đến các vấn đề như khó khăn trong việc tối ưu hóa tham số và chậm trễ trong chỉ số.

Mã nguồn chiến lược
/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/07/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Accumulation is a term used to describe a market controlled by buyers;
// whereas distribution is defined by a market controlled by sellers.
// Williams recommends trading this indicator based on divergences:
//  Distribution of the security is indicated when the security is making 
//  a new high and the A/D indicator is failing to make a new high. Sell.
//  Accumulation of the security is indicated when the security is making 
//  a new low and the A/D indicator is failing to make a new low. Buy. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


SWAD(Length) =>
    pos = 0.0
    xWAD = 0.0
    xPrice = close
    xWAD:= iff(close > nz(close[1], 0), nz(xWAD[1],0) + close - low[1], 
             iff(close < nz(close[1],0), nz(xWAD[1],0) + close - high[1],0))
    xWADMA = sma(xWAD, Length)
    pos:= iff(xWAD > xWADMA, 1,
             iff(xWAD < xWADMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Smoothed Williams AD", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Smoothed Williams AD ----")
LengthWillAD = input(14, step = 1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSWAD = SWAD(LengthWillAD)
pos = iff(posReversal123 == 1 and posSWAD == 1 , 1,
	   iff(posReversal123 == -1 and posSWAD == -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 )