
Strategi ini didasarkan pada bentuk bintang Doji, ketika bentuk bintang Doji muncul, stop order pembelian ditempatkan di antara titik tinggi bintang Doji dan titik tinggi garis K sebelumnya, dan stop order penjualan ditempatkan di antara titik rendah bintang Doji dan titik rendah garis K sebelumnya. Setelah harga memicu stop order, ada pilihan untuk keluar dengan stop loss tetap, atau dengan harga tertinggi dan terendah dalam bentuk bintang Doji sebagai stop loss.
Ketika muncul bentuk bintang Doji, menunjukkan bahwa hubungan penawaran dan permintaan saat ini berubah, kekuatan pembeli dan penjual menjadi seimbang, dan harga dapat berbalik. Strategi ini adalah dengan memanfaatkan sinyal reversal harga yang diprediksi oleh bentuk bintang Doji, dengan menempatkan satu stop untuk menangkap peluang reversal. Secara khusus, untuk menilai bentuk bintang Doji adalah:
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)
Jika abs{open-close) <= (high-low)*Parameter Doji, yang ditentukan sebagai bentuk bintang Doji, ditempatkan pada titik berhenti. Posisi berhenti adalah sebagai berikut:
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
Jika entitas K-line sebelumnya lebih besar, maka stop order pembelian terletak di antara titik tertinggi bintang Doji dan titik tertinggi K-line sebelumnya. Jika entitas K-line sebelumnya lebih kecil, maka stop order pembelian adalah titik tertinggi bintang Doji.
Ada dua pilihan aturan pertandingan:
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)
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Strategi ini dapat dioptimalkan dari beberapa arah:
Strategi ini bekerja dengan baik secara keseluruhan, dengan menangkap peluang untuk membalikkan harga Doji, sinyal perdagangan yang baik dapat diperoleh. Strategi ini juga sederhana untuk dioperasikan, mudah diterapkan, cocok untuk berbagai jenis perdagangan, dan merupakan strategi perdagangan kuantitatif yang praktis. Dengan pengujian dan pengoptimalan terus menerus, diharapkan untuk mendapatkan efek strategi yang lebih baik.
/*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)