Strategi Mengikuti Trend Breakout Segitiga


Tarikh penciptaan: 2023-09-20 14:24:16 Akhirnya diubah suai: 2023-09-20 14:24:16
Salin: 0 Bilangan klik: 623
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah strategi trend-following. Ia dilakukan apabila harga menembusi bentuk segitiga ke atas, dan ia ditutup apabila EMA cepat menembusi EMA pertengahan. Ia juga menetapkan titik berhenti dan berhenti untuk mengawal risiko.

Prinsip Strategi

  1. Gunakan EMA pantas dan EMA pertengahan untuk menentukan arah trend. EMA pantas di atas EMA pertengahan adalah isyarat bullish.

  2. Gunakan harga tertinggi dan terendah pada garis N-root K terkini untuk menentukan sama ada ia membentuk segitiga ke atas.

  3. Selepas masuk ke pasaran, apabila EMA pantas menembusi EMA pertengahan, ia menganggap trend berbalik dan menghantar isyarat kedudukan kosong.

  4. Tetapkan titik hentian kerugian sebagai harga masuk pasti peratusan di bawah, hentian kerugian keluar.

  5. Tetapkan titik penangguhan sebagai harga masuk mestilah peratusan di atas, dan sebahagian penangguhan keluar.

  6. Menggunakan EMA 200 hari untuk menentukan arah trend keseluruhan, hanya beroperasi apabila trend meningkat.

Analisis kelebihan

  1. Penembusan palsu menggunakan penapis bentuk segitiga untuk meningkatkan ketepatan masuk.

  2. EMA cepat dan EMA pertengahan memisahkan trend dan guncangan dengan bijak untuk mengelakkan terikat.

  3. Pengaturan stop loss dan stop stop adalah munasabah untuk mengawal kerugian tunggal.

  4. Hanya beroperasi semasa trend ke atas, untuk mengelakkan tahap penyesuaian.

Analisis risiko

  1. Julat segitiga terlalu kecil mungkin terlepas trend, terlalu besar mungkin menambah perdagangan yang tidak penting. Parameter N. yang perlu dioptimumkan.

  2. Terlalu dekat dengan titik hentian mudah untuk dipukul, terlalu jauh sukar untuk mengawal kerugian. Perlu menilai peranan parameter dan mengoptimumkannya.

  3. Sesetengah penyesuaian yang tidak betul boleh menyebabkan keuntungan yang berlebihan. Perlu menilai perkadaran yang wajar.

  4. Parameter penunjuk trend yang tidak tepat boleh menyebabkan arah pegangan yang salah. Perlu pengoptimuman pengesanan balik pelbagai jenis.

Arah pengoptimuman

  1. Optimumkan parameter N yang ditentukan oleh segitiga, cari nilai terbaik.

  2. Uji kombinasi kitaran EMA yang berbeza untuk meningkatkan ketepatan penilaian trend.

  3. Optimumkan parameter stop loss mengikut ciri-ciri pelbagai jenis.

  4. Menambah penghakiman indikator lain, seperti bentuk MACD, penembusan pita Brin, dan lain-lain untuk meningkatkan kualiti isyarat.

  5. Menambah mekanisme reopen untuk memanjangkan tempoh keuntungan jika trend berterusan.

ringkaskan

Strategi ini secara keseluruhannya lebih mantap, dengan penentuan segitiga dapat menyaring penembusan palsu secara berkesan. Ruang pengoptimuman parameter yang lebih besar, diharapkan dapat memperoleh kesan yang lebih baik. Selain itu, anda boleh mencuba untuk menambahkan lebih banyak indikator penilaian tambahan, atau memperbaiki strategi stop loss, untuk meningkatkan lagi kesan strategi. Secara keseluruhan, strategi ini berpotensi menjadi strategi pemantauan trend yang unggul.

Kod sumber 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)