Chiến lược giao dịch đảo ngược động lực

Tác giả:ChaoZhang, Ngày: 2023-11-15 15:36:39
Tags:

img

Tổng quan

Chiến lược này kết hợp mô hình 123 đảo ngược và Ease of Movement (EOM) để giao dịch tại các điểm chuyển đổi. Mô hình 123 đảo ngược tạo ra tín hiệu khi giá hình thành các mô hình cụ thể trong 3 ngày liên tiếp. Chiến lược EOM sử dụng những thay đổi về giá và khối lượng để đo đạc động lực thị trường. Sự kết hợp của cả hai chiến lược xem xét các mô hình kỹ thuật cũng như động lực, cải thiện độ chính xác của tín hiệu giao dịch.

Chiến lược logic

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

  1. 123 Mô hình đảo ngược
  • Sử dụng Stoch để xác định mức mua quá mức và bán quá mức
  • Đi ngắn khi giá giảm trong 2 ngày liên tiếp và đường nhanh Stoch là trên đường chậm
  • Đi dài khi giá tăng trong 2 ngày liên tiếp và đường nhanh Stoch là dưới đường chậm
  1. Dễ dàng di chuyển
  • Tính toán điểm giữa của phạm vi ngày trước
  • Tính toán sự thay đổi ở điểm trung bình so với ngày trước
  • Tính toán tỷ lệ chuyển động giữa điểm và khối lượng
  • Tỷ lệ trên ngưỡng cho thấy tăng, dưới ngưỡng giảm

Chiến lược đi dài khi tín hiệu EOM và 123 thẳng hàng ở phía dài, và đi ngắn khi tín hiệu thẳng hàng ở phía ngắn.

Phân tích lợi thế

Những lợi thế của chiến lược này:

  1. Kết hợp các mô hình giá và động lực để có độ chính xác tín hiệu tốt hơn

  2. 123 mô hình bắt được các bước ngoặt, EOM đo xu hướng động lực, hai bổ sung cho nhau

  3. Stoch tránh những cú sốc trong quá trình củng cố

  4. Đơn giản và dễ thực hiện

  5. Các tham số có thể tùy chỉnh cho các môi trường thị trường khác nhau

Phân tích rủi ro

Những rủi ro cần xem xét:

  1. Tùy thuộc quá nhiều vào cài đặt tham số, cài đặt không phù hợp có thể dẫn đến giao dịch quá mức hoặc bỏ lỡ giao dịch

  2. Nhiều bộ lọc có thể tạo ra quá ít tín hiệu

  3. EOM nhạy cảm với biến động, có thể tạo ra tín hiệu sai

  4. Hiệu suất trực tiếp yếu hơn backtest, cần kiểm soát vị trí kích thước

  5. Chỉ phù hợp với các cổ phiếu xu hướng, không giới hạn thị trường

Hướng dẫn cải thiện

Chiến lược có thể được cải thiện bằng cách:

  1. Tối ưu hóa các tham số để cân bằng tần số và chất lượng tín hiệu

  2. Thêm stop loss để kiểm soát lỗ giao dịch duy nhất

  3. Thêm bộ lọc xu hướng để tránh giao dịch ngược xu hướng

  4. Bao gồm phân loại vị trí dựa trên biến động

  5. Sử dụng máy học để tối ưu hóa các tham số một cách năng động

Kết luận

Chiến lược này tích hợp các mô hình giá và động lực cho giá trị thực tế cao. Nhưng tần suất giao dịch, kiểm soát lỗ và rủi ro chống xu hướng cần phải được quản lý. Cải tiến thêm các thông số, dừng lỗ, lọc xu hướng có thể tăng sự ổn định và lợi nhuận. Lý thuyết rõ ràng và dễ thực hiện cho các nhà giao dịch lượng.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/04/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 indicator gauges the magnitude of price and volume movement. 
// The indicator returns both positive and negative values where a 
// positive value means the market has moved up from yesterday's value 
// and a negative value means the market has moved down. A large positive 
// or large negative value indicates a large move in price and/or lighter 
// volume. A small positive or small negative value indicates a small move 
// in price and/or heavier volume.
// A positive or negative numeric value. A positive value means the market 
// has moved up from yesterday's value, whereas, a negative value means the 
// market has moved down. 
//
// 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

EOM(BuyZone, SellZone) =>
    pos = 0
    xHigh = high
    xLow = low
    xVolume = volume
    xHalfRange = (xHigh - xLow) * 0.5
    xMidpointMove = mom(xHalfRange, 1)
    xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0)
    nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0)
    pos := iff(nRes > BuyZone, 1,
             iff(nRes < SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ease of Movement (EOM)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
BuyZone = input(4000, minval=1)
SellZone = input(-4000)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEOM = EOM(BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posEOM == 1 , 1,
	   iff(posReversal123 == -1 and posEOM == -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