Chiến lược đột phá giá đảo ngược đường trung bình động kép


Ngày tạo: 2023-12-07 18:15:12 sửa đổi lần cuối: 2023-12-07 18:15:12
sao chép: 0 Số nhấp chuột: 598
1
tập trung vào
1621
Người theo dõi

Chiến lược đột phá giá đảo ngược đường trung bình động kép

Tổng quan

Chiến lược phá vỡ giá bằng cách kết hợp các tín hiệu giao dịch kép để tìm kiếm thời gian nhập cảnh chất lượng cao hơn. Chiến lược này sử dụng đường trung bình di chuyển 9 ngày và đường ray trên và dưới để xây dựng khung phá vỡ cơ bản, sau đó sử dụng hướng cơ hội phán đoán hình dạng 123, sau đó giới thiệu tín hiệu lọc chỉ số ngẫu nhiên, cuối cùng tạo ra các quy tắc nhập cảnh nghiêm ngặt hơn. Phương pháp lọc kết hợp này có thể làm giảm tần suất giao dịch hiệu quả trong khi đảm bảo chất lượng tín hiệu, phù hợp với việc nắm giữ đường dài trung bình.

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

Chiến lược phá vỡ giá hai đường trung bình và đảo ngược được tạo thành từ hai chiến lược con.

Chiến lược thứ nhất là đánh giá 123 hình dạng. Chiến lược này sử dụng mối quan hệ giá đóng cửa hai ngày trước để đánh giá xu hướng đột phá có thể của giá trong tương lai. Nếu giá đóng cửa ngày hôm nay tăng so với giá đóng cửa ngày hôm trước và giá đóng cửa hai ngày trước giảm, thì xem đó là tín hiệu mua; Nếu giá đóng cửa ngày hôm nay giảm so với giá đóng cửa ngày trước và giá đóng cửa hai ngày trước tăng, thì xem đó là tín hiệu bán.

Chiến lược thứ hai là đột phá kênh đường trung bình di chuyển. Chiến lược này tính toán các đường trung bình di chuyển chỉ số cho một chu kỳ nhất định (ví dụ: 9 ngày) và sau đó thêm một tỷ lệ phần trăm nào đó trên và dưới nó như một đường dẫn lên và xuống. Nếu giá lên đường dẫn lên sẽ tạo ra tín hiệu bán và nếu giá xuống đường dẫn sẽ tạo ra tín hiệu mua.

Cuối cùng, chỉ khi các tín hiệu của hai chiến lược con phù hợp với nhau, tức là tín hiệu đảo ngược hình dạng 123 và tín hiệu đồng hướng phá vỡ kênh, thì cuối cùng sẽ tạo ra tín hiệu thực sự hướng dẫn giao dịch thực tế. Cơ chế lọc kép này có thể lọc ra một lượng lớn tín hiệu giả, giảm tần suất giao dịch và đảm bảo mỗi giao dịch có độ tin cậy cao.

Phân tích lợi thế

Chiến lược phá vỡ giá hai đường trung bình và đảo ngược sử dụng nhiều phương pháp phân tích tổng hợp, có những ưu điểm sau:

  1. Cơ chế lọc tín hiệu kép, có thể giảm hiệu quả tín hiệu vô hiệu, làm cho mỗi giao dịch có chất lượng cao hơn.

  2. 123 hình thức phán đoán thuộc chiến lược đảo ngược trong thời gian ngắn, đột phá kênh chuyển vị trí thuộc chiến lược theo dõi xu hướng đường dài trung bình, sử dụng kết hợp có thể thực hiện hợp tác đường dài ngắn trung bình, hiệu quả lợi nhuận tốt hơn.

  3. Thông qua việc điều chỉnh chiều cao đường ray lên xuống của kênh, bạn có thể tự do điều chỉnh tần số tín hiệu để phù hợp với sở thích giao dịch khác nhau.

  4. Sử dụng đường trung bình 9 ngày làm trục trung tâm của kênh, lựa chọn tham số hợp lý hơn, tránh tín hiệu quá thường xuyên.

  5. Sử dụng các chỉ số ngẫu nhiên để đánh giá khu vực mua và bán quá mức, bạn có thể tránh bị mắc kẹt trong tình huống chấn động.

Phân tích rủi ro

Chiến lược phá vỡ giá của đường hai chiều và đường hai chiều cũng có một số rủi ro, chủ yếu tập trung vào các khía cạnh sau:

  1. Một số cơ hội mà các chiến lược đơn phương có thể nắm bắt được sẽ bị bỏ lỡ bởi các cơ chế tín hiệu lọc kép, và có thể có một số rủi ro bị bỏ lỡ.

  2. 123 không có khả năng lọc hoàn toàn tất cả các đột phá giả mạo, và nếu sử dụng không đúng cách có thể dẫn đến tổn thất.

  3. Nếu thị trường thay đổi mạnh, thiết lập vị trí dừng lỗ không đúng có thể dẫn đến tổn thất lớn.

  4. Logic điều kiện của ifft phức tạp, các tham số không đúng dễ gây ra lỗi logic, dẫn đến việc đánh giá tín hiệu không hiệu quả.

  5. Dữ liệu ngoài mẫu có thể ảnh hưởng đến tính ổn định của tham số và cần phải tối ưu hóa các tham số động.

Hướng tối ưu hóa

Chiến lược phá vỡ giá hai đường trung bình và đảo ngược có thể được tối ưu hóa:

  1. Có thể thử nghiệm các loại đường trung bình khác nhau, chọn các tham số để tạo ra chất lượng tín hiệu tốt hơn và ổn định hơn.

  2. Lần băng thông kênh có thể được lựa chọn để so sánh phù hợp với đặc điểm dữ liệu của giống cụ thể.

  3. Có thể kết hợp với Stop Loss để kiểm soát tỷ lệ lỗ tối đa.

  4. Các tham số tối ưu hóa động của mô hình học máy có thể được đưa vào để làm cho chiến lược trở nên mạnh mẽ hơn.

  5. Có thể thêm các bộ lọc về khối lượng giao dịch hoặc biến động để tránh quá nhiều giao dịch trong tình trạng biến động.

Tóm tắt

Chiến lược phá vỡ giá hai chiều bằng cách xác minh lại cơ chế pha sóng hai lần, kết hợp thành công các biến đổi ngắn hạn với theo dõi xu hướng đường dài và trung bình để tạo ra một hệ thống giao dịch hiệu quả, có thể lọc hiệu quả các tín hiệu không hiệu quả, chọn cơ hội nhập vào chất lượng cao và có không gian tùy biến mạnh mẽ. Chiến lược này là một khung chung, có tiềm năng sử dụng lớn trong điều chỉnh tham số và tối ưu hóa học máy.

Mã nguồn chiến lược
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/03/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
// Moving Average Displaced Envelope. These envelopes are calculated 
// by multiplying percentage factors with their displaced expotential 
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and 
// quality of the signals. If a previous high goes above the envelope 
// a sell signal is generated. Conversely, if the previous low goes below 
// the envelope a buy signal is given.
//
// 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


MADE(Price,Period, perAb, perBl, disp) =>
    pos = 0.0
    sEMA = ema(Price, Period)
    top = sEMA[disp] * ((100 + perAb)/100)
    bott = sEMA[disp]* ((100 - perBl)/100)
    pos := iff(close < bott , 1,
    	     iff(close > top, -1, pos[1])) 
    pos

strategy(title="Combo Backtest 123 Reversal & MA Displaced Envelope", 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, "---- MA Displaced Envelope ----")
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1) 
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMADE = MADE(Price,Period, perAb, perBl, disp)
pos = iff(posReversal123 == 1 and posMADE == 1 , 1,
	   iff(posReversal123 == -1 and posMADE == -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 )