Strasmore Research
Edukasi Matt ConnorOleh Matt Connor

Suku Bunga Bebas Risiko dalam Sharpe Ratio

Suku bunga bebas risiko dalam Sharpe ratio berubah seiring waktu. Selaraskan yield bill dengan frekuensi return dan pahami dampak penggunaan satu rate tetap.

Suku bunga bebas risiko dalam Sharpe ratio adalah imbal hasil yang dapat Anda peroleh selama periode yang sama tanpa mengambil risiko yang sedang dinilai. Suku bunga ini berupa deret waktu, dengan satu observasi untuk setiap periode, dan dinyatakan dalam mata uang yang sama dengan imbal hasil. Samakan frekuensinya dengan frekuensi imbal hasil, lalu kurangkan secara periodik. Lakukan annualisasi satu kali, pada akhir perhitungan.

Mengabaikan prosedur tersebut adalah penyebab utama kesalahan pada sebagian besar Sharpe ratio yang dipublikasikan. Mengambil satu angka dari awal riwayat imbal hasil selama dua puluh tahun—biasanya berapa pun imbal hasil Treasury bill pada minggu ini—berarti menerapkan hurdle yang sama untuk 2009 dan 2024. Panduan kami tentang Sharpe ratio membahas apa yang diukur oleh rasio ini. Halaman ini membahas input yang hampir tidak pernah didokumentasikan.

Suku bunga bebas risiko bukan konstanta

Sharpe ratio yang diukur selama dua puluh tahun mencakup riwayat suku bunga. Panel di bawah ini menggunakan Treasury bill tiga bulan dan merangkum setiap tahun kalender ke dalam rata-rata serta kisaran di sekitarnya.

QueryYield Treasury bill tiga bulan menurut tahun kalender
SQL tepat di balik setiap angka
SELECT
    toString(toYear(date))                  AS year,
    round(avg(toFloat64(yield_3_month)), 2) AS avg_bill_pct,
    round(min(toFloat64(yield_3_month)), 2) AS low_bill_pct,
    round(max(toFloat64(yield_3_month)), 2) AS high_bill_pct
FROM global_markets.treasury_yields
WHERE date >= '2005-01-01'
  AND yield_3_month IS NOT NULL
GROUP BY year
ORDER BY year
Run this yourself

Rata-rata tahunan berada di 3.22% pada 2005 dan 3.74% pada 2026, sepanjang 22 tahun kalender. Pergerakan di antara kedua angka tersebut adalah bagian yang penting. Garisnya turun ke titik terendah, bertahan di sana selama hampir satu dekade, lalu naik kembali. Kolom terendah dan tertinggi menunjukkan seberapa jauh suku bunga bergerak dalam satu tahun, sehingga Sharpe ratio bahkan untuk periode satu tahun memerlukan deret yang frekuensinya sesuai, bukan satu kuotasi.

Suku bunga bebas risiko mana yang digunakan dalam Sharpe ratio

Empat karakteristik menentukan pilihan tersebut.

  1. Jatuh tempo pendek. Suku bunga harus hampir pasti selama satu periode pengukuran. Treasury bill tiga bulan sesuai untuk perhitungan bulanan. Treasury note sepuluh tahun tidak sesuai karena harganya bergerak selama bulan yang sedang diukur.
  2. Mata uang yang sama dengan imbal hasil. Strategi dalam denominasi euro dinilai terhadap bill dalam euro.
  3. Frekuensi yang sama dengan imbal hasil. Imbal hasil bill dikutip sebagai suku bunga tahunan, sehingga kuotasi tahunan harus dikonversi ke frekuensi yang lebih rendah sebelum digunakan bersama imbal hasil bulanan.
  4. Definisi imbal hasil yang sebanding di kedua sisi. Yield bill merupakan seluruh imbal hasilnya, sehingga return strategi yang tidak memasukkan dividen tidak diukur dengan dasar yang sama. Price return versus total return membahas perbedaan tersebut.

Konversi pada poin ketiga menggunakan dua konvensi. Pembagian sederhana membagi kuotasi tahunan dengan dua belas. Compounding mengambil akar kedua belas dari satu ditambah suku bunga tahunan. Pada bill hipotetis dengan suku bunga 5%, hasilnya masing-masing 0,4167% dan 0,4074% untuk satu bulan. Selisihnya sekitar satu basis point dan berulang pada setiap bulan dalam sampel. Panel di sini menggunakan compounding. Jika yield bill menarik bagi Anda sebagai imbal hasil kepemilikan, bukan sebagai hurdle, dividend yield versus Treasury yields dan tempat menempatkan kas menganggur membahas hal tersebut.

Cara membentuk deret excess return bulanan

Konstruksinya mekanis: ambil harga penutupan terakhir setiap bulan, hitung return bulan tersebut, konversi kuotasi bill bulan itu menjadi suku bunga bulanan, lalu lakukan pengurangan. Hasilnya adalah deret excess return, dengan satu angka untuk setiap bulan. Cara mengukur return bulanan membahas komponen return secara lebih rinci.

QueryReturn bulanan, risk-free rate bulanan, dan excess, 2020 hingga 2024
SQL tepat di balik setiap angka
WITH
    monthly_px AS
    (
        SELECT
            toStartOfMonth(date)           AS m,
            argMax(toFloat64(close), date) AS month_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2019-12-01'
          AND date <  '2025-01-01'
        GROUP BY m
    ),
    prior_px AS
    (
        SELECT
            addMonths(m, 1) AS m,
            month_close     AS prev_close
        FROM monthly_px
    ),
    monthly_rf AS
    (
        SELECT
            toStartOfMonth(date)                                       AS m,
            pow(1 + avg(toFloat64(yield_3_month)) / 100, 1.0 / 12) - 1 AS rf_month
        FROM global_markets.treasury_yields
        WHERE date >= '2019-12-01'
          AND date <  '2025-01-01'
          AND yield_3_month IS NOT NULL
        GROUP BY m
    )
SELECT
    toString(cur.m)                                                      AS month,
    round(100 * (cur.month_close / prv.prev_close - 1), 2)               AS spy_ret_pct,
    round(100 * rf.rf_month, 3)                                          AS rf_pct,
    round(100 * (cur.month_close / prv.prev_close - 1 - rf.rf_month), 2) AS excess_pct
FROM monthly_px AS cur
INNER JOIN prior_px AS prv ON prv.m = cur.m
INNER JOIN monthly_rf AS rf ON rf.m = cur.m
ORDER BY cur.m
Run this yourself

Data tersebut adalah harga penutupan SPY, sehingga kolom return merupakan price return tanpa dividen. Kolom bebas risiko dibuka pada 0.128% untuk bulan pertama yang ditampilkan dan ditutup pada 0.359%. Dibandingkan dengan pergerakan saham yang dapat mencapai beberapa persen dalam satu bulan, komponen bebas risiko tampak seperti pembulatan. Namun, sepanjang 60 bulan pengurangan, komponen tersebut menjadi seluruh perbedaan antara dua Sharpe ratio yang mengklaim mengukur hal yang sama.

Kurangkan terlebih dahulu, lalu lakukan annualisasi

Setelah deret waktunya disejajarkan, terdapat dua urutan operasi dan hasilnya berbeda. Excess terlebih dahulu: kurangkan suku bunga bulanan dari return bulanan, lalu lakukan annualisasi atas deret excess tersebut. Annualisasi terlebih dahulu: lakukan compounding atas return menjadi angka tahunan, lakukan compounding atas bill menjadi angka tahunan, lalu kurangkan keduanya.

QueryRisk premium tahunan: kurangi secara bulanan, atau annualisasi setiap komponen terlebih dahulu
SQL tepat di balik setiap angka
WITH
    monthly_px AS
    (
        SELECT
            toStartOfMonth(date)           AS m,
            argMax(toFloat64(close), date) AS month_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2004-12-01'
          AND date <  '2025-01-01'
        GROUP BY m
    ),
    prior_px AS
    (
        SELECT
            addMonths(m, 1) AS m,
            month_close     AS prev_close
        FROM monthly_px
    ),
    monthly_rf AS
    (
        SELECT
            toStartOfMonth(date)                                       AS m,
            pow(1 + avg(toFloat64(yield_3_month)) / 100, 1.0 / 12) - 1 AS rf_month
        FROM global_markets.treasury_yields
        WHERE date >= '2004-12-01'
          AND date <  '2025-01-01'
          AND yield_3_month IS NOT NULL
        GROUP BY m
    ),
    excess AS
    (
        SELECT
            cur.m                                             AS m,
            cur.month_close / prv.prev_close - 1              AS ret,
            rf.rf_month                                       AS rf_month,
            cur.month_close / prv.prev_close - 1 - rf.rf_month AS exc
        FROM monthly_px AS cur
        INNER JOIN prior_px AS prv ON prv.m = cur.m
        INNER JOIN monthly_rf AS rf ON rf.m = cur.m
    )
SELECT
    concat(toString(intDiv(count(), 12)), '-year')            AS horizon,
    round(100 * (exp(12 * avg(log(1 + exc))) - 1), 2)         AS excess_first_pct,
    round(100 * ((exp(12 * avg(log(1 + ret))) - 1)
               - (exp(12 * avg(log(1 + rf_month))) - 1)), 2)  AS annualize_first_pct,
    round(100 * ((exp(12 * avg(log(1 + ret))) - 1)
               - (exp(12 * avg(log(1 + rf_month))) - 1)
               - (exp(12 * avg(log(1 + exc))) - 1)), 3)       AS gap_pct
FROM excess
CROSS JOIN (SELECT arrayJoin([1, 3, 5, 10, 20]) AS years) AS hz
WHERE m >= subtractYears(toDate('2025-01-01'), years)
GROUP BY years
ORDER BY years
Run this yourself

Dalam periode 20-year, hasil excess terlebih dahulu adalah 6.49% per tahun, dibandingkan 6.59% untuk urutan lainnya. Selisihnya mencapai 0.099 poin persentase. Dalam periode 1-year, kedua perhitungan tersebut berjarak 0.814 poin. Angka annualisasi terlebih dahulu berada di atas angka excess terlebih dahulu dalam setiap periode pada panel ini. Perbedaannya berasal dari cross term: compounding atas deret return menjadi angka tahunan mencakup perolehan suku bunga bill di atas risk premium itu sendiri. Mengurangkan bill yang telah dianualisasi setelahnya tidak menghapus komponen tersebut. Cross term meningkat seiring hasil kali kedua angka tahunan, sehingga paling besar ketika bill memberikan imbal hasil tinggi.

Annualisasi memiliki percabangan kedua. Annualisasi aritmetika mengalikan rata-rata excess bulanan dengan dua belas. Annualisasi geometris menggunakan compounding: mencari suku bunga tahunan konstan yang menghasilkan kembali akumulasi yang sama. Ambil contoh hipotetis dua periode, yaitu +50% lalu -33,3%, yang berakhir tepat pada titik awal. Rata-rata aritmetikanya adalah +8,35% per periode, sedangkan rata-rata geometrisnya nol. Panel di sini menggunakan compounding. Satu catatan penting: dalam annualisasi aritmetika, dua belas kali rata-rata return dikurangi dua belas kali rata-rata bill secara aljabar sama dengan dua belas kali rata-rata excess. Dengan konvensi tersebut, urutan pengurangan tidak mengubah numerator. Namun, denominator tetap berubah karena standard deviation excess return berbeda dari standard deviation raw return ketika suku bunganya sendiri bergerak.

Dampak penggunaan satu suku bunga tetap terhadap hasil

Cara pintas yang umum adalah mengambil yield bill saat ini lalu mengurangkannya dari setiap periode dalam riwayat. Panel di bawah ini menghitung Sharpe ratio dengan dua cara pada lima periode yang berakhir pada tanggal yang sama: pertama menggunakan deret bulanan yang sesuai, lalu menggunakan yield bill yang berlaku pada akhir periode.

QueryRasio Sharpe pada seri rate yang dipadankan dengan satu rate tetap
SQL tepat di balik setiap angka
WITH
    monthly_px AS
    (
        SELECT
            toStartOfMonth(date)           AS m,
            argMax(toFloat64(close), date) AS month_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2004-12-01'
          AND date <  '2025-01-01'
        GROUP BY m
    ),
    prior_px AS
    (
        SELECT
            addMonths(m, 1) AS m,
            month_close     AS prev_close
        FROM monthly_px
    ),
    monthly_rf AS
    (
        SELECT
            toStartOfMonth(date)                                       AS m,
            pow(1 + avg(toFloat64(yield_3_month)) / 100, 1.0 / 12) - 1 AS rf_month
        FROM global_markets.treasury_yields
        WHERE date >= '2004-12-01'
          AND date <  '2025-01-01'
          AND yield_3_month IS NOT NULL
        GROUP BY m
    ),
    excess AS
    (
        SELECT
            cur.m                                AS m,
            cur.month_close / prv.prev_close - 1 AS ret,
            rf.rf_month                          AS rf_month
        FROM monthly_px AS cur
        INNER JOIN prior_px AS prv ON prv.m = cur.m
        INNER JOIN monthly_rf AS rf ON rf.m = cur.m
    )
SELECT
    concat(toString(intDiv(count(), 12)), '-year')                             AS horizon,
    round(sqrt(12) * avg(ret - rf_month) / stddevSamp(ret - rf_month), 2)      AS sharpe_matched_rf,
    round(sqrt(12) * avg(ret - rf_fixed) / stddevSamp(ret - rf_fixed), 2)      AS sharpe_fixed_rf,
    round(abs(sqrt(12) * avg(ret - rf_month) / stddevSamp(ret - rf_month)
            - sqrt(12) * avg(ret - rf_fixed) / stddevSamp(ret - rf_fixed)), 2) AS abs_gap
FROM excess
CROSS JOIN
(
    SELECT pow(1 + avg(toFloat64(yield_3_month)) / 100, 1.0 / 12) - 1 AS rf_fixed
    FROM global_markets.treasury_yields
    WHERE date >= '2024-12-01'
      AND date <  '2025-01-01'
      AND yield_3_month IS NOT NULL
) AS fixed_rate
CROSS JOIN (SELECT arrayJoin([1, 3, 5, 10, 20]) AS years) AS hz
WHERE m >= subtractYears(toDate('2025-01-01'), years)
GROUP BY years
ORDER BY years
Run this yourself

Dalam periode 1-year, kedua angka tersebut berjarak 0.07. Dalam periode dua belas bulan, suku bunga tetap memiliki ruang yang terbatas untuk menyimpang dari rata-rata periode itu sendiri. Dalam periode 20-year, selisihnya mencapai 0.18: 0.49 dengan deret yang sesuai dibandingkan 0.32 dengan suku bunga tetap. Kesalahan tersebut mengikuti jarak antara suku bunga tunggal yang Anda pilih dan rata-rata suku bunga yang benar-benar berlaku. Jarak ini semakin berpeluang melebar ketika periode pengukuran semakin panjang. Semua hasil turunan akan mewarisi kesalahan tersebut, dan volatility targeting dan position sizing menggunakan input dengan karakteristik yang sama.

Jebakan mata uang

Strategi yang menghasilkan return dalam satu mata uang tetapi dinilai terhadap bill dalam mata uang lain menghasilkan angka yang tidak banyak berarti bagi keduanya. Hitung excess return dalam satu mata uang: return euro terhadap bill euro, dan return yen terhadap bill yen. Strategi yang di-hedge menghadapi jebakan kedua. Currency hedge ditentukan berdasarkan forward, sementara forward points bergerak dekat dengan interest rate differential antara kedua mata uang. Ini berarti sebagian suku bunga domestik sudah terkandung dalam return asing yang di-hedge. Mengurangkan bill asing di atasnya berarti membebankan suku bunga yang sama dua kali. Sebutkan mata uang di samping suku bunganya agar ambiguitas hilang.

Publikasikan suku bunga bersama rasio

Sharpe ratio yang dikutip tanpa sumber dan frekuensi suku bunga tidak dapat diverifikasi oleh siapa pun. Dua desk dapat menghitung angka 0,8 dan 1,1 dari deret return yang identik, dan keduanya dapat benar jika menggunakan deret suku bunga serta konvensi konversi yang berbeda. Empat hal harus dicantumkan bersama angka tersebut: instrumen sumber suku bunga, frekuensinya, konvensi konversi, dan periode pengukuran yang tepat. Inilah perbedaan antara angka yang dapat diaudit pembaca dan angka yang harus diterima begitu saja.

Catatan data dan reproduktibilitas

Deret suku bunga pada setiap panel menggunakan Treasury bill tiga bulan dari daily Treasury yield curve, yang dirata-ratakan dalam setiap bulan kalender lalu dikonversi menjadi suku bunga bulanan dengan mengambil akar kedua belas dari satu ditambah kuotasi tahunan. Return menggunakan harga penutupan SPY pada akhir bulan, hanya price return, tanpa dividen. Rasio menggunakan sample standard deviation dari excess return bulanan dan akar kuadrat dari dua belas untuk annualisasi. Dua panel terakhir menggunakan periode yang berakhir pada tanggal yang sama, dan kolom suku bunga tetap menggunakan rata-rata kuotasi bill pada bulan terakhir periode tersebut. Setiap angka dalam uraian di atas berasal dari panel di sebelahnya.

FAQ

Suku bunga bebas risiko mana yang sebaiknya digunakan dalam Sharpe ratio?

Treasury bill pemerintah berjangka pendek dalam mata uang yang sama dengan return, yang dikonversi ke frekuensi yang sama dengan return. Untuk return USD bulanan, gunakan Treasury bill satu bulan atau tiga bulan. Jatuh tempo yang lebih panjang memiliki price risk selama periode pengukuran, sehingga tidak memenuhi syarat sebagai komponen bebas risiko.

Bolehkah saya mengurangkan yield Treasury bill hari ini dari riwayat return yang panjang?

Itu adalah kesalahan yang paling umum dalam Sharpe ratio yang dipublikasikan. Dalam periode 20-year di atas, suku bunga tetap pada akhir periode dan deret bulanan yang sesuai menghasilkan angka dengan selisih 0.18, meskipun menggunakan return yang sama.

Apakah suku bunga bebas risiko harus dianualisasi sebelum dikurangkan?

Tidak. Konversikan kuotasi bill tahunan ke frekuensi return, kurangkan secara periodik, lalu lakukan annualisasi atas deret excess satu kali pada akhir perhitungan. Melakukan annualisasi secara terpisah pada setiap komponen lalu mengurangkannya setelah itu meninggalkan cross term dalam hasil.

Seberapa besar suku bunga bebas risiko mengubah Sharpe ratio?

Secara kasar, sebesar perubahan suku bunga dibagi annualized volatility. Pada strategi hipotetis dengan volatilitas tahunan 15%, perbedaan 4% pada suku bunga yang diasumsikan mengubah rasio sekitar 0,27. Itu merupakan jarak antara rekam jejak biasa dan rekam jejak yang dipuji.

Apa perbedaan annualisasi aritmetika dan geometris?

Annualisasi aritmetika mengalikan rata-rata excess per periode dengan jumlah periode dalam satu tahun. Annualisasi geometris melakukan compounding atas setiap periode untuk memperoleh suku bunga konstan yang menghasilkan kembali akumulasi yang sama. Per periode, angka geometris berada pada atau di bawah angka aritmetika, dan jarak di antara keduanya melebar seiring meningkatnya volatilitas.


Setiap panel di sini menyertakan SQL yang menghasilkan panel tersebut, sehingga deret suku bunga dan periodenya dapat dilihat. Untuk menjalankan konstruksi yang sama pada ticker lain atau rentang riwayat lain, mintalah dalam bahasa sehari-hari melalui terminal Strasmore.

#sharpe ratio#risk-free rate#excess returns#annualization#performance measurement