Ini adalah strategi trend berikut. Ia pergi lama apabila harga keluar dari pembentukan segitiga menaik, dan menutup kedudukan apabila EMA cepat melintasi di bawah EMA sederhana. Hentikan kerugian dan ambil keuntungan juga ditetapkan untuk mengawal risiko.
Gunakan EMA pantas dan EMA sederhana untuk menentukan arah trend.
Gunakan harga tertinggi dan terendah N bar terakhir untuk menentukan sama ada segitiga menaik terbentuk. Pembentukan segitiga memberikan isyarat panjang.
Selepas masuk, apabila EMA pantas melintasi di bawah EMA sederhana, ia menunjukkan pembalikan trend dan memberi isyarat keluar.
Tetapkan stop loss pada peratusan tertentu di bawah harga masuk untuk keluar stop loss.
Tetapkan sasaran mengambil keuntungan pada peratusan tertentu di atas harga permulaan untuk mengambil keuntungan separa.
Gunakan EMA 200 hari untuk menentukan arah trend keseluruhan, hanya berdagang apabila trend naik.
Pembentukan segitiga menapis pelarian palsu dan meningkatkan ketepatan masuk.
EMA pantas vs EMA sederhana membahagikan trend dan penyatuan dengan munasabah untuk mengelakkan whipsaws.
Tetapan stop loss dan mengambil keuntungan yang munasabah mengawal kerugian perdagangan tunggal.
Hanya berdagang dalam trend menaik mengelakkan tempoh bergelombang.
Julat segitiga yang terlalu sempit mungkin terlepas trend, sementara julat yang terlalu luas boleh meningkatkan perdagangan yang tidak perlu. Parameter N perlu dioptimumkan.
Stop loss yang terlalu dekat cenderung untuk berhenti sebelum masa, sementara terlalu luas gagal untuk mengawal kehilangan.
Penentuan keuntungan mengambil sebahagian yang tidak betul boleh membawa kepada kelebihan keuntungan.
Parameter penunjuk trend yang salah boleh membawa kepada arah kedudukan yang salah.
Mengoptimumkan parameter N untuk penentuan segitiga untuk mencari nilai optimum.
Uji kombinasi tempoh EMA yang berbeza untuk meningkatkan ketepatan trend.
Mengoptimumkan parameter stop loss dan mengambil keuntungan berdasarkan ciri produk.
Tambah penunjuk lain seperti corak MACD, breakout Bollinger dan lain-lain untuk meningkatkan kualiti isyarat.
Tambah mekanisme pembukaan semula untuk memperluaskan keuntungan apabila trend berterusan.
Strategi ini secara keseluruhan kukuh dengan pembentukan segitiga meningkatkan ketepatan isyarat. Ruang pengoptimuman parameter yang besar wujud untuk peningkatan lanjut. Juga cuba menambah lebih banyak penunjuk tambahan atau meningkatkan stop loss / mengambil keuntungan untuk keberkesanan yang lebih besar. Secara keseluruhan strategi ini berpotensi menjadi trend kualiti berikut 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)