Sumber dimuat naik... memuat...

Trend Mengikut Strategi Berdasarkan Isyarat Crossover OBV dan MA

Penulis:ChaoZhang, Tarikh: 2024-04-29 13:48:58
Tag:OBVMASMA

img

Ringkasan

Strategi ini, yang dinamakan OBVious MA Strategy: Trend Following Strategy Based on OBV and MA Crossover Signals, menggunakan persilangan antara penunjuk Volume On Balance (OBV) dan purata bergerak untuk menjana isyarat perdagangan. OBV boleh memberikan isyarat trend terkemuka, dan strategi ini menggunakan BREAKHOUT OBV di atas atau di bawah purata bergerak sebagai syarat masuk dan keluar untuk menangkap trend. Dengan menggunakan MAs masuk dan keluar yang berasingan, ia membolehkan kawalan yang lebih fleksibel terhadap tempoh penahan. Walaupun strategi ini adalah demonstrasi yang mudah, ia menunjukkan cara menggunakan OBV secara berkesan untuk analisis jumlah.

Prinsip Strategi

  1. Mengira nilai penunjuk OBV: Jika harga penutupan semasa lebih tinggi daripada lilin sebelumnya, tambah jumlah semasa ke OBV; jika tidak, tolak jumlah.
  2. Mengira empat purata bergerak OBV: MA masuk panjang jangka panjang, MA keluar panjang jangka panjang, MA masuk pendek jangka pendek, dan MA keluar pendek jangka pendek.
  3. Menghasilkan isyarat perdagangan:
    • Apabila OBV melintasi di atas long-term long entry MA dan penapis arah tidak ditetapkan untuk pendek, buka kedudukan panjang.
    • Apabila OBV melintasi di bawah MA keluar panjang jangka panjang, tutup kedudukan panjang.
    • Apabila OBV melintasi di bawah MA kemasukan pendek jangka pendek dan penapis arah tidak ditetapkan untuk panjang, buka kedudukan pendek.
    • Apabila OBV melintasi di atas MA keluar pendek jangka pendek, tutup kedudukan pendek.
  4. Pengurusan perdagangan: Jika isyarat bertentangan dihasilkan, kedudukan asal akan ditutup sebelum membuka kedudukan baru.

Kelebihan Strategi

  1. Menggunakan sepenuhnya isyarat trend utama OBV untuk menubuhkan kedudukan pada permulaan trend.
  2. Pemisahan Pemasok dan Pemasok Pemasok membolehkan pengoptimuman bebas masa masuk dan keluar.
  3. Logik kod adalah mudah dan jelas, mudah difahami dan ditingkatkan.
  4. Memperkenalkan penapis arah boleh mengelakkan perdagangan yang kerap dan mengurangkan kos.

Risiko Strategi

  1. Tidak mempunyai penunjuk pengesahan lain, yang boleh menghasilkan isyarat palsu.
  2. Kekurangan stop-loss dan pengurusan kedudukan, menghadapi risiko kerugian perdagangan tunggal yang diperkuat.
  3. Pemilihan parameter yang tidak betul akan menjejaskan prestasi strategi. Parameter perlu dioptimumkan berdasarkan ciri pasaran dan jangka masa yang berbeza.

Arahan Pengoptimuman Strategi

  1. Pertimbangkan untuk memperkenalkan penapis trend, seperti arah MA, ATR, dan lain-lain, untuk meningkatkan kualiti isyarat.
  2. Pelbagai jenis MAs boleh digunakan pada OBV, seperti EMA, WMA, dan lain-lain, untuk menangkap trend kelajuan yang berbeza.
  3. Mengoptimumkan pengurusan kedudukan, seperti menggunakan strategi skala untuk menambah kedudukan apabila kekuatan trend meningkat dan mengurangkan kedudukan apabila ia menurun.
  4. Gabungkan dengan penunjuk jumlah dan harga lain, seperti MVA, PVT, dan lain-lain, untuk membina isyarat bersama untuk meningkatkan kadar kemenangan.

Ringkasan

Strategi ini menunjukkan kaedah mengikuti trend yang mudah berdasarkan persilangan OBV dan MA. Kelebihannya adalah logik yang jelas, penangkapan trend yang tepat pada masanya, dan kawalan memegang yang fleksibel melalui MAs masuk dan keluar yang berasingan. Walau bagaimanapun, kekurangannya termasuk kekurangan langkah kawalan risiko dan kaedah pengesahan isyarat. Penambahbaikan boleh dibuat dalam bidang seperti penapisan trend, pengoptimuman parameter, pengurusan kedudukan, dan isyarat bersama untuk mendapatkan prestasi strategi yang lebih kukuh. Strategi ini lebih sesuai sebagai isyarat panduan untuk digunakan bersama dengan strategi lain.


/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ThousandX_Trader

//@version=5
strategy(title="OBVious MA Strategy [1000X]", overlay=false, 
         initial_capital=10000, margin_long=0.1, margin_short=0.1,
         default_qty_type=strategy.percent_of_equity, default_qty_value=100,
         slippage=1, commission_type=strategy.commission.percent, commission_value=0.1)

// Direction Input ///
tradeDirection = input.string("long", title="Direction", options=["long", "short"], group = "Direction Filter")

    ///////////////////////////////////////
   //  1000X OBV MA INDICATOR           //
  ///////////////////////////////////////

// OBV Trend Length Inputs //
long_entry_length = input(190, title="Long Entry MA Length", group = "Moving Average Settings")
long_exit_length = input(202, title="Long Exit MA Length", group = "Moving Average Settings")
short_entry_length = input(395, title="Short MA Entry Length", group = "Moving Average Settings")
short_exit_length = input(300, title="Short Exit MA Length", group = "Moving Average Settings")

// OBV Calculation
obv = ta.cum(ta.change(close) >= 0 ? volume : -volume)

// Calculate OBV Moving Averages
obv_ma_long_entry = ta.sma(obv, long_entry_length)
obv_ma_long_exit = ta.sma(obv, long_exit_length)
obv_ma_short_entry = ta.sma(obv, short_entry_length)
obv_ma_short_exit = ta.sma(obv, short_exit_length)

   ///////////////////////////////////////
  //         STRATEGY RULES            //
 ///////////////////////////////////////

longCondition = ta.crossover(obv, obv_ma_long_entry) and tradeDirection != "short" and strategy.position_size <= 0
longExitCondition = ta.crossunder(obv, obv_ma_long_exit)
shortCondition = ta.crossunder(obv, obv_ma_short_entry) and tradeDirection != "long" and strategy.position_size >= 0
shortExitCondition = ta.crossover(obv, obv_ma_short_exit)

  ///////////////////////////////////////
 //         ORDER EXECUTION           //
///////////////////////////////////////

// Close opposite trades before entering new ones
if (longCondition and strategy.position_size < 0)
    strategy.close("Short Entry")

if (shortCondition and strategy.position_size > 0)
    strategy.close("Long Entry")

// Enter new trades
if (longCondition)
    strategy.entry("Long Entry", strategy.long)

if (shortCondition)
    strategy.entry("Short Entry", strategy.short)

// Exit conditions
if (longExitCondition)
    strategy.close("Long Entry")

if (shortExitCondition)
    strategy.close("Short Entry")

  ///////////////////////////////////////
 //            PLOTTING               //
///////////////////////////////////////

// Plot OBV line with specified color
plot(obv, title="OBV", color=color.new(#2962FF, 0), linewidth=1)

// Conditionally plot Long MAs with specified colors based on Direction Filter
plot(tradeDirection == "long" ? obv_ma_long_entry : na, title="Long Entry MA", color=color.new(color.rgb(2, 130, 228), 0), linewidth=1)
plot(tradeDirection == "long" ? obv_ma_long_exit : na, title="Long Exit MA", color=color.new(color.rgb(106, 168, 209), 0), linewidth=1)

// Conditionally plot Short MAs with specified colors based on Direction Filter
plot(tradeDirection == "short" ? obv_ma_short_entry : na, title="Short Entry MA", color=color.new(color.rgb(163, 2, 227), 0), linewidth=1)
plot(tradeDirection == "short" ? obv_ma_short_exit : na, title="Short Exit MA", color=color.new(color.rgb(192, 119, 205), 0), linewidth=1)


Berkaitan

Lebih lanjut