Indikator TSI Jendela Geser Ganda Momentum


Tanggal Pembuatan: 2024-01-08 11:20:35 Akhirnya memodifikasi: 2024-01-08 11:20:35
menyalin: 1 Jumlah klik: 654
1
fokus pada
1617
Pengikut

Indikator TSI Jendela Geser Ganda Momentum

1. Gambaran Umum Strategi

Strategi ini diberi namaStrategi Indeks TSI untuk Jendela Ganti DayaIde inti dari strategi ini adalah untuk menggunakan jendela geser ganda EMA untuk melonggarkan perubahan harga, kemudian menggabungkan perubahan arah tren, untuk membangun indikator dinamika yang mencerminkan kekuatan jual beli di pasar, yaitu indikator TSI, dan menggunakannya sebagai sinyal perdagangan untuk membuat keputusan jual beli.

2. Prinsip Strategi

Strategi ini menggunakan dua jendela geser dengan dua indeks bergerak rata-rata untuk menghitung perubahan harga. Periode jendela luar lebih panjang, periode jendela dalam lebih pendek.

Pertama, perhitungkan perubahan satuan harga:

pc = change(price)

Kemudian, dengan menggunakan jendela geser ganda untuk meluruskan perubahan harga:

double_smoothed_pc = double_smooth(pc, long, short)

Perhitungan kembali nilai mutlak dari perubahan harga, juga menggunakan jendela geser ganda untuk smoothing ganda:

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

Akhirnya, dengan menggunakan perubahan harga setelah smoothing dibagi dengan nilai mutlak perubahan harga setelah smoothing, diperoleh indikator TSI yang mencerminkan kekuatan jual beli:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

Dengan mengatur periode jendela yang panjang dan pendek dengan panjang yang berbeda, Anda dapat memfilter kebisingan pasar jangka pendek hingga tingkat tertentu, sehingga indikator TSI lebih baik mencerminkan kekuatan jual beli dalam tren jangka menengah dan panjang. Sebuah sinyal beli dihasilkan saat melewati rata-rata bergerak di atas indikator TSI; Sebuah sinyal jual dihasilkan saat melewati rata-rata bergerak di bawah indikator TSI.

Ketiga, keunggulan strategi.

  1. Menggunakan jendela geser ganda untuk menyaring kebisingan pasar jangka pendek secara efektif, membuat respons indikator lebih akurat
  2. Perhitungan perubahan harga juga dilakukan dengan perpindahan ganda, membuat indikator TSI lebih stabil dan dapat diandalkan
  3. Menggunakan rasio perubahan harga dengan nilai mutlak perubahan harga, standarisasi otomatis, lebih komparatif
  4. Pertimbangan komprehensif terhadap arah dan intensitas perubahan harga sebagai indikator kualitas untuk keputusan perdagangan
  5. Setting parameter yang berbeda dapat menyesuaikan sensitivitas indikator sesuai kebutuhan

Keempat, risiko strategis

  1. Indikator TSI dapat memberi sinyal yang salah saat pasar bergoyang
  2. Setting parameter yang tidak tepat juga dapat mempengaruhi kualitas indikator dan sinyal
  3. Meskipun memiliki jendela geser ganda, indikator memiliki sensitivitas terhadap kebisingan pasar jangka pendek
  4. Indikator dan sinyal dapat mengalami lag jika selang waktu jendela terlalu panjang atau pendek.

Hal ini dapat dioptimalkan dengan menyesuaikan parameter periode jendela dan mempersingkat panjang rata-rata sinyal sesuai; ketika pasar bergoyang, perdagangan dapat dihentikan untuk mengendalikan risiko.

Kelima, Optimalisasi

  1. Uji kombinasi parameter periode jendela panjang dan pendek yang berbeda untuk mencari parameter optimal
  2. Cobalah jenis moving average lain, seperti linear weighted moving average
  3. Meningkatkan kelancaran indikator, membangun tiga atau beberapa jendela geser
  4. Mengoptimalkan pilihan tempat jual beli, dikombinasikan dengan indikator tambahan lainnya
  5. Menetapkan strategi stop loss dan ketat mengontrol kerugian tunggal

VI. Kesimpulan

Strategi ini didasarkan pada perubahan harga ganda smoothing perhitungan TSI dinamika indikator yang mencerminkan kekuatan jual beli, dua jendela geser filter kebisingan, perubahan perubahan harga juga melakukan smoothing ganda, indikator lebih stabil dan dapat diandalkan; Menggunakan rasio standar, memiliki komparabilitas; Indikator arah dan intensitas perubahan harga komposit, sebagai sinyal berkualitas tinggi; Dengan parameter yang dapat dikontrol secara bebas sensitivitas indikator. Dalam hal pengoptimalan parameter dan risiko ke kontrol, sangat praktis untuk memilih strategi perdagangan kuantitatif.

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