Chiến lược tổng hợp tạo ra sự giàu có

Tác giả:ChaoZhang, Ngày: 2023-11-01 16:28:55
Tags:

img

Tổng quan

Chiến lược này là một chiến lược giao dịch tổng hợp nhằm mục đích kiếm lợi nhuận trong trung hạn đến ngắn hạn. Nó tích hợp chiến lược 123 Reversal và chiến lược Awesome Oscillator để tận dụng điểm mạnh của cả hai và có được các tín hiệu giao dịch đáng tin cậy hơn.

Chiến lược logic

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

123 Chiến lược đảo ngược

Phần này được chuyển đổi từ chiến lược đảo ngược được mô tả ở trang 183 của cuốn sách How I Tripped My Money in the Futures Market của Ulf Jensen. Nó đi dài khi giá đóng cao hơn giá đóng trước trong 2 ngày liên tiếp và Stochastic chậm 9 ngày dưới 50. Nó đi ngắn khi giá đóng thấp hơn giá đóng trước trong 2 ngày liên tiếp và Stochastic nhanh 9 ngày trên 50.

Chiến lược dao động tuyệt vời

Phần này sử dụng chỉ số Awesome Oscillator, so sánh giá trị AO hiện tại với giá trị trước. Nếu giá trị AO hiện tại cao hơn giá trị trước, nó cho thấy cơ hội tốt để mua mua và màu thanh biểu đồ là màu xanh. Nếu giá trị AO hiện tại không cao hơn giá trị trước, nó cho thấy cơ hội tốt để mua mua và màu thanh là màu đỏ.

Tín hiệu kết hợp được tạo ra như sau: nếu cả hai chiến lược 123 Reversal và Awesome Oscillator đều cung cấp tín hiệu mua, hãy áp dụng chiến lược dài; nếu cả hai cung cấp tín hiệu bán, hãy áp dụng chiến lược ngắn.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược tổng hợp này là nó kết hợp các điểm mạnh của hai loại chiến lược khác nhau, cải thiện độ tin cậy và ổn định của tín hiệu giao dịch.

Cụ thể, chiến lược 123 Reversal có thể áp dụng nhiều hơn trong trung hạn đến ngắn hạn và có thể nắm bắt các cơ hội đảo ngược. Chiến lược Awesome Oscillator tập trung nhiều hơn vào xu hướng ngắn hạn và nhạy cảm hơn. Hai chiến lược bổ sung lẫn nhau, giúp lọc ra các tín hiệu sai và nắm bắt các cơ hội nhập cảnh tốt hơn trong các giai đoạn khác nhau.

Ngoài ra, chiến lược này sử dụng toàn diện thông tin đường K và chỉ số dao động, xem xét cả hành động giá và mối quan hệ giá khối lượng để có một cách tiếp cận toàn diện hơn.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là việc kết hợp nhiều chiến lược cũng làm tăng rủi ro cá nhân của họ.

Chiến lược 123 Reversal không thể tránh hoàn toàn nguy cơ bị mắc kẹt trong thị trường giới hạn phạm vi. Chiến lược Awesome Oscillator cũng nhạy cảm với biến động thị trường ngắn hạn. Các tín hiệu không chính xác từ cả hai chiến lược sẽ được khuếch đại.

Ngoài ra, cài đặt tham số cũng ảnh hưởng đến hiệu suất chiến lược.

Để giảm thiểu rủi ro, kích thước đúng các vị trí để hạn chế downside trên các giao dịch cá nhân.

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

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

  1. Kiểm tra và tối ưu hóa các thông số để tìm ra sự kết hợp các thông số tối ưu.

  2. Thêm các chỉ số hoặc bộ lọc khác để cải thiện thêm chất lượng tín hiệu.

  3. Tối ưu hóa trên các khung thời gian khác nhau cho một cách tiếp cận nhiều khung thời gian.

  4. Thêm dừng động để kiểm soát tốt hơn rủi ro.

  5. Xem xét chi phí giao dịch thực tế và xác định các tiêu chí nhập / xuất.

  6. Xem xét hướng xu hướng chính để tránh giao dịch ngược xu hướng.

Kết luận

Chiến lược này kết hợp các điểm mạnh của các chiến lược 123 Reversal và Awesome Oscillator, tăng độ tin cậy tín hiệu trong khi duy trì tính linh hoạt và nhạy cảm với những thay đổi của thị trường.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/08/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
//    This indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// 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


BWAC(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = sma(hl2, nLengthFast)
    xSMA2_hl2 = sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    pos:= iff(nRes > nRes[1], 1,
             iff(nRes < nRes[1], -1, nz(pos[1], 0)))  
    pos

strategy(title="Combo Backtest 123 Reversal & Awesome Oscillator (AC)", 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, "---- Awesome Oscillator (AC) ----")
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBWAC = BWAC(nLengthSlow,nLengthFast)
pos = iff(posReversal123 == 1 and posBWAC == 1 , 1,
	   iff(posReversal123 == -1 and posBWAC == -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