Sự kết hợp chiến lược đảo ngược định lượng và khối lượng


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

Tổng quan

Chiến lược này là sự kết hợp của hai chiến lược giao dịch định lượng nhằm tạo ra tín hiệu giao dịch chính xác và đáng tin cậy hơn. Chiến lược đầu tiên dựa trên sự đảo ngược giá, chiến lược thứ hai dựa trên phân tích khối lượng giao dịch.

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

Chiến lược này bao gồm hai phần:

  1. Chiến lược đảo ngược

Sử dụng chỉ số STO để đánh giá tín hiệu đảo ngược. Khi giá đóng cửa tăng lên hai ngày và đường chậm STO thấp hơn 50, hãy làm nhiều; Khi giá đóng cửa giảm hai ngày và đường nhanh STO cao hơn 50.

  1. Chiến lược giao dịch

Tính toán quan hệ giá trị khối lượng giao dịch trong một chu kỳ nhất định, đánh giá hướng đa không, và xử lý trơn bằng phẳng.

Hai phần của chiến lược là nhiều thì làm nhiều, và không thì làm không.

Tín hiệu kết hợp có thể cải thiện chất lượng tín hiệu, trong đó bất kỳ chiến lược nào sẽ làm giảm đáng kể khả năng phát hiện tín hiệu giả.

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

  • Kết hợp hai chiến lược độc lập để tăng độ chính xác tín hiệu
  • Chiến lược xoay chuyển nắm bắt cơ hội, chiến lược khối lượng giao dịch định hướng tương lai
  • Hai loại chiến lược khác nhau xác thực lẫn nhau để giảm tín hiệu sai
  • Cách kết hợp đơn giản, trực tiếp và dễ thực hiện
  • Các tham số có thể được tối ưu hóa độc lập cho mỗi phần của chiến lược

Rủi ro chiến lược

  • Chiến lược đảo ngược dễ bị lừa, cần phải có cơ chế rút lui nghiêm ngặt
  • Phân tích khối lượng giao hàng có thể bị trì hoãn
  • Chỉ dựa trên số liệu định lượng, cần phân tích kỹ thuật
  • Trained1 cho một chuỗi dữ liệu dài hơn để tính phương tiện
  • Các tham số của các giống khác nhau không nhất thiết phải chung, cần được tối ưu hóa riêng lẻ

Các biện pháp sau đây có thể làm giảm nguy cơ:

  • Tối ưu hóa các tham số STO để cải thiện khả năng nhận diện ngược
  • Kết hợp với các chỉ số khác xác nhận doanh số vượt qua
  • Tối ưu hóa tham số chu kỳ trung bình
  • Phụ trợ định hình đồ họa
  • Các tham số thử nghiệm theo giống

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Các tham số tốt nhất để kiểm tra chỉ số STO

Điều chỉnh các tham số như giá trị K, giá trị D để tìm sự kết hợp tốt nhất

  1. Xác nhận lần thứ hai về đột phá giao dịch

Tham gia các chỉ số hỗ trợ như MACD, BOLL

  1. Tối ưu hóa tham số chu kỳ trung bình

Kiểm tra các tham số khác nhau của chu kỳ để có được phán đoán ổn định hơn

  1. Ghi hình đồ họa dựa trên tín hiệu kết hợp

Ví dụ, khi biến dạng xảy ra, chúng ta sẽ quay trở lại.

  1. Sự kết hợp các tham số thử nghiệm theo giống

Các thành phần khác nhau không nhất thiết phải được thử nghiệm riêng biệt

Tóm tắt

Chiến lược này có thể cải thiện hiệu quả của chiến lược bằng cách kết hợp hai loại chiến lược khác nhau, đảo ngược và giao dịch, xác minh lẫn nhau, có thể nâng cao chất lượng và độ chính xác của tín hiệu. Nhưng cũng cần chú ý đến tối ưu hóa tham số, chỉ số kỹ thuật hỗ trợ để cải thiện hiệu quả của chiến lược. Chúng ta có thể có được chiến lược kết hợp thực sự ổn định và đáng tin cậy bằng cách liên tục kiểm tra kết quả trả lại, điều chỉnh quy tắc tham số và kiểm tra trong thực tế.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/10/2020
// 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
// This is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// 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


FVI(Samples,Perma,Cintra,Cinter) =>
    pos = 0
    xhl2 = hl2
    xhlc3 = hlc3
    xClose = close
    xIntra = log(high) - log(low)
    xInter = log(xhlc3) - log(xhlc3[1])
    xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
    xStDevInter = stdev(sma(xInter, Samples) , Samples)
    xVolume = volume
    TP = xhlc3
    TP1 = xhlc3[1]
    Intra = xIntra
    Vintra = xStDevIntra
    Inter = xInter
    Vinter = xStDevInter
    CutOff = Cintra * Vintra + Cinter * Vinter
    MF = xClose - xhl2 + TP - TP1
    FveFactor =  iff(MF > CutOff * xClose, 1, 
                  iff(MF < -1 * CutOff * xClose, -1,  0))
    xVolumePlusMinus = xVolume * FveFactor
    Fvesum = sum(xVolumePlusMinus, Samples)
    VolSum = sum(xVolume, Samples)
    xFVE = (Fvesum / VolSum) * 100
    xEMAFVE = ema(xFVE, Perma)
    pos :=iff(xFVE > xEMAFVE, 1,
    	   iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1)
Cinter = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVI = FVI(Samples,Perma,Cintra,Cinter)
pos = iff(posReversal123 == 1 and posFVI == 1 , 1,
	   iff(posReversal123 == -1 and posFVI == -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 )