Strategi Stop Loss and Take Profit Berdasarkan Pola Doji

Penulis:ChaoZhang, Tanggal: 2024-02-02 17:17:38
Tag:

img

Gambaran umum

Strategi ini didasarkan pada pola Doji. Ketika pola Doji muncul, buy stop order ditempatkan antara tinggi Doji dan tinggi lilin sebelumnya, dan sell stop order ditempatkan antara rendah Doji dan rendah lilin sebelumnya. Ketika harga memicu stop order, Anda dapat memilih untuk keluar dengan stop loss tetap dan mengambil keuntungan, atau menggunakan harga tertinggi dan terendah dari pola Doji sebagai stop loss dan mengambil keuntungan. Strategi ini bekerja dengan baik pada jangka waktu yang lebih tinggi seperti harian dan mingguan untuk menyaring kebisingan.

Logika Strategi

Ketika pola Doji muncul, itu menunjukkan perubahan dalam hubungan penawaran dan permintaan, dengan kekuatan menjadi lebih seimbang, yang dapat menyebabkan pembalikan harga. Strategi ini memanfaatkan sinyal pembalikan harga yang ditunjukkan oleh Doji untuk menangkap peluang melalui perintah berhenti. Secara khusus, kriteria untuk menentukan pola 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, itu dianggap pola Doji, dan perintah berhenti akan ditempatkan.

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 body lilin sebelumnya besar, buy stop order ditempatkan di antara high Doji dan high lilin sebelumnya. jika lilin sebelumnya memiliki body kecil, buy stop order ditempatkan di high Doji. sell stop order mengikuti logika yang sama.

Ada dua pilihan untuk keluar:

  1. Stop loss dan take profit tetap
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
  1. Gunakan harga tertinggi dan terendah Doji sebagai stop loss dan mengambil keuntungan
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow) 

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. Sederhana untuk diterapkan.
  2. Mengambil keuntungan dari sinyal pembalikan harga yang efisien dari pola Doji.
  3. Stop loss yang dapat disesuaikan dan parameter mengambil keuntungan untuk mengendalikan risiko.
  4. Bekerja dengan baik pada jangka waktu yang lebih tinggi untuk menyaring kebisingan.

Analisis Risiko

Ada beberapa risiko dengan strategi ini:

  1. Pola Doji tidak selalu mengarah pada pembalikan harga, mungkin menghadapi stop loss. Solusi adalah dengan menetapkan jarak stop loss yang wajar untuk membatasi kerugian per perdagangan.
  2. terlalu banyak kebisingan dalam sinyal Doji pada jangka waktu yang lebih rendah.
  3. Risiko kerugian tak terbatas tanpa stop loss dan mengambil keuntungan.

Arahan Optimasi

Beberapa cara untuk mengoptimalkan strategi:

  1. Mengoptimalkan parameter Doji untuk instrumen perdagangan yang berbeda.
  2. Uji kombinasi stop loss dan take profit yang berbeda.
  3. Stop loss dinamis berdasarkan ATR.
  4. Gabungkan dengan indikator lain untuk menentukan entri yang optimal.

Kesimpulan

Performa keseluruhan strategi ini baik. Dengan menangkap peluang pembalikan harga Doji, ini dapat menghasilkan sinyal perdagangan yang layak. Juga sederhana untuk diterapkan dan berlaku di berbagai instrumen. Dengan pengujian dan pengoptimalan berkelanjutan, hasil yang lebih baik dapat diharapkan.


/*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)
    
    



Lebih banyak