Strategi piramid berdasarkan penunjuk OBV


Tarikh penciptaan: 2023-12-08 15:58:29 Akhirnya diubah suai: 2023-12-08 15:58:29
Salin: 0 Bilangan klik: 705
1
fokus pada
1621
Pengikut

Strategi piramid berdasarkan penunjuk OBV

Gambaran keseluruhan

Strategi ini, yang dinamakan sebagai “Piramida OBV”, merancang strategi pembukaan kedudukan berdasarkan petunjuk OBV, dan menggunakan kaedah penambahan kedudukan piramida, setelah trend muncul, menambah kedudukan berturut-turut dan mengikuti trend untuk mendapatkan keuntungan.

Prinsip Strategi

Strategi ini menggunakan indikator OBV untuk menentukan arah trend. Indikator OBV berdasarkan perubahan jumlah transaksi untuk menentukan trend harga, perubahan jumlah transaksi mencerminkan sikap peserta pasaran. Apabila di atas OBV melalui 0 aksen menunjukkan peningkatan daya beli, trend bermulut-mulut terbentuk; Apabila di bawah OBV melalui 0 aksen menunjukkan peningkatan daya beli, trend kosong terbentuk.

Strategi ini mengesahkan pembentukan trend bertopeng dengan menilai sama ada OBV melintasi 0 atau tidak. Apabila trend bertopeng terbentuk, atur peraturan penempatan piramid, maksimum 7 kali penempatan.

Analisis kelebihan

Kelebihan utama strategi ini ialah ia dapat menangkap trend, menjejaki trend melalui cara menaikkan kedudukan piramid, dan mempunyai potensi keuntungan yang besar. Di samping itu, strategi ini mempunyai kawalan risiko dan mempunyai tetapan stop loss.

Secara khusus, kelebihan ini dapat dilihat dalam:

  1. Menggunakan OBV untuk menentukan arah trend dengan tepat;
  2. “Piramida” adalah kaedah untuk menjejaki trend keuntungan.
  3. Tetapkan risiko kawalan kuasa hentian berhenti;
  4. Logik strategi mudah, jelas dan mudah difahami.

Analisis risiko

Strategi ini mempunyai dua risiko utama:

  1. Kesilapan dalam pertimbangan OBV yang menyebabkan kehilangan peluang atau kesalahan dalam penempatan;
  2. Terlalu banyak pertaruhan, risiko meningkat.

Penyelesaian:

  1. Mengoptimumkan parameter OBV untuk memastikan penghakiman tepat;
  2. Kaedah yang betul untuk mengawal jumlah kenaikan harga untuk memastikan risiko terkawal.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Optimumkan parameter OBV untuk meningkatkan ketepatan penghakiman;
  2. Optimumkan jumlah dan jumlah deposit;
  3. Pengoptimuman titik hentian dan hentian;
  4. Kaedah ini boleh digunakan untuk menilai risiko dalam kombinasi dengan indikator lain untuk mengelakkan penilaian risiko OBV.

Dengan mengoptimumkan kandungan ini, anda boleh menjadikan strategi anda lebih stabil, lebih mudah dikawal dan lebih boleh diskalakan.

ringkaskan

Strategi ini sangat praktikal secara keseluruhan. Ia menggunakan petunjuk OBV untuk menentukan arah trend, dan kemudian mengikuti trend melalui piramida kenaikan kedudukan. Logik strategi ringkas dan jelas, mudah difahami dan diukur.

Kod sumber strategi
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 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/
// © RafaelZioni

//@version=4

strategy(title = " OBV Pyr", overlay = true, pyramiding=5,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 20, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)

//
fastLength = input(250, title="Fast filter length ", minval=1)
slowLength = input(500,title="Slow filter length",  minval=1)
source=close
v1=ema(source,fastLength)
v2=ema(source,slowLength)
 
//
 
filter=true 
src = close


LengthOBV = input(20)

nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume 
c = cum(nv) 
c_tb = c - sma(c,LengthOBV) 

// Conditions

longCond = crossover(c_tb,0)
//shortCond =crossunder(cnv_tb,0)

//

longsignal  = (v1 > v2 or filter == false ) and longCond
//shortsignal = (v1 < v2 or filter == false ) and shortCond 
 
//set take profit
 
ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick
 
//set take profit
 
LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick
 
 
////Order Placing
//
strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)
//
strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)
//
strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)
//
strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)
//
strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)
//
strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)
//
strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)
//
//
//
if strategy.position_size > 0
    strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)