Strategi persilangan purata bergerak keuntungan pen relatif


Tarikh penciptaan: 2023-10-18 11:16:53 Akhirnya diubah suai: 2023-10-18 11:16:53
Salin: 0 Bilangan klik: 644
1
fokus pada
1617
Pengikut

Strategi persilangan purata bergerak keuntungan pen relatif

Gambaran keseluruhan

Strategi ini terutamanya menggunakan nisbah mata wang relatif garis matahari ((RB) untuk menentukan trend, dan melakukan perdagangan automatik dengan hentian dan hentian. Panjang kenaikan mata wang relatif dalam nama strategi merujuk kepada rata-rata kenaikan mata wang berbanding garis matahari.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada RBI Vitelot, yang dikira sebagai purata bergerak rasio pennobong rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio rasio r

Dalam formula, RB sama dengan nisbah panjang entiti garisan yang berwarna putih dan panjang garisan K, yang mengambil nilai positif; RB garisan hitam mengambil nilai negatif. Julat nilai RB adalah antara -1 hingga 1

Indeks RBI menapis bunyi bising melalui purata bergerak RB, menangkap ciri-ciri utama pasaran. Ia menghasilkan isyarat beli apabila RBI melintasi garis isyaratnya; ia menghasilkan isyarat jual apabila RBI melintasi garis isyaratnya.

Untuk menyaring isyarat palsu tahap ketidakpastian multi-kepala, strategi ini juga akan menilai sama ada harga penutupan lebih tinggi daripada garis rata-rata EMA 13 kitaran ketika melintasi garis isyarat pada penunjuk RBI, dan menjalankan strategi multi-kepala jika lebih tinggi daripada yang menghasilkan isyarat pembelian sebenar. Begitu juga, strategi kosong hanya akan dijalankan apabila harga penutupan lebih rendah daripada EMA 13 kitaran.

Strategi ini juga menetapkan mekanisme hentian dan hentian untuk mengawal risiko dan mengunci keuntungan. Selepas membuka kedudukan, trail akan menjejaki jumlah titik hentian yang ditetapkan, sambil menetapkan jumlah titik hentian yang tetap.

Analisis kelebihan

  • Indeks RBI menapis banyak bunyi bising, menangkap ciri-ciri trend pasaran, dan mengelakkan diri disesatkan oleh isyarat palsu pasaran yang bergolak.

  • Gabungan penapis linear seragam, dapat menghalang isyarat palsu pada masa yang tidak pasti dan mengurangkan kehilangan kepala kosong.

  • Penetapan stop loss membantu mengurangkan risiko kerugian pada kedudukan individu, sambil mengunci keuntungan dan meningkatkan kadar keuntungan secara keseluruhan.

  • Strategi ini mempunyai sedikit parameter, mudah difahami, dan sesuai untuk perdagangan automatik.

Analisis risiko

  • Strategi ini hanya berdasarkan kepada indikator RBI, dan strategi keseluruhan akan gagal jika indikator itu sendiri menghasilkan isyarat yang salah.

  • Pengaturan parameter penunjuk yang tidak betul juga boleh menyebabkan penurunan kualiti isyarat perdagangan.

  • Mana-mana petunjuk teknikal boleh gagal dalam keadaan pasaran tertentu dan tidak dapat mengelakkan kerugian sepenuhnya.

  • Penetapan stop loss yang terlalu kecil boleh menyebabkan stop loss terlalu kerap; titik stop loss yang terlalu besar boleh meningkatkan kerugian tunggal.

  • Pengunduran kawalan yang tidak mencukupi boleh menyebabkan risiko akaun pecah.

Arah pengoptimuman

  • Anda boleh menguji kombinasi parameter yang berbeza untuk mengoptimumkan parameter RBI.

  • Ia boleh disaring dengan penambahbaikan lain untuk meningkatkan kualiti isyarat.

  • Parameter yang boleh dioptimumkan untuk menghentikan kerosakan dengan latihan pembelajaran mesin.

  • Anda boleh menyertai strategi pengurusan wang untuk mengawal keseluruhan kedudukan dan peluang risiko.

  • Anda boleh mencuba strategi yang berbeza untuk memegang posisi, seperti memegang posisi semalaman atau berdagang dalam jangka pendek.

ringkaskan

Strategi ini secara keseluruhan adalah strategi pengesanan trend yang lebih mudah dan langsung. Ia menilai arah trend dengan mengira persilangan garisan rata-rata nisbah pen berbanding pen, sambil menambahkan penapis garisan rata dan stop loss untuk mengawal risiko, yang dapat menghalang isyarat palsu pasaran yang bergolak. Tetapi tidak ada strategi penunjuk teknikal yang dapat mengelakkan risiko sepenuhnya.

Kod sumber strategi
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RBI Backtest /w TSSL", shorttitle="RBI Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// RBI:
//  The EMA of the relative body (RB) of Japanese candles is evaluated.
//  The RB of a candle (my definition) is simply the ratio of the body with respect to its full length
//  and taken positive for bull candles and negative for bear candles:
//      e.g. a bull "marubozo" has RB=1 a bear "marubozo" has RB=-1;
//      a "doji" has RB=0.
//  This simple indicator grasps the essence of the market by filtering out a great deal of noise.
//
//  A flag can be selected to calculate its very basic binary version, where a bull candle counts as a one
//  and a bear candle counts as a minus one.
//
//  Enter (or exit) the market when the signal line crosses the base line.
//  When the market is choppy we have a kind of alternating bear and bull candles so that
//  RBI is FLAT and usually close to zero. 
//  Therefore avoid entering the market when RBI is FLAT and INSIDE the Exclusion level.
//  The exclusion level is to be set by hand: go back in history and check when market was choppy; a good
//  way to set it is to frame the oscillations of RBI whe price was choppy.
//
//  RBI is more effective when an EMA of price is used as filtering. I found EMA(13) to be
//  a decent filter: go long when base crosses signal upwards AND closing price is above EMA(13);
//  same concept for going short.
//
//  As any other indicator, use it with responsibility: THERE CAN'T BE A SINGLE MAGIC INDICATOR winning
//  all trades.
//
//  Above all, have fun.
//
// Vitelot/Yanez/Vts March 31, 2019

par1 = input(5, title="MA1 Period")
par2 = input(5, title="Signal Period")
exclusion = input(0.2, title="Exclusion level")

useBin = input(false, title="Calculate the binary version")

treshold_long = input(0, title="Treshold Long")
treshold_short = input(0, title="Treshold Short")

fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=120)
trailTP = input(title="TP Trigger", defval=1)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
startTimeOk()  => true // create function "within window of time" if statement true

ynSimple(t) =>
    s = (close>open)? 1: -1
    ema(sum(s,t),t)

ynRel(t) =>
    s = (close-open)/(high-low)
    ema(sum(s,t),t)

yn = useBin? ynSimple(par1): ynRel(par1) 
sig = ema(yn,par2)


plot(yn, color=aqua, title="RBI", linewidth=3, transp=0)
plot(sig, color=orange, title="Signal", linewidth=2, transp=0)

hline(0, color=white, title="Zero level", editable=false)
hline(exclusion, color=yellow, title="Exclusion level +", editable=true, linestyle=line)
hline( 0-exclusion, color=yellow, title="Exclusion level -", editable=true, linestyle=line)

long = crossover(yn,sig) and yn < treshold_long
short = crossover(sig,yn)  and yn > treshold_short

// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) 
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)