Ambil Keuntungan dari Strategi Trend

Penulis:ChaoZhang, Tarikh: 2023-09-26 11:22:04
Tag:

Ringkasan

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.

Logika Strategi

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.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Mempertimbangkan trend jangka panjang dan jangka pendek, digabungkan dengan penunjuk kekuatan, mengelakkan kemasukan buta ke pasaran yang berbeza.

  2. Pendaftaran mengikuti arah trend, kadar kemenangan yang lebih tinggi.

  3. Mengambil keuntungan dan titik berhenti kerugian membolehkan mengambil keuntungan tepat pada masanya dan kawalan risiko.

  4. TP dan SL adalah dinamik berdasarkan turun naik, agak munasabah.

  5. Ujian belakang menunjukkan pulangan yang baik dan kestabilan merentasi simbol dan jangka masa.

  6. Logik yang mudah dan jelas, mudah difahami dan dilaksanakan untuk semua tahap kemahiran.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Kesalahan jangka panjang/pendek yang membawa kepada arah masuk yang salah.

  2. Kejatuhan pasaran seperti tebing boleh menembusi berhenti.

  3. Tetapan parameter yang buruk memberi kesan negatif terhadap prestasi.

  4. TP terlalu ketat, mungkin keluar lebih awal.

  5. Backtest ≠ prestasi langsung, pengoptimuman berterusan diperlukan.

Penyelesaian:

  1. Mengoptimumkan parameter, menyesuaikan tempoh MA, menambah penunjuk pengesahan silang.

  2. Hentian yang lebih luas, saiz kedudukan, kawalan risiko lain.

  3. Ujian balik yang meluas untuk menilai parameter.

  4. Pengoptimuman TP dinamik berdasarkan keadaan pasaran.

  5. Pengujian semula yang berterusan, pengoptimuman, penyesuaian langsung.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dengan:

  1. Penyesuaian parameter, tempoh MA, tempoh unit BHD dll.

  2. Menambah penunjuk, MACD, KD dll untuk ketepatan jangka pendek yang lebih baik.

  3. Mengoptimumkan TP / SL, saiz dinamik berdasarkan turun naik dll.

  4. Menambah saiz kedudukan berdasarkan kekuatan trend.

  5. Uji ketahanan di lebih banyak simbol dan jangka masa.

  6. Menambah penapis seperti harga penutupan > terbuka untuk mengelakkan perangkap.

  7. Menggabungkan pembelajaran mesin untuk lebih banyak automasi dan kecerdasan.

Ini boleh meningkatkan kadar kemenangan, pulangan, kestabilan, kesesuaian dll.

Kesimpulan

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


Lebih lanjut