Chiến lược giao dịch hỗn hợp chuyển động trung bình hai và ba đáy flash

Tác giả:ChaoZhang, Ngày: 2023-10-26 16:26:24
Tags:

img

Tổng quan

Chiến lược giao dịch này tận dụng đầy đủ những lợi thế của biến đổi trung bình động và các chỉ số kỹ thuật flash đáy ba cho ứng dụng kết hợp. Nó nắm bắt các cơ hội đảo ngược trong khi theo dõi xu hướng, lọc ra một số tín hiệu đột phá sai và có thể cải thiện hiệu quả tỷ lệ thắng của các hệ thống giao dịch.

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

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

  1. Sự kết hợp của trung bình di chuyển 2 ngày và 20 ngày. Các tín hiệu mua và bán được tạo ra khi trung bình di chuyển 2 ngày khác với trung bình di chuyển 20 ngày.

  2. Triple bottom flash pattern. Sự xuất hiện của mô hình này là một tín hiệu cho sự đảo ngược ngắn hạn. Điều kiện hình thành là: giá thấp nhất của giữa ngày thấp hơn ngày trước và ngày hôm sau, và giá đóng cửa của ngày hôm sau cao hơn giá cao nhất của ngày trước.

Khi các đường trung bình di chuyển 2 ngày và 20 ngày đồng thời hiển thị tín hiệu đảo ngược và phù hợp với hướng của tín hiệu mô hình nhấp nháy ba chiều dưới, hãy mua hoặc bán hành động.

Trong mã, các đường trung bình động 2 ngày và 20 ngày được tính toán trước. Khi đường trung bình động 2 ngày phá vỡ đường trung bình động 20 ngày lên hoặc xuống, tín hiệu mua / bán được tạo ra.

Khi mô hình nhấp nháy dưới ba lần được phát hiện, tín hiệu hướng mô hình được đặt thành 1 hoặc -1. Đọc tín hiệu mô hình của ngày trước, kết hợp nó với tín hiệu trung bình động hiện tại và tạo ra tín hiệu đầu vào cuối cùng.

Do đó, bằng cách lọc với sự kết hợp của các đường trung bình và mô hình chuyển động, một số tín hiệu sai có thể được lọc ra, làm cho chiến lược giao dịch đáng tin cậy hơn.

Ưu điểm

  1. Sự kết hợp của nhiều chỉ số kỹ thuật có thể bổ sung và xác minh lẫn nhau và cải thiện độ tin cậy tín hiệu.

  2. Sự đảo ngược trung bình di chuyển có thể nắm bắt các điểm đảo ngược xu hướng một cách kịp thời và tận dụng lợi thế của sự đảo ngược.

  3. Trung bình di chuyển 20 ngày theo dõi xu hướng trung và dài hạn, và trung bình di chuyển 2 ngày ghi lại các điểm đầu vào sau khi điều chỉnh ngắn hạn.

  4. Chiến lược không nhạy cảm với các thông số và dễ thực hiện và tối ưu hóa.

Rủi ro

  1. Các mô hình đảo ngược dễ bị đánh giá sai và kinh nghiệm là cần thiết để đánh giá độ tin cậy của chúng.

  2. Các tín hiệu đảo ngược có thể bị chậm, đòi hỏi phải quan sát các đặc điểm mô hình và điều chỉnh vị trí thích hợp.

  3. Kiểm tra và tối ưu hóa là cần thiết cho các loại giao dịch khác nhau, và một số thông số có thể cần phải được điều chỉnh.

  4. Kiểm soát lỗ cần phải đưa ra một cơ chế dừng lỗ để tránh bỏ lỡ các điểm đảo ngược quan trọng.

Tối ưu hóa

  1. Kiểm tra các kết hợp trung bình động khác nhau để chọn các thông số tốt nhất cho giống.

  2. Đưa ra các chỉ số phụ khác như khối lượng, Bollinger Bands, v.v. để xác minh nhiều chỉ số.

  3. Thêm một mô-đun dừng lỗ để kiểm soát rút tiền và rủi ro.

  4. Tối ưu hóa thời gian nhập cảnh để tránh các vấn đề sớm hoặc muộn.

  5. Thực hiện tối ưu hóa tham số cho các giống cụ thể để cải thiện khả năng thích nghi.

Tóm lại

Chiến lược này tận dụng đầy đủ những lợi thế của chuyển động trung bình đảo ngược và mô hình ngắn hạn để đạt được sự kết hợp hiệu quả của cả hai, có thể cải thiện sự ổn định và tỷ lệ thắng của hệ thống giao dịch. Nhưng kiểm soát rủi ro, kiểm tra tham số và tối ưu hóa là cần thiết để thích nghi với các đặc điểm của các loại khác nhau. Nhìn chung, chiến lược có một cấu trúc đơn giản và rõ ràng dễ thực hiện và là một chiến lược giao dịch đảo ngược xu hướng thực tế.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/12/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length ) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
	pos

BarR()=>
    pos = 0.0
    pos :=	iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
    	     iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true)
var I1  = "●═════ 2/20 EMA ═════●"
Length = input(14, minval=1, group = I1)
//var I2  = "●═════ 3-Bar-Reversal-Pattern ═════●"
var misc  = "●═════ MISC ═════●"
reverse = input(false, title="Trade reverse", group = misc)
var timePeriodHeader  = "●═════ Time Start ═════●"
d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader)
m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader)
y = input(2005, title="From Year", minval=0, group=timePeriodHeader)

StartTrade = true
prePos3Bar = BarR()

posEMA20 = EMA20(Length)
pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on)
pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1,
	   iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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