Strategi Take Profit on Trend bertujuan untuk mengesan trend jangka panjang dan penurunan jangka pendek, mengambil kedudukan panjang semasa trend kenaikan keseluruhan sambil menangkap penurunan jangka pendek, dengan tahap stop loss dan mengambil keuntungan yang munasabah ditetapkan untuk mengikuti trend dan mengambil keuntungan dengan tepat pada masanya.
Strategi ini terutamanya menggunakan EMA dan RSI untuk menentukan trend jangka panjang dan jangka pendek. Khususnya, ia menggunakan EMA 50 hari dan EMA 200 hari untuk menilai trend jangka panjang, dan RSI untuk mengukur kekuatan trend. Apabila jangka panjang berada dalam trend menaik (200 hari EMA meningkat) dan kuat (RSI di atas 50), dan jangka pendek melihat penarikan (dua candlesticks terakhir ditutup lebih rendah), kedudukan panjang diambil.
Apabila harga naik lebih daripada 2x unit BHD di atas harga kemasukan, keuntungan diambil. Apabila harga jatuh lebih daripada 3x unit BHD di bawah harga kemasukan, kedudukan dihentikan. Unit BHD dikira berdasarkan amplitud 200 candlestick terakhir.
Dengan cara ini, strategi sepenuhnya mengambil kira ciri-ciri trend jangka panjang dan pendek, meningkatkan keuntungan sambil mengawal risiko, mengikuti trend sambil mengambil keuntungan tepat pada masanya.
Strategi ini mempunyai kelebihan berikut:
Mempertimbangkan trend jangka panjang dan jangka pendek, digabungkan dengan penunjuk kekuatan, mengelakkan kemasukan buta ke pasaran yang berbeza.
Pendaftaran mengikuti arah trend, kadar kemenangan yang lebih tinggi.
Mengambil keuntungan dan titik berhenti kerugian membolehkan mengambil keuntungan tepat pada masanya dan kawalan risiko.
TP dan SL adalah dinamik berdasarkan turun naik, agak munasabah.
Ujian belakang menunjukkan pulangan yang baik dan kestabilan merentasi simbol dan jangka masa.
Logik yang mudah dan jelas, mudah difahami dan dilaksanakan untuk semua tahap kemahiran.
Strategi ini juga mempunyai beberapa risiko:
Kesalahan jangka panjang/pendek yang membawa kepada arah masuk yang salah.
Kejatuhan pasaran seperti tebing boleh menembusi berhenti.
Tetapan parameter yang buruk memberi kesan negatif terhadap prestasi.
TP terlalu ketat, mungkin keluar lebih awal.
Backtest ≠ prestasi langsung, pengoptimuman berterusan diperlukan.
Penyelesaian:
Mengoptimumkan parameter, menyesuaikan tempoh MA, menambah penunjuk pengesahan silang.
Hentian yang lebih luas, saiz kedudukan, kawalan risiko lain.
Ujian balik yang meluas untuk menilai parameter.
Pengoptimuman TP dinamik berdasarkan keadaan pasaran.
Pengujian semula yang berterusan, pengoptimuman, penyesuaian langsung.
Strategi ini boleh dioptimumkan lagi dengan:
Penyesuaian parameter, tempoh MA, tempoh unit BHD dll.
Menambah penunjuk, MACD, KD dll untuk ketepatan jangka pendek yang lebih baik.
Mengoptimumkan TP / SL, saiz dinamik berdasarkan turun naik dll.
Menambah saiz kedudukan berdasarkan kekuatan trend.
Uji ketahanan di lebih banyak simbol dan jangka masa.
Menambah penapis seperti harga penutupan > terbuka untuk mengelakkan perangkap.
Menggabungkan pembelajaran mesin untuk lebih banyak automasi dan kecerdasan.
Ini boleh meningkatkan kadar kemenangan, pulangan, kestabilan, kesesuaian dll.
Secara keseluruhan strategi Take Profit on Trend mempunyai kelebihan mempertimbangkan trend panjang/pendek, mengikuti trend, jelas TP/SL. Ia adalah pendekatan trend yang stabil dan cekap. Tetapi terdapat risiko, yang memerlukan pengoptimuman berterusan dan penyesuaian langsung. Logiknya jelas dan mudah dilaksanakan. Layak dikaji dan digunakan untuk peniaga. Dengan pengoptimuman lanjut, ia boleh menjadi strategi kuant yang kukuh.
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-25 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/ // © BHD_Trade_Bot // @version=5 strategy( shorttitle = 'Take Profit On Trend', title = 'Take Profit On Trend (by BHD_Trade_Bot)', overlay = true, calc_on_every_tick = true, calc_on_order_fills = true, use_bar_magnifier = true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, commission_value = 0.1) // Backtest Time Period start_year = input(title='Start year' ,defval=2021) start_month = input(title='Start month' ,defval=1) start_day = input(title='Start day' ,defval=1) start_time = timestamp(start_year, start_month, start_day, 00, 00) end_year = input(title='end year' ,defval=2050) end_month = input(title='end month' ,defval=1) end_day = input(title='end day' ,defval=1) end_time = timestamp(end_year, end_month, end_day, 23, 59) is_back_test_time() => true // EMA ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // RSI rsi200 = ta.rsi(close, 200) // EMA_CD emacd = ema50 - ema200 emacd_signal = ta.ema(emacd, 50) hist = emacd - emacd_signal // BHD Unit bhd_unit = ta.rma(high - low, 200) * 2 bhd_upper = ema200 + bhd_unit bhd_lower = ema200 - bhd_unit // All n candles is going down all_body_decrease(n) => isValid = true for i = 0 to (n - 1) if (close[i] > close[i + 1]) isValid := false break isValid // ENTRY CONDITIONS // Long-term uptrend entry_condition1 = rsi200 > 51 and hist > 0 // Short-term downtrend entry_condition2 = all_body_decrease(2) ENTRY_CONDITIONS = entry_condition1 and entry_condition2 if ENTRY_CONDITIONS and is_back_test_time() strategy.entry('entry', strategy.long) // CLOSE CONDITIONS // Price increase 2 BHD unit take_profit = close > strategy.position_avg_price + bhd_unit * 2 // Price decrease 3 BHD unit stop_loss = close < strategy.position_avg_price - bhd_unit * 3 CLOSE_CONDITIONS = take_profit or stop_loss if CLOSE_CONDITIONS strategy.close('entry') // Draw plot(ema50, color=color.orange, linewidth=2) plot(ema200, color=color.purple, linewidth=2) bhd_upper_line = plot(bhd_upper, color=color.teal) bhd_lower_line = plot(bhd_lower, color=color.teal) fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))