Chiến lược kết hợp đảo ngược và dòng tiền


Ngày tạo: 2023-09-17 22:37:54 sửa đổi lần cuối: 2023-09-17 22:58:03
sao chép: 0 Số nhấp chuột: 651
1
tập trung vào
1617
Người theo dõi

Chiến lược này thực hiện theo dõi xu hướng và giao dịch đảo ngược bằng cách kết hợp 123 hình thức đảo ngược với chỉ số lưu lượng tiền.

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

Đầu tiên, thông qua 123 hình thức đảo ngược để xác định điểm đảo ngược giá. Cụ thể, nếu giá đóng cửa giảm hai ngày trước, giá đóng cửa tăng vào ngày thứ ba và chỉ số ngẫu nhiên thấp hơn giá đóng cửa, tạo ra tín hiệu mua; Nếu giá đóng cửa tăng hai ngày trước, giá đóng cửa giảm vào ngày thứ ba và chỉ số ngẫu nhiên cao hơn giá đóng cửa, tạo ra tín hiệu bán.

Thứ hai, tính toán các chỉ số về dòng chảy tiền của đường nhanh và đường chậm. Đường nhanh bao gồm các chỉ số trung bình di chuyển của dòng chảy tiền trong thời gian gần đây, đường chậm là các chỉ số trung bình di chuyển của chu kỳ dài hơn. Nếu đường nhanh cao hơn đường chậm, xem xét như là dòng chảy tiền, tạo ra tín hiệu mua; ngược lại, tạo ra tín hiệu bán.

Cuối cùng, kết hợp các tín hiệu của 123 reversal với các chỉ số dòng tiền, tạo ra tín hiệu giao dịch nếu cả hai tín hiệu phù hợp.

Phân tích lợi thế

  • Kết hợp nhiều tín hiệu để tăng độ tin cậy của tín hiệu.
  • Hình thức đảo ngược 123 có thể nắm bắt điểm đảo ngược, chỉ số lưu lượng tiền để xác định dòng tiền.
  • Có thể điều chỉnh các tham số để tối ưu hóa hiệu suất của các giống và chu kỳ khác nhau.
  • Có thể giao dịch riêng với một trong những tín hiệu này.

Phân tích rủi ro

  • Hình dạng đảo ngược 123 có thể tạo ra tín hiệu sai.
  • Lưu lượng vốn bị trì trệ, không thể nắm bắt được các bước ngoặt kịp thời.
  • Một số tín hiệu kết hợp, chiến lược logic tương đối phức tạp.
  • Cần tối ưu hóa các tham số để tránh giao dịch quá mức.

Có thể kiểm soát rủi ro bằng cách tăng độ tin cậy của hình thức đảo ngược, thiết lập độ nhạy của chỉ số lưu lượng tiền và thêm logic dừng lỗ.

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

  • Kiểm tra các tổ hợp tham số khác nhau để tìm ra tham số tốt nhất.
  • Điều chỉnh giá trị mua và bán để giảm khả năng giao dịch sai.
  • Thêm các chỉ số kỹ thuật khác để cải thiện chất lượng tín hiệu.
  • Tham gia vào hệ thống ngăn chặn tổn thất để kiểm soát tổn thất đơn lẻ.
  • Tối ưu hóa chiến lược quản lý vốn, kiểm soát lỗ hổng rủi ro tổng thể.

Tóm tắt

Chiến lược này kết hợp các ưu điểm của giao dịch đảo ngược và theo dõi xu hướng, có thể xác định hiệu quả các điểm biến đổi của thị trường. Tuy nhiên, cần chú ý đến điều chỉnh tham số và kiểm soát rủi ro, đồng thời tránh tạo ra quá nhiều tín hiệu sai trong khi theo dõi xu hướng. Nếu được sử dụng tốt, có thể trở thành một trong những chiến lược giao dịch hiệu quả.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/02/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
//    Indicator plots Money Flow Indicator (Chaikin). This indicator looks 
//    to improve on Larry William's Accumulation Distribution formula that 
//    compared the closing price with the opening price. In the early 1970's, 
//    opening prices for stocks stopped being transmitted by the exchanges. 
//    This made it difficult to calculate Williams' formula. The Chaikin 
//    Oscillator uses the average price of the bar calculated as follows 
//    (High + Low) /2 instead of the Open.
//    The indicator subtracts a 10 period exponential moving average of the 
//    AccumDist function from a 3 period exponential moving average of the 
//    AccumDist function.  
//
// 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


MFI(Fast,Slow) =>
    pos = 0.0
    lenMax = max(Fast, Slow)
    lenMin = min(Fast, Slow)
    xDiv = (high - low) * volume
    SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
    SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
    emaMax = ema(SumMax, lenMax)
    emaMin = ema(SumMin, lenMin)
    nRes = emaMax - emaMin
    pos:= iff(nRes > 0, 1,
           iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Money Flow Indicator", 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, "---- Money Flow ----")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(Fast,Slow)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
	   iff(posReversal123 == -1 and posMFI == -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 )