Penunjuk TSI Tingkap Gelongsor Berkembar Momentum


Tarikh penciptaan: 2024-01-08 11:20:35 Akhirnya diubah suai: 2024-01-08 11:20:35
Salin: 1 Bilangan klik: 654
1
fokus pada
1617
Pengikut

Penunjuk TSI Tingkap Gelongsor Berkembar Momentum

I. Gambaran Strategik

Strategi ini dinamakanStrategi Indeks TSIIdea teras strategi ini adalah untuk menggunakan pergerakan harga yang merata dalam tetingkap geser EMA ganda, dan kemudian menggabungkan perubahan arah trend, untuk membina penunjuk momentum yang mencerminkan kekuatan jual beli di pasaran, iaitu penunjuk TSI, dan menggunakannya sebagai isyarat perdagangan untuk membuat keputusan membeli dan menjual.

2. Prinsip Strategi

Strategi ini menggunakan dua tetingkap meluncur dua rata-rata bergerak indeks untuk mengira perubahan harga. Jendela luar adalah lebih lama, dan jendela dalam adalah lebih pendek.

Pertama, perhitungkan perubahan harga dalam satuan:

pc = change(price)

Kemudian gunakan tetingkap geser ganda untuk meluruskan pergerakan harga:

double_smoothed_pc = double_smooth(pc, long, short)

Hitung semula nilai mutlak perubahan harga, dengan menggunakan tetingkap gelongsor ganda untuk meluruskan:

double_smoothed_abs_pc = double_smooth(abs(pc), long, short)

Akhir sekali, perubahan harga selepas pelepasan yang digunakan dibahagikan dengan nilai mutlak perubahan harga selepas pelepasan, untuk mendapatkan TSI yang mencerminkan kekuatan jual beli:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

Dengan menetapkan tempoh tingkap yang panjang dan pendek, bunyi pasaran jangka pendek dapat disaring ke tahap tertentu, menjadikan TSI lebih baik mencerminkan kekuatan jual beli dalam trend jangka panjang. TSI menghasilkan isyarat beli ketika melintasi purata bergeraknya di atas TSI dan menghasilkan isyarat jual ketika melintasi purata bergeraknya di bawah TSI.

Ketiga, kelebihan strategi

  1. Menggunakan tetingkap bergeser dua kali untuk menyaring bunyi pasaran jangka pendek dengan berkesan, menjadikan tindak balas penunjuk lebih tepat
  2. Perhitungan perubahan harga juga dilakukan dengan kelancaran berganda, menjadikan TSI lebih stabil dan boleh dipercayai
  3. Menggunakan perbandingan perubahan harga dengan nilai mutlak perubahan harga, standardisasi automatik, lebih berkemampuan
  4. Mengambil kira arah dan kekuatan pergerakan harga secara menyeluruh sebagai penunjuk kualiti untuk membuat keputusan perdagangan
  5. Tetapkan parameter yang berbeza untuk menyesuaikan sensitiviti penunjuk mengikut keperluan

Risiko Strategik

  1. Indeks TSI mungkin memberi isyarat yang salah apabila pasaran bergolak untuk jangka masa yang panjang
  2. Tetapan parameter yang tidak betul juga boleh menjejaskan kualiti petunjuk dan isyarat
  3. Walaupun terdapat dua tetingkap meluncur, indikator ini mempunyai sensitiviti terhadap bunyi pasaran jangka pendek.
  4. Penunjuk dan isyarat mungkin terlewat apabila jarak antara tetingkap yang panjang dan pendek terlalu besar

Anda boleh mengoptimumkannya dengan menyesuaikan parameter tempoh tetingkap, memendekkan panjang purata isyarat dengan sewajarnya; anda boleh menghentikan perdagangan untuk mengawal risiko apabila pasaran bergolak.

Lima, Arah Pengoptimuman

  1. Uji kombinasi parameter jangka panjang dan jangka pendek yang berbeza untuk mencari parameter optimum
  2. Cuba jenis moving average lain, seperti linear weighted moving average
  3. Meningkatkan kelancaran penunjuk, membina tetingkap meluncur tiga atau banyak
  4. Mengoptimumkan pilihan tempat membeli dan menjual, bersama-sama dengan petunjuk lain
  5. Tetapkan strategi hentikan kerugian dan kawal kerugian tunggal

VI

Strategi ini berdasarkan perubahan harga berganda melonggarkan pengiraan TSI dinamika yang mencerminkan kekuatan jual beli, dua penapis tetingkap penapis bunyi, perubahan perubahan harga juga berganda melonggarkan, penunjuk lebih stabil dan boleh dipercayai; menggunakan nisbah standard, mempunyai perbandingan; arah dan kekuatan perubahan harga komposit penunjuk, sebagai isyarat berkualiti tinggi; sensitiviti penunjuk boleh dikawal secara bebas melalui penyesuaian parameter. Dalam kes pengoptimuman parameter dan kawalan risiko, pilihan strategi perdagangan kuantitatif sangat praktikal.

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

//@version=2
strategy("True Strength Indicator BTCUSD 2H", shorttitle="TSI BTCUSD 2H",initial_capital=1000, commission_value=0.2, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)

//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe",  defval="120" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)

length = input(title="Период",  defval=300)

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 = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, 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
window() => true // create function "within window of time"

price = request.security(syminfo.tickerid,resCustom,close)


double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2=ema(tsi_value, signal)
plot(tsi_value, color=lime,linewidth=2)
plot(tsi2, color=red,linewidth=2)

hline(30, title="Zero")
hline(50, title="Zero",linewidth=2)
hline(70, title="Zero")

buy = crossover(tsi_value, tsi2)
sell = crossunder(tsi_value, tsi2)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

//greentsi =tsi_value
//redtsi = tsi2

//bgcolor( greentsi>redtsi and rsiserie > 50 ? lime : na, transp=90)
//bgcolor( greentsi<redtsi and rsiserie < 50 ? red : na, transp=90)

//yellow1= redtsi > greentsi and rsiserie > 50 
//yellow2 = redtsi < greentsi and rsiserie < 50 
//bgcolor( yellow1 ? yellow : na, transp=80)
//bgcolor( yellow2  ? yellow : na, transp=50)

//bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
//bgcolor( yellow2  and yellow2[2] ? yellow : na, transp=70)

//bgcolor( rsiserie > 70 ? lime : na, transp=60)
//bgcolor( rsiserie < 30  ? red : na, transp=60)