Chiến lược giao dịch theo đường biển êm dịu


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

Tổng quan

Chiến lược này dựa trên một chỉ số duy nhất để làm mịn đường nòng biển, để thực hiện các hoạt động mua bán theo xu hướng đơn giản. Chiến lược sử dụng chỉ số đường nòng biển mịn để xác định hướng xu hướng, kết hợp với hình dạng đường K lịch sử để đánh giá thời gian nhập cảnh để rút ra lợi nhuận.

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

Chiến lược này xây dựng đường cong bằng cách tính toán các đường trung bình di chuyển. Cụ thể, tính toán các đường trung bình di chuyển của giá mở, giá cao nhất, giá thấp nhất và giá đóng, sau đó tính toán đường cong bằng các giá mở, giá cao nhất, giá thấp nhất và giá đóng.

Xác định điều kiện mua: Giá mua K hiện tại lớn hơn giá mua K trước, giá mua K trước lớn hơn giá mua 2 K trước, gần 3 K là đường dương.

Xác định điều kiện bán: Giá đóng cửa K hiện tại nhỏ hơn giá đóng cửa K trước, giá đóng cửa K trước nhỏ hơn giá đóng cửa hai K trước, gần ba K đều là đường âm.

Các điều kiện mua và bán phải đáp ứng với tín hiệu gần nhất là 0 hoặc tín hiệu ngược lại, tránh giao dịch lặp lại liên tục.

Phân tích lợi thế

  • Sử dụng chỉ số duy nhất, logic chiến lược đơn giản và rõ ràng
  • Sử dụng khả năng theo dõi xu hướng của chỉ số đường biển
  • Kết hợp hình dạng đường K, tránh bỏ lỡ xu hướng hoặc hoạt động ngược
  • Phân tích các tín hiệu lặp đi lặp lại để giảm các giao dịch không cần thiết

Phân tích rủi ro

  • Đường Hắc Khang có xu hướng chậm phát triển và có thể sẽ bỏ lỡ một bước ngoặt.
  • Chỉ tính đến hình dạng gần 3K, thiếu phán đoán xu hướng dài hạn
  • Không đặt lệnh dừng, có thể dẫn đến tổn thất lớn hơn
  • Không tính đến môi trường thị trường lớn, dễ bị ảnh hưởng bởi rủi ro hệ thống

Có thể cải thiện bằng cách kết hợp các chỉ số khác để đánh giá xu hướng dài hạn, tối ưu hóa chiến lược dừng lỗ, chú ý đến môi trường lớn.

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

  • Thêm các chỉ số khác để xác định xu hướng dài hạn
  • Tối ưu hóa chiến lược dừng lỗ, thiết lập dừng di chuyển hoặc dừng phần trăm
  • Hãy cân nhắc các chỉ số thị trường lớn và tránh giao dịch trong thị trường bất ổn
  • Thiết lập tham số tối ưu hóa, điều chỉnh chu kỳ trung bình di chuyển và các tham số khác
  • Tăng các chỉ số năng lượng để đảm bảo hỗ trợ lượng giao dịch

Tóm tắt

Chiến lược này sử dụng chức năng theo dõi xu hướng của chỉ số đường biển, kết hợp với hình dạng đường K để đánh giá thời gian vào thị trường, kiểm soát tần số giao dịch bằng cách lọc các tín hiệu lặp lại. Lập luận của chiến lược đơn giản, rõ ràng và dễ thực hiện.

Mã nguồn chiến lược
/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Masoud Abdoli
//Heikin Ashi Smoothed Buy & Sell Strategy Rev.4
//Date: 01-Oct-2021
//@version=4

strategy(title="Abdoli's Heikin Ashi Smoothed Buy & Sell Strategy Rev.4", shorttitle="Heikin-Ashi Smoothed Rev.4", overlay=true,
 initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

MaPeriod = input (title="Moving Average Period?", type=input.integer, defval=65, minval=5, maxval=100, step=5)

maOpen  = ema(open , MaPeriod)
maHigh  = ema(high , MaPeriod)
maLow   = ema(low  , MaPeriod)
maClose = ema(close, MaPeriod)

haClose = (maOpen+maHigh+maLow+maClose)/4
haOpen = 0.0
haOpen:= na(haOpen[1]) ? (maOpen[1]+maClose[1])/2 : (haOpen[1]+haClose[1])/2
haHigh = max(maHigh, max(haClose, haOpen))
haLow  = min(maLow , max(haClose, haOpen))

plotcandle(haOpen, haHigh, haLow, haClose, title="heikin-Ashi smoothed", color=haOpen>haClose ? color.orange : color.blue)

B0 = haClose    - haOpen
B1 = haClose[1] - haOpen[1]
B2 = haClose[2] - haOpen[2]
BuyCondition = B0 > 0.0 and B1 > 0.0 and B2 > 0.0 and haClose > haClose[1] and haClose[1] > haClose[2]
SellCondition= B0 < 0.0 and B1 < 0.0 and B2 < 0.0 and haClose < haClose[1] and haClose[1] < haClose[2]

last_signal = 0
Buy_final  = BuyCondition  and (nz(last_signal[1]) == 0 or nz(last_signal[1]) ==-1)
Sell_final = SellCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1)
last_signal := Buy_final ? 1 : Sell_final ? -1 : last_signal[1]

plotshape(Buy_final , style=shape.labelup  , location=location.belowbar, color=color.blue, title="Buy label" , text="BUY" , textcolor=color.white)
plotshape(Sell_final, style=shape.labeldown, location=location.abovebar, color=color.red , title="Sell label", text="SELL", textcolor=color.white)

strategy.entry("Buy", strategy.long, when=Buy_final)
strategy.close("Buy", when=Sell_final)