Chiến lược giao dịch Fractal Chaos Oscillator


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

Tổng quan

Phương pháp này dùng Fractal Chaos Oscillator (FCO) để đánh giá xu hướng thị trường và theo dõi xu hướng. FCO đánh giá xu hướng giá bằng cách so sánh sự thay đổi của các giá trị cực lớn và cực nhỏ tại địa phương, trong phạm vi từ -1 đến 1, số lượng cao hơn cho thấy xu hướng rõ ràng hơn.

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

Tính FCO được tính bằng cách tìm kiếm các giá trị cực lớn và cực nhỏ của một hình dạng K cụ thể. So sánh sự thay đổi của hai nhóm cực lớn cạnh nhau và tính toán chỉ số FCO. Ví dụ, khi một nhóm cực nhỏ tối đa mới nhất không đồng thời với nhóm trước đó, FCO là 1, cho thấy xu hướng tăng giá trở nên mạnh mẽ.

Phân tích lợi thế

  • Chỉ số FCO đánh giá xu hướng đơn giản và hiệu quả
  • Không cần thiết lập các tham số phức tạp, dễ sử dụng
  • Có thể kiếm được lợi nhuận trên đường ngắn, phù hợp với giao dịch trong ngày
  • Có thể chọn làm thêm hoặc làm rảnh theo nhu cầu

Phân tích rủi ro

  • Nhận dạng phân loại không hoàn toàn chính xác, có thể bỏ lỡ bước ngoặt
  • Không thể xác định chính xác điểm đảo ngược xu hướng, có nguy cơ thua lỗ
  • Giao dịch trong ngày thường xuyên, phí xử lý nặng nề

Các tham số có thể được tối ưu hóa thích hợp, hoặc kết hợp với các chỉ số khác để đánh giá xu hướng đảo ngược.

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

  • Kiểm tra các tham số chu kỳ phân loại khác nhau
  • Tối ưu hóa FCO làm thêm làm trống
  • Kết hợp các chỉ số như đường trung bình di chuyển để xác định xu hướng đảo ngược
  • Các tham số kiểm tra sức khỏe trong các giống khác nhau

Tóm tắt

Chiến lược FCO sử dụng các chỉ số đơn giản để xác định hướng xu hướng, phù hợp với giao dịch đường ngắn. Có thể nâng cao hiệu quả bằng các phương pháp như tối ưu hóa tham số. Đây là một chiến lược theo dõi xu hướng dễ thực hiện.

Mã nguồn chiến lược
/*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")