Chiến lược kết hợp sức mạnh của Elder Ray Bull

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

img

Tổng quan

Chiến lược này kết hợp chiến lược đảo ngược 123 và chiến lược sức mạnh tăng trưởng Elder Ray để tạo ra các tín hiệu giao dịch kết hợp, đạt được cả khả năng theo dõi xu hướng và thu thập đảo ngược.

Chiến lược logic

Phần đảo ngược

Theo logic chiến lược đảo ngược trên trang 183 của cuốn sách của Chen Qin How I Tripped My Money in The Futures Market: đi dài khi giá đóng cao hơn giá đóng trước trong 2 ngày liên tiếp và đường chậm chốc chốc 9 ngày dưới 50; đi ngắn khi giá đóng thấp hơn giá đóng trước trong 2 ngày liên tiếp và đường nhanh chốc chốc chốc 9 ngày trên 50.

Phần năng lượng bò

Theo chỉ số Elder Ray của Tiến sĩ Alexander Elder: Mức trung bình chuyển động theo cấp số nhân 13 ngày (EMA) đại diện cho sự đồng thuận của thị trường về giá trị. Sức mạnh bò đo khả năng của người mua để thúc đẩy giá trên mức đồng thuận về giá trị. Sức mạnh gấu phản ánh khả năng của người bán để thúc đẩy giá dưới mức đồng thuận trung bình về giá trị. Sức mạnh bò được tính bằng cách trừ EMA 13 ngày từ mức cao nhất của ngày. Sức mạnh gấu trừ EMA 13 ngày từ mức thấp nhất của ngày.

Mức ngưỡng cho chỉ số sức mạnh tăng trong chiến lược này được đặt là 0, có nghĩa là bất kỳ giá trị nào lớn hơn 0 tạo ra tín hiệu giao dịch.

Các tín hiệu kết hợp

Một tín hiệu giao dịch cuối cùng được tạo ra khi tín hiệu đảo ngược và tín hiệu sức mạnh tăng thẳng hàng theo cùng một hướng.

Phân tích lợi thế

Đây là một chiến lược kết hợp tạo ra các tín hiệu giao dịch bằng cách sử dụng cả hai chiến lược đảo ngược và theo xu hướng, sở hữu những lợi thế của việc bắt đảo ngược và theo xu hướng.

Phần đảo ngược có thể khóa các cơ hội đảo ngược sau khi nhảy Gap. Phần sức mạnh tăng đảm bảo các vị trí chỉ được mở khi có xu hướng tồn tại. Kết hợp chúng lọc hiệu quả các đột phá sai và tránh bị mắc kẹt.

Các thông số rất linh hoạt để tối ưu hóa trên các sản phẩm và khung thời gian khác nhau để tìm kết hợp thông số tốt nhất.

Phân tích rủi ro

Khả năng liên kết giữa tín hiệu đảo ngược và tín hiệu sức mạnh tăng tương đối thấp, có thể dẫn đến các tín hiệu thưa thớt.

Phần đảo ngược có thể nhầm lẫn xác định hành động giá theo chiều ngang trong phạm vi là cơ hội đảo ngược, gây ra việc nhập cảnh sớm. Phần sức mạnh tăng có thể bỏ lỡ một số cơ hội đảo ngược. Sử dụng chúng cùng nhau có thể giảm thiểu những rủi ro này đến một mức độ nào đó. Các bộ lọc xu hướng đi trước có thể được giới thiệu để tối ưu hóa hơn nữa.

Hướng dẫn tối ưu hóa

  1. Thử nhiều kết hợp tham số để tìm các thiết lập tối ưu;
  2. Thêm các mô-đun bộ lọc xu hướng để tránh lập lại các vị trí mà không có xu hướng rõ ràng;
  3. Xem xét thêm các chiến lược dừng lỗ để kiểm soát lỗ trên mỗi giao dịch.

Tóm lại

Trong khi đó, các rủi ro như tín hiệu thưa thớt và đánh giá sai cần được chú ý. Tiếp theo, các bộ lọc xu hướng, dừng lỗ và các mô-đun khác có thể được giới thiệu để nâng cao hiệu suất thực tế.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/06/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
// Developed by Dr Alexander Elder, the Elder-ray indicator measures buying 
// and selling pressure in the market. The Elder-ray is often used as part 
// of the Triple Screen trading system but may also be used on its own.
// Dr Elder uses a 13-day exponential moving average (EMA) to indicate the 
// market consensus of value. Bull Power measures the ability of buyers to 
// drive prices above the consensus of value. Bear Power reflects the ability 
// of sellers to drive prices below the average consensus of value.
// Bull Power is calculated by subtracting the 13-day EMA from the day's High. 
// Bear power subtracts the 13-day EMA from the day's Low.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// 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

BP(Trigger,Length) =>
    pos = 0
    DayHigh = 0.0
    xPrice = close
    xMA = ema(xPrice,Length)
    DayHigh := iff(dayofmonth != dayofmonth[1], high, max(high, nz(DayHigh[1])))
    nRes = DayHigh - xMA
    pos := iff(nRes > Trigger, 1,
    	     iff(nRes < Trigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategy 123 Reversal & Elder Ray (Bull Power)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthBP = input(13, minval=1)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBP = BP(Trigger,LengthBP)
pos = iff(posReversal123 == 1 and posBP == 1 , 1,
	   iff(posReversal123 == -1 and posBP == -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