Triangle Breakout Trend Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-09-20 14:24:16
Tag:

Gambaran umum

Ini adalah strategi yang mengikuti tren. Ini pergi panjang ketika harga keluar dari formasi segitiga naik, dan menutup posisi ketika EMA cepat melintasi di bawah EMA menengah. Stop loss dan take profit juga diatur untuk mengendalikan risiko.

Logika Strategi

  1. Gunakan EMA cepat dan EMA menengah untuk menentukan arah tren.

  2. Gunakan harga tertinggi dan terendah dari N bar terakhir untuk menentukan apakah segitiga naik terbentuk.

  3. Setelah masuk, ketika EMA cepat melintasi di bawah EMA menengah, ini menunjukkan pembalikan tren dan memberikan sinyal keluar.

  4. Setel stop loss pada persentase tertentu di bawah harga masuk untuk stop loss exit.

  5. Tetapkan target mengambil keuntungan pada persentase tertentu di atas harga masuk untuk mengambil keuntungan parsial.

  6. Gunakan 200 hari EMA untuk menentukan arah tren keseluruhan, hanya perdagangan ketika tren naik.

Analisis Keuntungan

  1. Formasi segitiga menyaring kebocoran palsu dan meningkatkan akurasi entri.

  2. EMA cepat vs EMA menengah secara wajar membagi tren dan konsolidasi untuk menghindari whipsaws.

  3. Pengaturan stop loss dan take profit yang wajar mengendalikan kerugian perdagangan tunggal.

  4. Hanya berdagang dalam tren naik menghindari periode bergolak.

Analisis Risiko

  1. Jangkauan segitiga yang terlalu sempit dapat kehilangan tren, sementara jangkauan yang terlalu luas dapat meningkatkan perdagangan yang tidak perlu.

  2. Stop loss yang terlalu dekat cenderung berhenti terlalu dini, sementara terlalu luas gagal untuk mengendalikan kerugian.

  3. Pengaturan sebagian mengambil keuntungan yang tidak benar dapat menyebabkan kelebihan keuntungan.

  4. Parameter indikator tren yang salah dapat menyebabkan arah posisi yang salah. Optimasi backtest multi-produk diperlukan.

Arah Peningkatan

  1. Optimalkan parameter N untuk penentuan segitiga untuk menemukan nilai optimal.

  2. Uji kombinasi periode EMA yang berbeda untuk meningkatkan akurasi tren.

  3. Mengoptimalkan parameter stop loss dan take profit berdasarkan karakteristik produk.

  4. Tambahkan indikator lain seperti pola MACD, Bollinger breakout dll untuk meningkatkan kualitas sinyal.

  5. Tambahkan mekanisme pembukaan kembali untuk memperluas keuntungan ketika tren berlanjut.

Ringkasan

Strategi ini secara keseluruhan kuat dengan pembentukan segitiga yang meningkatkan akurasi sinyal. Ruang optimasi parameter yang besar ada untuk peningkatan lebih lanjut. Juga coba tambahkan lebih banyak indikator bantu atau meningkatkan stop loss / take profit untuk efisiensi yang lebih besar. Secara keseluruhan strategi ini memiliki potensi untuk menjadi tren kualitas mengikuti strategi.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)
// variables  BEGIN

numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)


HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint =  low > LL and high < HH

fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)

//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)

longCondition=fastEMAval>two100EMAval and tringlePoint

//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)

//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true,  when= longCondition and strategy.position_size<1)   

//Add
strategy.entry(id="TBT LE", comment="Add" , long=true,  when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)   


//barcolor(strategy.position_size>=1 ? color.blue : na)

//Take profit
takeProfitVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit",  qty=strategy.position_size/2,  when=close>=takeProfitVal and close<open and close<fastEMAval)   //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1  ? (close>takeProfitVal? color.purple : color.blue): na)

//Exit
strategy.close(id="TBT LE", comment="TBT Exit",   when=crossunder(fastEMAval,slowEMAval))


//stoploss
stopLossVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00

//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))


strategy.close(id="TBT LE", comment="SL Exit",   when= close < stopLossVal)

Lebih banyak