
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ả.
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:
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
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ế.
/*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)