Chiến lược giao dịch dao động hỗn loạn fractal

Tác giả:ChaoZhang, Ngày: 2023-09-18 15:10:09
Tags:

Tổng quan

Chiến lược này sử dụng chỉ số Fractal Chaos Oscillator (FCO) để xác định hướng xu hướng thị trường để theo xu hướng. FCO so sánh những thay đổi ở mức cao và thấp địa phương để đánh giá sự chuyển động của giá, với các giá trị từ -1 đến 1. Các giá trị cao hơn cho thấy xu hướng mạnh hơn. Đi dài khi FCO đạt được giá trị cao và ngắn khi đạt được giá trị thấp.

Chiến lược logic

Xác định mức cao và thấp địa phương bằng cách tìm kiếm các mô hình nến cụ thể. So sánh thay đổi giữa các nhóm cao / thấp liền kề để tính toán chỉ số FCO. Ví dụ, nếu nhóm cao / thấp mới nhất khác với nhóm trước, FCO là 1, cho thấy sức mạnh xu hướng tăng. Xác định hướng xu hướng dựa trên giá trị FCO - đi dài trên giá trị cao hơn và ngắn trên giá trị thấp hơn.

Ưu điểm

  • FCO đánh giá hiệu quả hướng xu hướng đơn giản
  • Không cần các thông số phức tạp, dễ sử dụng
  • Lợi nhuận cho giao dịch trong ngày ngắn hạn
  • Độ linh hoạt để đi dài hoặc ngắn khi cần thiết

Rủi ro

  • Nhận dạng mô hình không chính xác, có thể bỏ lỡ vòng quay
  • Không thể xác định chính xác sự đảo ngược xu hướng, rủi ro mất mát
  • Giao dịch nội ngày thường xuyên làm tăng chi phí giao dịch

Các rủi ro có thể được giảm thiểu thông qua tối ưu hóa tham số và thêm các chỉ số đảo ngược.

Cơ hội gia tăng

  • Kiểm tra các khoảng thời gian khác nhau để xác định mẫu
  • Tối ưu hóa các ngưỡng FCO dài / ngắn
  • Tham gia các đường trung bình động vv để xác định sự đảo ngược xu hướng
  • Kiểm tra độ bền trên các sản phẩm khác nhau

Kết luận

Chiến lược FCO đơn giản hóa việc đánh giá hướng xu hướng cho giao dịch ngắn hạn. Hiệu suất có thể được cải thiện thông qua điều chỉnh tham số. Một khái niệm theo xu hướng dễ thực hiện.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/02/2018
//   The value of Fractal Chaos Oscillator is calculated as the difference between 
// the most subtle movements of the market. In general, its value moves between 
// -1.000 and 1.000. The higher the value of the Fractal Chaos Oscillator, the 
// more one can say that it follows a certain trend – an increase in prices trend, 
// or a decrease in prices trend.
//
//   Being an indicator expressed in a numeric value, traders say that this is an 
// indicator that puts a value on the trendiness of the markets. When the FCO reaches 
// a high value, they initiate the “buy” operation, contrarily when the FCO reaches a 
// low value, they signal the “sell” action. This is an excellent indicator to use in 
// intra-day trading.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

strategy(title="Fractal Chaos Oscillator", overlay = false)
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xUpper = fractalUp(Pattern)
xLower = fractalDn(Pattern)
xRes = iff(xUpper != xUpper[1], 1, 
         iff(xLower != xLower[1], -1, 0))
pos = iff(xRes == 1, 1,
       iff(xRes == -1, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )           
plot(xRes, color=blue, title="FCO")

Thêm nữa