Chiến lược dừng lỗ và chốt lời dựa trên mô hình ngôi sao Doji


Ngày tạo: 2024-02-02 17:17:38 sửa đổi lần cuối: 2024-02-02 17:17:38
sao chép: 0 Số nhấp chuột: 698
1
tập trung vào
1617
Người theo dõi

Chiến lược dừng lỗ và chốt lời dựa trên mô hình ngôi sao Doji

Tổng quan

Chiến lược này dựa trên hình dạng sao Doji, khi hình dạng sao Doji xuất hiện, đặt lệnh dừng mua giữa điểm cao của sao Doji và điểm cao của dòng K trước đó, đặt lệnh dừng bán giữa điểm thấp của sao Doji và điểm thấp của dòng K trước đó. Khi giá kích hoạt lệnh dừng, có thể chọn để dừng lỗ cố định, hoặc với giá cao nhất và thấp nhất của hình dạng sao Doji làm dừng lỗ. Chiến lược này phù hợp để hoạt động trong các khung thời gian cao như đường ngày và đường tuần hoàn, có thể lọc tiếng ồn hiệu quả.

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

Khi hình dạng sao Doji xuất hiện, nó cho thấy rằng mối quan hệ cung cầu hiện tại đã thay đổi, sức mạnh của cả hai bên mua và bán đang cân bằng và giá có thể bị đảo ngược. Chiến lược này chính là sử dụng tín hiệu đảo ngược giá được dự báo bởi hình dạng sao Doji, bằng cách đặt đơn dừng để nắm bắt cơ hội đảo ngược. Cụ thể, để đánh giá hình dạng sao Doji là:

body=close-open  
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)

Nếu abs ((open-close) <= (high-low)*Các tham số Doji, được xác định là hình sao Doji, tại thời điểm này đặt bảng dừng. Vị trí bảng dừng như sau:

longDist= longcandle[1] and range[1]>range? high: max(high,high[1]) 
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])

Nếu một thực thể K-đường trước là lớn hơn, hãy mua lệnh dừng nằm giữa điểm cao của Doji và điểm cao của K-đường trước. Nếu một thực thể K-đường trước là nhỏ hơn, hãy mua lệnh dừng là điểm cao của Doji.

Có hai lựa chọn về quy tắc ra sân:

  1. Bỏ ra với lỗ dừng cố định
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP) 
  1. Bắt đầu với giá cao nhất của Doji Stars và giá thấp nhất của Doji Stars
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Nó hoạt động đơn giản và dễ thực hiện.
  2. Dùng hiệu quả tín hiệu Doji Star để nắm bắt cơ hội.
  3. Có thể cấu hình các tham số Stop Loss Stop và kiểm soát rủi ro.
  4. Phương pháp này có thể được sử dụng cho các khung thời gian cao và có thể lọc tiếng ồn.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Doji Star không nhất thiết phải dẫn đến sự đảo ngược giá cả, có thể xảy ra dừng lỗ. Giải pháp là thiết lập khoảng cách dừng lỗ hợp lý, kiểm soát tổn thất đơn.
  2. Doji có thể gây ra quá nhiều tiếng ồn khi hoạt động trên các khung thời gian thấp. Giải pháp là chỉ hoạt động trên các khung thời gian cao như đường tròn mặt trời.
  3. Nếu không thiết lập Stop Loss Stop, có nguy cơ mất mát vô hạn. Giải pháp là sử dụng đúng chức năng Stop Loss Stop.

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

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Tối ưu hóa các tham số Doji để tìm ra sự kết hợp tham số tốt nhất cho các loại giao dịch khác nhau.
  2. Kiểm tra các tham số dừng lỗ khác nhau để tìm ra sự kết hợp tốt nhất.
  3. Khoảng cách dừng dựa trên tính toán động ATR.
  4. Kết hợp với các chỉ số khác để xác định thời điểm tốt nhất để nhập học.

Tóm tắt

Chiến lược này hoạt động tốt, có thể nhận được tín hiệu giao dịch tốt bằng cách nắm bắt cơ hội đảo ngược giá Doji. Đồng thời, chiến lược hoạt động đơn giản, dễ thực hiện, phù hợp với nhiều loại giao dịch, là một chiến lược giao dịch định lượng thực tế.

Mã nguồn chiến lược
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//This is a simple strategy based on Doji star candlestick
//It places two orders: buy stop at doji star high or previous candle high and sell stop at doji star low or previous candle low.
//This strategy works very well with high time frames like Weekly TF because it eliminates the noise in doji formation.
//

strategy("Doji strategy W", overlay=true, calc_on_every_tick=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

//INPUTS
//MinDistance=input(100,'Minimum distance in ticks')
Use_SL_TP=input(true,'Use stop loss and take profit?')
TP=input(200,'Take Profit in ticks')
SL=input(200,'Stop Loss in tiks')
Doji = input(0.05, minval=0.01, title="Doji size", step=0.01)

//VARIABILI
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
longcandle= (ratio>0.6)

//Doji
data=(abs(open - close) <= (high - low) * Doji)
plotchar(data, title="Doji", text='Doji', color=black)
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
dojilow=data==1?low:na
dojihigh=data==1?high:na

goStar=data==1?true:false
//////////////////////////////////////////////////////////////////

//STRATEGY

strategy.order("buy stop",true,stop=longDist,  oca_name="Dojy Entry",when=goStar)
strategy.order("sell stop",false,stop=shortDist, oca_name="Dojy Entry",when=goStar)

strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.exit("exit sell","sell stop",loss=SL,profit=TP, when=Use_SL_TP)

strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
strategy.exit("exit buy","buy stop",profit=TP, when=not Use_SL_TP)
strategy.close("sell stop",when=not Use_SL_TP and close>dojihigh)
strategy.exit("exit sell","sell stop",profit=TP, when=not Use_SL_TP)