Strategi Stop Loss and Take Profit berdasarkan corak Doji

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

img

Ringkasan

Strategi ini adalah berdasarkan corak Doji. Apabila corak Doji muncul, pesanan berhenti beli diletakkan antara tinggi Doji dan tinggi lilin sebelumnya, dan pesanan berhenti jual diletakkan antara rendah Doji dan rendah lilin sebelumnya. Apabila harga mencetuskan pesanan berhenti, anda boleh memilih untuk keluar dengan kerugian berhenti tetap dan mengambil keuntungan, atau menggunakan harga tertinggi dan terendah corak Doji sebagai kerugian berhenti dan mengambil keuntungan. Strategi ini berfungsi dengan baik pada jangka masa yang lebih tinggi seperti harian dan mingguan untuk menapis bunyi bising.

Logika Strategi

Apabila corak Doji muncul, ia menunjukkan perubahan dalam hubungan bekalan dan permintaan, dengan kekuatan menjadi lebih seimbang, yang boleh membawa kepada pembalikan harga. Strategi ini memanfaatkan isyarat pembalikan harga yang ditunjukkan oleh Doji untuk menangkap peluang melalui pesanan berhenti. Khususnya, kriteria untuk menentukan corak Doji adalah:

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

Jika abs ((buka-tutup) <= (tinggi-rendah) * parameter Doji, ia dianggap corak Doji, dan perintah berhenti akan diletakkan.

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 badan lilin sebelumnya besar, pesanan berhenti beli diletakkan di antara tinggi Doji dan tinggi lilin sebelumnya. Jika lilin sebelumnya mempunyai badan kecil, pesanan berhenti beli diletakkan di tinggi Doji. Perintah berhenti jual mengikuti logik yang sama.

Terdapat dua pilihan untuk keluar:

  1. Stop loss tetap dan mengambil keuntungan
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 Kelebihan

Kelebihan strategi ini ialah:

  1. Mudah untuk dilaksanakan.
  2. Mengambil kesempatan daripada isyarat pembalikan harga yang cekap dari corak Doji.
  3. parameter stop loss dan mengambil keuntungan yang boleh disesuaikan untuk mengawal risiko
  4. Berfungsi dengan baik pada jangka masa yang lebih tinggi untuk menapis bunyi bising.

Analisis Risiko

Terdapat beberapa risiko dengan strategi ini:

  1. corak Doji tidak selalu membawa kepada pembalikan harga, mungkin menghadapi stop loss. penyelesaian adalah untuk menetapkan jarak stop loss yang munasabah untuk mengehadkan kerugian setiap perdagangan.
  2. terlalu banyak bunyi dalam isyarat Doji pada jangka masa yang lebih rendah.
  3. Risiko kerugian tanpa had tanpa stop loss dan mengambil keuntungan.

Arahan pengoptimuman

Beberapa cara untuk mengoptimumkan strategi:

  1. Mengoptimumkan parameter Doji untuk instrumen perdagangan yang berbeza.
  2. Uji kombinasi stop loss dan mengambil keuntungan yang berbeza.
  3. Hentikan kehilangan dinamik berdasarkan ATR.
  4. Gabungkan dengan penunjuk lain untuk menentukan kemasukan yang optimum.

Kesimpulan

Prestasi keseluruhan strategi ini adalah baik. Dengan menangkap peluang pembalikan harga Doji, ia dapat menghasilkan isyarat perdagangan yang baik. Juga mudah dilaksanakan dan boleh digunakan di pelbagai instrumen. Dengan ujian dan pengoptimuman berterusan, 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 lanjut