Chiến lược giao dịch đảo ngược đa yếu tố

Tác giả:ChaoZhang, Ngày: 2023-09-19 21:13:04
Tags:

Tổng quan

Chiến lược này kết hợp nhiều chỉ số kỹ thuật để xác định sự đảo ngược giá, làm cho nó trở thành một chiến lược giao dịch đảo ngược dựa trên nhiều yếu tố. Nó tích hợp mô hình 123 với chỉ số hiệu quả phân cực (PFE), chỉ vào giao dịch khi cả hai đồng ý về tín hiệu để lọc các tín hiệu sai và cải thiện tỷ lệ thắng.

Chiến lược logic

Chiến lược bao gồm hai thành phần chính:

  1. Nhận dạng mô hình 123: Một tín hiệu mua được tạo ra khi đóng cửa tăng trong 2 ngày liên tiếp và sau đó giảm vào ngày thứ 3, với đường nhanh Stochastic dưới đường chậm. Một tín hiệu bán được tạo ra khi ngược lại xảy ra.

  2. Mức ngưỡng chỉ số PFE: PFE trên giới hạn trên cho thấy tín hiệu bán, PFE dưới giới hạn dưới cho thấy tín hiệu mua.

Các giao dịch chỉ được thực hiện khi cả mô hình 123 và chỉ số PFE đồng ý.

Mô hình 123 xác định khả năng đảo ngược. PFE đo hiệu quả xu hướng để tránh đột phá sai. Cùng nhau, chúng cải thiện độ chính xác thông qua xác nhận đa yếu tố.

Ưu điểm

  • 123 mô hình và PFE xác nhận lẫn nhau, giảm tín hiệu sai
  • PFE có cơ sở lý thuyết vững chắc để đánh giá hiệu quả giá
  • Động cơ đa yếu tố cải thiện độ chính xác
  • Kết hợp mô hình đảo ngược và chỉ số xu hướng cung cấp tính linh hoạt
  • Các tham số có thể tùy chỉnh thích nghi với thị trường thay đổi

Rủi ro và giảm thiểu

  • Các yếu tố cá nhân có thể cung cấp các tín hiệu sai
  • Điều chỉnh yếu tố cần tối ưu hóa liên tục
  • Các rủi ro thời gian nắm giữ ngắn, stop loss thường xuyên

Hạn chế:

  1. Các yếu tố bổ sung để cải thiện độ chính xác
  2. Tối ưu hóa tham số để tăng độ bền
  3. Phương pháp tối ưu hóa tự động để tìm các thông số tối ưu
  4. Sử dụng lỗ dừng cố định hoặc dừng lại

Cơ hội gia tăng

Chiến lược có thể được tăng cường thông qua:

  1. Đặt dấu chấm dứt dựa trên biến động
  2. Tự động tối ưu hóa tất cả các thông số thông qua máy học
  3. Giảm tần suất đảo ngược trong thời gian xu hướng mạnh
  4. Các chỉ số thích nghi để điều chỉnh biến động thị trường
  5. Kết hợp danh mục đầu tư để đa dạng hóa rủi ro và cải thiện lợi nhuận

Kết luận

Chiến lược này kết hợp nhiều yếu tố để xác định các điểm đảo ngược, cung cấp tính vững chắc về mặt lý thuyết và dễ thực hiện. Cách tiếp cận đa yếu tố cải thiện độ chính xác so với các chỉ số duy nhất.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/04/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
// The Polarized Fractal Efficiency (PFE) indicator measures the efficiency 
// of price movements by drawing on concepts from fractal geometry and chaos 
// theory. The more linear and efficient the price movement, the shorter the 
// distance the prices must travel between two points and thus the more efficient 
// the price movement.
//
// 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


PFE(Length,LengthEMA,BuyBand,SellBand) =>
    pos = 0.0
    PFE = sqrt(pow(close - close[Length], 2) + 100)
    C2C = sum(sqrt(pow((close - close[1]), 2) + 1), Length)
    xFracEff = iff(close - close[Length] > 0,  round((PFE / C2C) * 100) , round(-(PFE / C2C) * 100))
    xEMA = ema(xFracEff, LengthEMA)
    pos := iff(xEMA < SellBand, -1,
    	      iff(xEMA > BuyBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & PFE (Polarized Fractal Efficiency)", 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, "---- PFE ----")
LengthPFE = input(9, minval=1)
LengthEMA = input(5, minval=1)
BuyBand = input(50, step = 0.1)
SellBand = input(-50, step = 0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPFE = PFE(LengthPFE,LengthEMA,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posPFE == 1 , 1,
	   iff(posReversal123 == -1 and posPFE == -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 )

Thêm nữa