paper: analisis value at risk saham tlkm.jk dengan sas
DESCRIPTION
Tugas Besar SAS Programming Academy II. Dalam makalah ini dikaji nilai Value at Risk dari saham TLKM.JK menggunakan data historis prices 10 tahun terakhir. Metode yang digunakan adalah History Prices dan Variance-Covariance.TRANSCRIPT
-
ANALISIS VALUE AT RISK PADA SAHAM
TELEKOMUNIKASI INDONESIA
MAKALAH
Dibuat Untuk Melengkapi Tugas Besar 2
Pelatihan Statistical Analytic Software (SAS) Programming 2
oleh
Nicholas Leo 10111051
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
PROGRAM STUDI MATEMATIKA
INSTITUT TEKNOLOGI BANDUNG
BANDUNG
2014
-
DAFTAR ISI
BAB I. PENDAHULUAN .................................................................... 1
1.1. Latar Belakang . ..1
1.2. Rumusan Masalah ...................................................................... 2
1.3. Tujuan ........................................................................................ 2
BAB II. TEORI DASAR .......................................................................... 3
BAB III. PEMBAHASAN ........................................................................ 9
3.1. Pengolahan Data Awal ............................................................... 9
3.2. Pengolahan Data Legalitas Software ....................................... 12
3.3. Pengolahan Data Cloud Service ................................................ 17
BAB IV. SIMPULAN dan SARAN ..................................................... 20
4.1. Simpulan .................................................................................. 20
LAMPIRAN A ............................................................................................... 22
LAMPIRAN B ............................................................................................... 22
LAMPIRAN C ................................................................................................ 28
DAFTAR PUSTAKA ....................................................................................... 34
-
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Saham adalah satuan nilai pembukuan dalam instrument finansial yang mengacu pada
bagian kepemilikan suatu perusahaan. Dengan kata lain, saham dapat dikatakan sebagai tanda
kepemilikian atas (sebagian) perusahaan. Saat ini, saham sudah mulai umum dikenal oleh
masyarakat luas sebagai salah satu instrument finansial untuk berinvestasi. Hal ini
diakibatkan oleh karakteristik investasi saham yang relative mempunyai return lebih besar
dibandingkan dengan deposito, tabungan, maupun reksa dana.
Meskipun demikian, sesuai dengan konsep dasar finansial yaitu high risk high return,
saham juga mempunyai resiko yang cukup tinggi dibanding instrument investasi yang lain.
Karena resikonya yang cukup tinggi, para pemain saham, atau dikenal juga sebagai trader,
berusaha untuk mengkuantifikasi resiko yang ada pada suatu saham dan berusaha
mengurangi resiko tersebut. Oleh karena itu, muncullah profesi risk management sebagai
salah satu penopang dunia investasi saham. Pada umumnya, cara yang paling sederhana
untuk mengetahui secara statistika resiko kerugian pada saham tertentu menggunakan
pendekatan Value at Risk (VaR).
Value at Risk dari sebuah saham dapat memberi informasi kepada trader tentang
potential loss, probabilitas tentang potential loss, and time frame yang digunakan. Umumnya,
terdapat beberapa metode untuk menentukan Value at Risk dari sebuah saham. Akan tetapi,
dalam makalah ini hanya akan digunakan 2 (dua) buah metode saja untuk menentukan nilai
Value at Risk dari sebuah saham yang akan menjadi bahan analisis yaitu PT Telekomunikasi
Indonesia (TLKM.JK).
-
2
PT Telekomunikasi Indonesia (TLKM.JK) merupakan salah satu perusahaan BUMN
terbesar dalam bidang telekomunikasi dan penyedia layanan internet (network service
provider). TLKM.JK mencatatkan diri di Bursa Efek Jakarta sejak tanggal 14 November
1995 dan dikenal sebagai salah satu index berkategori LQ 45 di Bursa Efek Indonesia. Saham
ini juga dikenal luas mempunyai korelasi yang kuat dengan IHSG, dengan kata lain,
pergerakan saham ini dipercaya hampir sama dengan pergerakan IHSG (Indeks Harga Saham
Gabungan).
Pada makalah ini, akan dianalisis Value at Risk pada saham TLKM.JK menggunakan
data history price sejak tahun 2009. Akan dilihat distribusi keuntungan dengan penggunaan
waktu trading yang berbeda beda serta korelasinya dengan IHSG.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan sebelumnya, terdapat rumusan
masalah, yaitu
1.2.1 Bagaimana distribusi keuntungan dari saham TLKM.JK menggunakan waktu
trading harian dan bulanan?
1.2.2 Bagaimana Value at Risk keuntungan saham TLKM.JK dalam jangka waktu
trading yang berbeda beda dan perbandingan VaR dari metode yang berbeda?
1.2.3 Bagaimana pergerakan harga saham TLKM?
1.3 Tujuan
Tujuan yang hendak dicapai dalam penulisan makalah ini adalah:
1.3.1 Menjelaskan persebaran return dalam trading saham TLKM.JK
1.3.2 Mengetahui Value at Risk TLMK.JK menggunakan horizon waktu yang berbeda.
1.3.3 Menganalisis pergerakan harga TLKM.JK.
-
3
BAB 2
TEORI DASAR
Pada Bab ini, akan dijelaskan secara singkat teori dasar tentang Value at Risk dalam
saham dan general syntax syntax umum yang digunakan pada pengambilan data, procedure
yang dipakai dalam pengolahan dan analisis VaR dari saham TLKM.JK.
Value at Risk
Seperti yang pernah disinggung pada bagian Latar Belakang, Value at Risk
merupakan teknik statistic yang digunakan untuk mengukur dan mengkuantifikasi tingkat
resiko dari sebuah perusahaan atau portfolio investasi dalam jangka waktu tertentu.
Investopedia sendiri, sebagai salah satu web yang menyediakan informasi tentang investasi
mendefinisikan VaR sebagai demikian:
A statistical technique used to measure and quantify the level of financial risk within a firm or investment portfolio over a specific time frame. Value at risk is used by risk managers in order to measure and control the level of risk which the firm undertakes. The risk manager's job is to ensure that risks are not taken beyond the level at which the firm can absorb the losses of a probable worst outcome. Value at Risk is measured in three variables: the amount of potential loss, the probability of that amount of loss, and the time frame. For example, a financial firm may determine that it has a 5% one month value at risk of $100 million. This means that there is a 5% chance that the firm could lose more than $100 million in any given month. Therefore, a $100 million loss should be expected to occur once every 20 months.1
Dapat disimpulkan bahwa VaR adalah ukuran resiko sebuah portfolio dalam
jangka waktu tertentu. VaR memberikan informasi seberapa parah kerugian yang akan
dialami oleh investor dengan tingkat kepercayaan dan modal yang dikeluarkan. Terdapat
beberapa cara untuk menghitung VaR dari sebuah portfolio, tetapi hanya akan dibahas 2
(dua) yaitu Metode Data Historis (Historical Method) dan Variance Covariance Method.
1 http://www.investopedia.com/terms/v/var.asp (diakses pada Maret 2014)
-
4
Perhitungan VaR dengan kedua metode tersebut memilki kesamaan yaitu melihat
volatilitas saham yang menjadi objek penelitian sehingga dapat ditarik kesimpulkan
tentang persen kerugian terparah yang mungkin dapat dialami oleh investor.
Metode historis menggunakan data data harga yang historis dengan melihat
persentase return dan mengurutkan persentase return dari yang paling buruk ke yang
paling baik. Asumsi yang digunakan dalam perhitungan VaR menggunakan metode ini
adalah perulangan sejarah tentang rate of return di masa depan.
Misalkan saja terdapat saham ABC yang telah dihitung rate of return per harinya
dengan cara melihat perbandingan selisih harga saham pada pembukaan bursa dan
penutupan bursa terhadap harga pada saat bursa dibuka, maka rate of return dari
beberapa tahun kebelakang akan diplot dalam suatu histogram untuk melihat frekuensi
dari setiap rate of return yang telah terjadi dalam beberapa waktu kebelakang. Nilai VaR
dari cara ini adalah dengan melihat persentile dari bagian kiri histogram atau bagian
dengan rate of return paling rendah. Misalkan saja digunakan persentil 1% dihitung dari
bagian kiri histogram dan ditemukan ROR -6%, maka dapat disimpulkan adalah dengan
metode daily trading, seorang investor dapat yakin sebesar 99% bahwa investasinya tidak
akan merugi lebih dari 6% modal. Dapat dilihat dengan jelas bahwa tingkat kepercayaan
VaR ditentukan oleh persentil yang diambil oleh investor. Selain itu, dapat juga
digunakan data historis lainnya misalkan data historis harga bulanan untuk melihat ROR
dan VaR jika seseorang melakukan monthly trading.
Metode kedua yang akan digunakan ada metode variance-covariance. Dalam
metode ini tetap diperlukan data historis daily return dari saham. Perbedaan dari metode
sebelumnya adalah asumsi bahwa daily return yang didapat adalah berdistribusi normal
dan dapat dicari variansi serta standard deviasinya. Hasil kali antara standard deviasi
yang didapat dari data yang ada dengan tingkat kepercayaan (menggunakan inverse dari
-
5
distribusi normal baku) adalah nilai Value at Risk dari trading harian yang dilakukan
investor.
Misalkan saja terdapat data daily return saham ABC selama 10 tahun dan
diketahui bahwa standard deviasinya adalah 2.56%, maka dengan tingkat kepercayaan
99% seseorang dapat mengatakan bahwa kerugian maksimal yang mungkin dari investasi
saham ABC secara harian sebesar 6.81% yaitu hasil kali antara nilai inverse normal
distribusi persentil 1% (1 0.99) dengan standard deviasi return saham. Metode ini juga
dapat mengukur VaR dalam trading dengan jangka waktu yang berbeda yaitu dengan
mengkalian VaR harian terhadap akar dari jumlah hari dalam jangka waktu yang baru.
Dapat dilihat bahwa metode variance-covariance menggunakan asumsi human
error dimana seseorang dapat saham membeli saham di harga yang paling tinggi dan
mendapat kerugian karena menjual di harga yang paling rendah. Hal ini cukup berbeda
dengan metode historis yang mengasumsikan bahwa investor akan membeli saham di
harga pembukaan dan menjual di harga penutupan.
Penggunaan Syntax dalam SAS
Untuk menganalisis VaR dari TLKM.JK sebenarnya tidak diperlukan syntax
syntax yang cukup rumit dikarenakan VaR pada dasarnya hanya melihat volatilitas
pergerakan harga saham dan return-nya. Tercatat penggunaan yang paling besar hanya
pada syntax univariate dan sejenisnya.
Dalam analisis VaR tetap digunakan library permanen sebagai tempat penyimpanan
data set yang akan dibuat. Library adalah semacam folder khusus yang dibaca oleh SAS
dimana terdapat Data Set didalamnya. Secara otomastis, data yang dibuat akan disimpin di
temporary library yaitu work. Untuk library permanen, dapat digunakan syntax
LIBNAME ;
-
6
Dengan catatan bahwa namalibrary maksimal 8 karakter dimulai dengan huruf / underscore
Selain itu digunakan juga syntax IMPORT untuk mengambil dataset dari file external
SAS dengan general syntax yaitu
PROC IMPORT DATAFILE= OUT= ;
Terdapat beberapa opsi yang dapat dimasukkan dalam penggunakan procedure import yaitu
replace untuk langsung mengupdate data set dengan data set baru, getnames sebagai pilihan
pengambilan nama variables dan datarow untuk pilihan pengambilan data pada baris tertentu.
Selanjutnya akan dijelaskan penggunaan syntax berdasarkan 2 (dua) jenis kategori
yaitu procedure and syntax option standard
PROCEDURE / Creating dataset
PROC SORT, digunakan untuk mengurutkan dataset berdasarkan variable tertentu.
General syntax dari prosedur ini adalah
PROC SORT DATA=; BY
PROC MEANS, digunakan untuk mengetahui ringkasan statistiks deskriptif dalam
suatu variable dalam dataset dan dapat dibentuk dari beberapa grup observasi.
Prosedur ini juga dapat menghitung confidence interval, quantiles, dan melakukan uji
distribusi t. General syntax dari prosedur ini adalah
PROC MEANS DATA= ;
CLASS ; VAR ;
Prosedur ini dapat mengeluarkan statistika deskriptif tertentu sesuai dengan keinginan
dengan menambahakn syntax ()=;
PROC UNIVARIATE, sebenarnya hampir sama dengan prosedur mean, tetapi
prosedur univariate dapat dikatakan lebih mempunyai variasi output dikarenakan
-
7
dapat memprediksi jenis distribusi dari variable tertentu dan menguji jenis distribusi
tertentu beserta parameternya. General syntax dari prosedur ini adalah
PROC UNIVARIATE DATA= ; CLASS ; VAR ;
Selain itu, juga dapat ditambahkan opsi pembuatan histogram dan keterangannya
menggunakan syntax HISTOGRAM dan melakukan fitting distribusi terhadap
histogram yang ada misalkan dengan distribusi gamma, weibull, atau lognormal.
PROC REPORT, digunakan untuk membuat ringkasan berbentuk tabular dari
dataset yang ada. General syntax yang dipakai adalah
PROC REPORT DATA= ;
COLUMN ; DEFINE / GROUP or ANALYSIS;
Setelah syntax DEFINE terdapat pilihan untuk membuat variable tersebut menjadi
variable grup atau menjadi variable analisis. Variable analisis adalah variable yang
dicari statitsika deskriptifnya. Selain itu, terdapat syntax BREAK AFTER yang dapat
digunakan untuk memisahkan setiap variable group.
PROC ANOM, digunakan untuk menganalisis rataan dari setiap grup variable
terhadap variable tertentu. Di dalam statistika, biasanya rataan dianalisis dengan
menggunakan ANOVA. General syntax yang dipakai adalah
PROC ANOM DATA=; * / ALPHA= ;
Dalam analisis menggunakan prosedur ini, terdapat beberapa chart yang dapat
dipakai; XCHART dimana untuk melakukan analisis terhadap variable kontinu,
UCHART melakukan analisis dengan variable bertipe diskrit, PCHART untuk
analisis proporsi (perbandingan variable). Prosedur ini juga mengharuskan input alpha
atau taraf signifikansi yang digunakan.
-
8
PROC GPLOT digunakan untuk menampilkan grafik dari variable analisis.
Selain penggunaan prosedur diatas, terdapat beberapa prosedur lain yang digunakan
seperti MERGE untuk menggabungkan data set serta ODS untuk menampilkan data dalam
format pdf.
ADDITIONAL OPTIONS
Terdapat beberapa syntax opsi lain yang juga dipakai selain prosedur, yaitu
RENAME, untuk mengubah nama variable
YEAR, MONTH, DATE, QTR, untuk mengambil penanggalan tertentu berdasarkan
syntax yang dipakai.
FORMAT, untuk melakukan formatting terhadap tipe variable seperti maksimal
decimal yang ditampilkan.
DELETE, untuk menghapus satu baris pada dataset. Biasanya dikombinasikan
dengan syntax conditional IF.
DO, adalah syntax looping untuk melakukan perulangan pekerjaan.
QUANTILE, sebagai fungsi inverse pada distribusi dengan general syntax
QUANTILE(DISTRIBUTION, alpha);
-
9
BAB 3
PEMBAHASAN
Pada Bab ini, akan dibahas tentang pengolahan data menggunakan SAS dan analisis
hasil pengolahan SAS. Untuk mempermudah pembahasan, maka Bab ini akan dibagi menjadi
3 buah subbab yaitu subbab pengolahan data awal, analisis VaR, dan General Analysis.
3.1 Pengolahan Data Awal
Data saham TLKM.JK yang digunakan diambil dari finance.yahoo.com dimulai sejak
tanggal 28 September 2004 sampai tanggal 20 Maret 2014. Sebelum membuat dataset baru
menggunakan data TLKM.JK tersebut, pertama kali dibuat library permanen menggunakan
syntax berikut,
libname sas 'G:\TuBes\SASTuBes';
Sehingga setiap dataset yang dibuat akan tersimpan di dalam library permanen SAS bernama
sas yang terletak di dalam Harddisk G dengan folder TuBes/SASTuBes. Penggunaan library
permanen bertujuan untuk mempermudah pengaturan file.
Selanjutnya, karena data yang didapat mempunyai format csv (figure 1), maka
diperlukan importing data ke dalam sas sehingga dapat dibentuk data set dengan format yang
sesuai dengan program SAS. Dipergunakan procedure import dan perintah recalls last submit
untuk mengubah format variable dataset.
proc import datafile='G:\TuBes\TLKM.csv' out=sas.tlkm_raw replace;
getnames=no; datarow=2;
run;
Syntax diatas menjelaskan bahwa dilakukan importing data dari TLKM.csv ke dalam sas dan
dataset yang dibuat diberi nama tlkm_raw. Digunakan juga option datarow=2 sebagai
perintah untuk memulai pengambilan data dari baris kedua sehingga tidak perlu editing csv.
-
10
data SAS.TLKM_RAW ; (1)
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'G:\TuBes\TLKM.csv' delimiter = ',' MISSOVER DSD lrecl=32767
firstobs=2 ;
informat VAR1 yymmdd10. ; (2)
informat VAR2 4. ; (3)
format VAR1 yymmdd10. ; (4)
format VAR2 comma5.1 ;
format VAR3 comma5.1 ;
input
VAR1 (5)
VAR2
VAR3
;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection
macro variable */
run;
Syntax diatas merupakan hasil dari penggunaan perintah recalls last submit. Dapat
dilihat dibentuk dataset bernama TLKM_RAW (1) dimana terdapat untuk melakukan import
pertama kali perlu dilakukan perintah informat untuk tanggal (2) dan variable lainnya (3),
kemudian baru diformat ulang (4). Selain itu, karena menggunakan perintah import dapat
dilihat bahwa variable yang ada masih belum mempunyai nama jelas (5).
Setelah itu, karena dataset tersebut belum mempunyai nama variable yang jelas maka
perlu dilakukan pergantian nama variable menggunakan syntax RENAME.
data sas.tlkm(rename=(var1=Date var2=Open_Price var3=High_Price
Var4=Low_Price Var5=Close_Price Var6=Volume) drop=var7); (6)
set sas.tlkm_raw; (7)
if var6=0 then DELETE; (8)
run;
Dapat dilihat bahwa syntax diatas menggunakan perintah rename untuk mengganti nama
variable sehingga dapat dimengerti (6). Dataset dengan nama variable baru bernama tlkm
dengan menggunakan dataset yang lama yaitu tlkm_raw (7). Selain itu dilakukan juga
cleaning data (8) dengan menghilangkan data untuk hari libur, yaitu data dengan volume
transaksi adalah 0, menggunakan conditional dan perintah delete.
-
11
Untuk memudahkan pengkategorian dataset berdasarkan tahun, quarter, bulan, dan
hari, maka dilakukan pertambahkan variable tersebut yang diambil dari variable date di
dalam dataset TLKM.
data sas.tlkm;
set sas.tlkm;
Month=month(date); (9)
year=year(date);
day=day(date);
qtr=qtr(date);
output;
format month 2. year 4. day 2. qtr 2.; (10)
run;
/* Sorting date */
proc sort data=sas.tlkm;
by year month date; (11)
run;
Syntax diatas berfungsi untuk menambahkan variable baru (9) yaitu bulan, tahun, hari, dan
quarter ke dalam data set tlkm dan melakukan formatting atas variable tersebut (10).
Setelahnya, dilakukan proses sorting berdasarkan tahun, bulan dan tanggal (11).
Setelah mendapatkan dataset tlkm dengan variable yang lengkap, perlu dibuat juga
dataset pergerakan harga saham TLKM.JK per bulan menggunakan syntax berikut.
proc means data=sas.tlkm noprint max nway missing; (12)
class year month; (13)
var day Open_Price; (14)
output out=sas.temp1(rename=(Open_Price=Price_End day=end_day)
drop=_type_ _freq_) max= ; (15)
run;
/* Merging to get dataset tlkm_month*/
data sas.tlkm_month;
merge sas.temp2 sas.temp1; (16)
return_month=(price_end-price_begin)/price_begin; (17)
format return_month percent7.2;
if _N_=108 then DELETE; (18)
run;
Dataset yang ingin dibuat adalah dataset pergerakan harga saham perbulan sehingga perlu
diketahui harga pembukaan waktu awal bulan dan harga penutupan pada waktu akhir bulan.
Harga pada awal bulan dapat diketahui dengan penggunaan prosedur means (12). Pada
prosedur tersebut akan diekstrak tanggal terbesar (max) pada setiap bulan dan tahunnya
sehingga memakai class year month (13) dan var day (14). Pada dataset baru yang bernama
-
12
temp1 akan berisi informasi tentang harga saham pembukaan pada setiap bulannya (15).
Untuk mencari harga saham pada akhir bulan, digunakan prosedur yang sama dengan
mengubah syntax max menjadi minimum dan pada makalah ini disimpan menjadi dataset
temp2.
Setelah mendapat dataset yang berisi harga pada awal bulan dan akhir bulan,
Penggabungan dataset dapat dilakukan sehingga diperoleh dataset pergerakan harga saham
TLKM.JK per bulan (16). Dataset tersebut diberi nama dataset TLKM_month dan diberi
tambahan variable yaitu return per bulan (17) dengan rumus (harga akhir harga awal)/harga
awal. Variabel return_month tersebut akan ditampilkan dalam bentuk persen. Langkah
terakhir adalah melakukan cleaning pada data ke-108 (18) dikarenakan ketidakvalidan data.
Ketidakvalidan disebabkan oleh aksi stock split yaitu pemecahan nilai saham pada
pertengahan bulan tersebut, yang berakibat berubahnya benchmark harga saham TLKM.JK.
Screenshot dari dataset dapat dilihat pada figure2 dan figure3.
3.2 Analisis Value at Risk
Dari pengolahan data sebelumnya, didapat dua buah dataset yang berisi tentang
informasi pergerakan harga TLKM.JK per bulan maupun per hari. Pada bagian ini, akan
dicari VaR dari kedua dataset tersebut menggunakan 2 metode yang berbeda.
3.2.1 Value at Risk menggunakan metode historis.
Setelah mendapat dataset tlkm yang berisi tentang opening dan closing price harga
saham per hari, maka harus dibentuk suatu data set yang berisi tentang persentase return per
hari. Perhitungan return per hari menggunakan syntax di bawah ini beserta rumusnya (1).
data sas.tlkm_daily;
set sas.tlkm;
return_daily=((Close_Price-Open_Price)/Open_Price); (1)
output;
format return_daily percent7.2; run;
-
13
Setelah mendapatkan dataset yang berisi tentang informasi persentase return per hari,
akan dibuat histogram berdasarkan persentase return (4). Histogram tersebut akan
dikategorikan berdasarkan tahun sehingga setiap tahun (3) mempunyai histogram return daily
yang berbeda beda.
goptions device=pslepsfc xmax=6in ymax=4in gsfname=fig gsfmode=replace;
title height=5 'Distribution of Daily Return'; (1)
proc univariate data=sas.tlkm_daily; (2)
class year; (3)
var return_daily; (4)
histogram return_daily / normal(mu=est sigma=est); (5)
inset n mean std normal(ad adpval) / height=2.5 format=4.3
position=NW; (6)
run;
quit;
Dapat dilihat pada syntax diatas, bahwa prosedur univariate diperlukan untuk membentuk
histogram yang diinginkan (2). Penggunaan judul (1) dan keterangan lainnya (6) diberikan
pada histogram untuk memperkaya keterangan pada histogram. Selain itu, histogram juga
ditaksir melalui distribusi normal, dan berdasarkan data yang ada (figure 4) dapat dilihat
bahwa persebaran return tiap tahunnya bukan merupakan distribusi normal.
Secara pengelihatan, kurva estimasi yang dihasilkan dari histogram rata rata
mempunyai bentuk distribusi normal. Akan tetapi, dengan melakukan uji hipotesis diketahui
hampir bahwa tidak ada satu pun tahun dimana distribusi returnnya adalah normal, hanya
pada tahun 2004 uji hipotesis bahwa distribusi return adalah normal tidak dapat ditolak
(menggunakan alfa 5%). (figure 5)
Jika ditinjau dari semua data yang ada, maka dapat dilihat bahwa distribusi return
harian dari saham TLKM.JK tidak membentuk distribusi normal. Untuk mengetahui hal
tersebut dengan lebih detil dibentuk plot probabilitas distribusi normal (9) terhadap variable
return_daily (8) masih dengan menggunakan prosedur univariate (7).
title height=4 'Probability Plot for Daily Return'; proc univariate data=sas.tlkm_daily normaltest; (7)
var return_daily; (8)
probplot return_daily / normal(mu=est sigma=est); (9)
inset n mean std normal(ad adpval) / height=2.5 format=4.3
position=NW;
-
14
Dari grafik probabilitas tersebut (figure 6) dapat dilihat bahwa distribusi return bukan
merupakan distribusi normal dari hasil test yang ada (Kolmogorov-Smirnov, Cramer-von
Mises, Anderson-Darling) dengan alfa=5%. Meskipun demikian, penulis berpendapat bahwa
hal ini disebabkan oleh pencilan atau pergerakan anomaly saham sehingga dapat
menimbulkan return yang terlalu besar atau kerugian yang terlalu besar.
Untuk mencari Value at Risk dari return daily saham TLKM sendiri digunakan syntax
berikut:
/* Value at Risk by percentage */
proc univariate data=sas.tlkm_daily noprint;
var return_daily;
output out=sas.analysis_daily_2 pctlpts=1, 5, 10 pctlpre=P; (10)
format P1 P5 P10 percent7.2;
run;
Syntax diatas menjelaskan bahwa diambil nilai percentile 1%, 5% dan 10% (10) dimana
menggambarkan tingkat kepercayaan 99%, 95%, dan 90%. Nilai tersebut dihitung dari
histogram return saham per hari dimulai dari bagian kiri. Berdasarkan hasil yang diperoleh
(figure 7) dapat disimpulkan bahwa seorang investor dapat mengalami kerugian sebesar
4.46%, 2.40%, atau 1.60% dari modal awalnya tergantung dari alfa yang digunakan (1%, 5%,
atu 10%).
Setelah didapat VaR harian dari saham TLKM, maka akan dilihat VaR jika trading
dilakukan secara bulanan. Oleh karena itu, untuk analisis ini akan digunakan dataset
tlkm_month. Dengan proses yang sama seperti analisis return daily, akan dibuat histogram
return monthly menggunakan prosedur univariate. (11)
title 'Fitting Distribution by Gamma, Weibull, and LogNormal';
proc univariate data=sas.tlkm_month; (11)
var return_month;
histogram /
lognormal (sigma=est) (12)
weibull
gamma (scale=est shape=est);
inset n mean(5.3) std='Std Dev'(5.3) skewness(5.3)
/ pos = ne header = 'Summary Statistics';
axis1 label=(a=90 r=0);
run;
quit;
-
15
Meskipun mempunyai prosedur yang hampir sama dengan pembuatan histogram pada
daily return, jika diperhatikan lebih baik, akan terlihat bahwa selama 10 tahun terakhir tidak
terjadi return negative jika berinvestasi secara bulanan pada saham TLKM.JK. Oleh karena
itu, distribusi yang dipakai untuk mengestimasi distribusi return bulanan adalah Lognormal,
Weibull, dan Gamma (12). Dari uji yang dilakukan, ditemukan bahwa distribusi return
bulanan pada saham TLKM.JK mendekati distribusi gamma dengan p value 0.1 dan
parameter scale 0.03 dan shape 3.92. (figure 8).
Setelah mengetahui distribusi return bulanan pada saham TLKM.JK maka akan dicari
Value at Risk jika melakukan trading bulanan.
proc univariate data=sas.tlkm_month noprint; (13)
var return_month;
output out=sas.analysis_monthly pctlpts=1, 5, 10 pctlpre=P; (14)
format P1 P5 P10 percent7.2;
run;
Karena ingin diketahui VaR return bulanan, maka digunakan prosedur univariate pada dataset
tlkm_month (13). Pada syntax di atas, kalkulasi VaR menggunakan alfa yang berbeda yaitu
1%, 5%, dan 10% (14) akan menghasilkan Value at Risk 2.6%, 4.2%, atau 5.61 % (figure 9).
Value at Risk yang selalu positif terjadi karena tidak ditemukannya return negative pada
historis trading saham TLKM.JK secara bulanan. Dengan kata lain, jika seseorang
mengivestasikan uangnya pada awal bulan dengan membeli saham TLKM.JK dan menjual
lagi pada akhir bulan, secara historis, orang tersebut akan mendapatkan keuntungan
3.2.2 Value at Risk menggunakan metode variance-covariance.
Sesuai dengan nama metode yang digunakan, diperlukan data variansi dari rate of
return per bulan untuk menentukan Value at Risk dari saham TLKM.JK.
proc means data=sas.tlkm_daily noprint; (15)
var return_daily; (16)
output out=sas.tlkm_std(drop=_TYPE_ _FREQ_)
std(return_daily)=daily_std; (17)
run;
-
16
Syntax di atas berfungsi untuk membentuk suatu dataset baru yang hanya berisi tentang
standard deviasi return daily dari saham TLKM.JK. Prosedur yang digunakan adalah means
(15) dengan variable return_daily (16) sebagai variable analisis. Dataset yang berisi standard
deviasi diberi nama tlkm_std (17) dan hanya memiliki 1 variabel dan 1 input yaitu standard
deviasi.
Setelah mendapatkan nilai std deviasi dari return harian pada transaksi saham
TLKM.JK, maka harus dibuat variable baru yaitu alpha, nilai Z normal dari alpha yang
dipakai, dan tentunya VaR per hari maupun per bulan.
data sas.tlkm_std;
set sas.tlkm_std;
do alpha= 0.01, 0.025, 0.05, 0.075, 0.1; (18)
Z_value=quantile('Normal', alpha); (19)
VaR_daily=Z_value*daily_std; (20)
VaR_monthly_daily=VaR_daily*sqrt(20); (21)
output;
end;
format VaR_daily VaR_monthly_daily percent7.2;
run;
Syntax di atas menjelaskan tentang penentuan VaR melalui metode variance-covariance.
Dapat dilihat bahwa digunakan 5 jenis alpha yang berbeda (18) dan dari nilai apha tersebut
akan dicari nilai Z normal baku dengan menggunakan syntax quantile (19). Setelah mendapat
nilai Z normal baku, maka Value at Risk daily dapat dicari dengan mengalikan nilai std
deviasi dengan nilai Z baku dari setiap alpha yang dipakai (20). Untuk mencari VaR bulanan,
nilai VaR harian perlu ditransformasikan lagi dengan jumlah hari kerja setiap bulan sehingga
rumus VaR bulanan adalah VaR harian x akar(20) dengan asumsi adalah dalam 1 bulan
terdapat 20 hari kerja (21).
Meskipun dapat menggunakan data VaR harian untuk mencari VaR bulanan, terdapat
cara lain untuk mendapatkan nilai VaR bulanan yaitu dengan langsung menggunakan dataset
tlkm_month dalam perhitungan VaR. Dalam analisis ini, VaR bulanan dari dataset
tlkm_month diberi nama tlkm_std2.
-
17
Dapat dilihat di figure 10 bahwa VaR bulanan yang langsung menggunakan data
return bulanan relative lebih kecil dibandingkan dengan VaR hasil pengolahan dari VaR
harian. Selain itu, dibandingkan dengan metode historis, VaR bulanan dari metode ini
menunjukkan angka negative yang mempunyai arti bahwa seseorang dapat saja merugi
sekian persen dari modal dasarnya. Perbedaan ini disebabkan oleh asumsi yang berbeda dari
kedua metode. Pada metode historis, diasumsikan bahwa investor pasti akan membeli saham
di awal bulan dan menjual di akhir bulan. Di sisi lain, pada metode variance-covariance,
investor dapat saja melakukan trading pad pertengahan bulan dan berjangka waktu 1 bulan
dan jika itu yang terjadi maka terdapat kemungkinan investor akan merugi.
3.3 General Information and Plotting Graphs
Dalam bagian ini data akan dilihat dan beberapa informasi umum yang dapat
diperoleh dari dataset yang telah dibuat. Informasi yang pertama adalah melihat apakah rata
rata keuntungan per hari dari saham TLKM.JK adalah sama untuk setiap tahunnya.
/* Analisis rata - rata return per tahun */
title height=4 'Analisis rataan harian dengan grouping tahun';
proc anom data=sas.tlkm_daily; (1)
xchart return_daily*year / alpha=0.05; (2)
run;
quit;
Digunakan prosedur analysis of mean untuk melihat apakah terdapat kesamaan rata rata
return harian setiap tahunnya (1). Karena return daily merupakan variable kontinu maka
digunakan xchart dengan alpha adalah 5% (2). Hasil dari analysis of mean dapat dilihat di
figure 11 dimana dapat disimpulkan bahwa rata rata keuntungan harian untuk saham
TLKM.JK adalah sama secara statistik.
Selain itu, juga dibuat laporan rata rata keuntungan harian beserta rata rata volume
perdagangan pada setiap tahunnya menggunakan prosedur report (3). Dalam prosedur
-
18
tersebut, variable yang menjadi variable analis adalah return_daily dan volume (6) sedangkan
variable year dan qtr menjadi variable group (5).
title height=4 'Report on Daily Return';
proc report data=sas.tlkm_daily nowindows headline; (3)
column year qtr return_daily volume; (4)
define year/group; (5)
define qtr/group;
define return_daily / analysis 'avg return' width=12 mean; (6)
define volume / analysis 'avg volume' format =15.1 width=10 mean;
break after year / summarize ol skip;
rbreak after / summarize dol;
run;
quit;
Di figure 12 dapat dilihat hasil dari report rate of return harian saham TLKM.JK disusun dari
tahun dan quarter.
Dalam pembahasan sebelumnya telah disinggung sedikit tentang tindakan TLKM.JK
yang melakukan stock split pada tahun 2008. Melalui figure 14 dan 13 dapat dilihat bahwa
ternyat setelah tindakan stock split dilakukan, saham TLKM.JK berkurang volatilitasnya.
Dapat dilihat di dalam grafik bahwa sebelum stock split dilakukan, harga TLKM.JK
mempunyai range dari 4000 sampai 13000 atau dapat dikatakan harga tertingginya adalah
300% lebih harga pembukaan 2013. Akan tetapi, setelah dilakukan tindakan stock split, harga
saham TLKM.JK menjadi berkurang volatilitasnya yang dibuktikan dengan range harga
TLKM.JK setelah stock split adalah berkisar antara 2000 sampai 3000.
Untuk membuat plotting harga saham terhadap waktu digunakan prosedur gplot.
/* Section 3: Plotting */
SYMBOL1 VALUE=dot HEIGHT=0.1 COLOR=red WIDTH=0.1 INTERPOL=JOIN; (7)
SYMBOL2 VALUE=dot HEIGHT=0.1 COLOR=green WIDTH=0.1 INTERPOL=JOIN; (8)
title height=4 'Pergerakan Harga Saham';
proc gplot data=sas.tlkm(WHERE=(_N_>4500)); (9)
plot Open_Price*date; (10)
plot2 Close_Price*date;
run;quit;
title height=4 'Pergerakan Harga Saham';
proc gplot data=sas.tlkm(WHERE=(Open_Price
-
19
Option symbol (7) dan (8) digunakan untuk membedakan plotting harga pembukaan dan
harga penutupan saham. Selain itu, untuk membuat dua buah grafik yang berbeda kondisi
(sebelum stock split dan sesudah stock split) digunakan perintah where (9) dan (11). Pada
akhirnya karena diinginkan grafik open price dan close price pada satu frame digunakan (10).
-
20
BAB 4
KESIMPULAN
Kesimpulan yang didapat setelah menganalis Value at Risk dari saham TLKM.JK
menggunakan 2 metode yang berbeda adalah:
Metode variance covariance mampu memperlihatkan VaR yang lebih baik
dibandingkan dengan metode historis karena mampu untuk memperkirakan hasil
terburuk dari berbagai rencana trading seorang investor. Sedangkan, pada metode
historis, VaR hanya berlaku jika investor melakukan rencana trading seperti pada
asumsi yaitu membeli di harga pembukaan dan menjual di harga penutupan
Saham TLKM.JK merupakan saham untuk investasi jangka menengah, karena dapat
dilihat dari report yang ada bahwa rata rata keuntungan per hari dari saham ini
mendekati nol.
Saham TLKM.JK merupakan saham yang cukup volatile jika dilihat dari
pergerakannya sebelum dilakukan aksi stock split. Aksi stock split yang dillakukan
perusahaan berhasil meredam volatilitas tersebut.
Saran dalam menganalisis saham TLKM.JK kedepannya: akan lebih baik jika
menggunakan data yang lebih besar. Selain itu, dikarenakan distribusi return harian saham ini
tidaklah distribusi normal, maka perlu ditemukan estimasi distribusi yang pas atau dapat juga
dilakukan transformasi agar berdistribusi normal. Ke depannya, dapat juga dilakukan
forecasting harga saham TLKM.JK dengan time series sehingga dapat memberikan analisis
yang lebih tentang pergerakan harga TLKM.JK.
-
21
LAMPIRAN
-
22
LAMPIRAN A (Data Finance.yahoo.com)
-
23
LAMPIRAN B (KODE SUMBER/SOURCE CODE)
/* Section one: Creating and Preparing dataset */
libname sas 'G:\TuBes\SASTuBes';
/**********************************************************************
* PRODUCT: SAS
* VERSION: 9.3
* CREATOR: External File Interface
* DATE: 11OCT13
* DESC: Generated SAS Datastep Code
* TEMPLATE SOURCE: (None Specified.)
***********************************************************************/
data SAS.TLKM_RAW ;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'G:\TuBes\TLKM.csv' delimiter = ',' MISSOVER DSD lrecl=32767
firstobs=2 ;
informat VAR1 yymmdd10. ;
informat VAR2 4. ;
informat VAR3 4. ;
informat VAR4 4. ;
informat VAR5 4. ;
informat VAR6 15. ;
informat VAR7 4. ;
format VAR1 yymmdd10. ;
format VAR2 comma5.1 ;
format VAR3 comma5.1 ;
format VAR4 comma5.1 ;
format VAR5 comma5.1 ;
format VAR6 15. ;
format VAR7 comma5.1 ;
input
VAR1
VAR2
VAR3
VAR4
VAR5
VAR6
VAR7
;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection
macro variable */
run;
proc import datafile='G:\TuBes\TLKM.csv' out=sas.tlkm_raw replace;
getnames=no; datarow=2;
run;
/* Assigning variables name */
data sas.tlkm(rename=(var1=Date var2=Open_Price var3=High_Price
Var4=Low_Price Var5=Close_Price Var6=Volume) drop=var7);
set sas.tlkm_raw;
if var6=0 then DELETE;
run;
/* Separating dates */
data sas.tlkm;
set sas.tlkm;
Month=month(date);
year=year(date);
day=day(date);
-
24
qtr=qtr(date);
output;
format month 2. year 4. day 2. qtr 2.;
run;
/* Sorting date */
proc sort data=sas.tlkm;
by year month date;
run;
/* Creating temp1 */
proc means data=sas.tlkm noprint max nway missing;
class year month;
var day Open_Price;
output out=sas.temp1(rename=(Open_Price=Price_End day=end_day)
drop=_type_ _freq_) max= ;
run;
/* Creating temp2 */
proc means data=sas.tlkm noprint min nway missing;
class year month;
var day Open_Price;
output out=sas.temp2 (rename=(Open_Price=Price_Begin day=begin_day)
drop=_type_ _freq_) min= ;
run;
/* Merging to get dataset tlkm_month*/
data sas.tlkm_month;
merge sas.temp2 sas.temp1;
return_month=(price_end-price_begin)/price_begin;
format return_month percent7.2;
if _N_=108 then DELETE;
run;
/* Section two: Analyze return */
/* Subsection: daily */
/* Creating return_daily variable */
data sas.tlkm_daily;
set sas.tlkm;
return_daily=((Close_Price-Open_Price)/Open_Price);
output;
format return_daily percent7.2;
run;
/* sorting by return daily*/
proc sort data=sas.tlkm_daily;
by return_daily;
run;
proc sort data=sas.tlkm_daily;
by year return_daily;
run;
/* Making histogram */
goptions device=pslepsfc xmax=6in ymax=4in gsfname=fig gsfmode=replace;
title height=5 'Distribution of Daily Return';
proc univariate data=sas.tlkm_daily;
class year;
-
25
var return_daily;
histogram return_daily / normal(mu=est sigma=est);
inset n mean std normal(ad adpval) / height=2.5 format=4.3
position=NW;
run;
quit;
/* Making probability plot for daily return */
title height=4 'Probability Plot for Daily Return';
proc univariate data=sas.tlkm_daily normaltest;
var return_daily;
probplot return_daily / normal(mu=est sigma=est);
inset n mean std normal(ad adpval) / height=2.5 format=4.3
position=NW;
run;
quit;
/* Confidence interval of mu by year */
proc means data=sas.tlkm_daily noprint nway alpha=0.05;
class year;
var return_daily;
output out=sas.analysis_daily
mean(return_daily)=Mean_return_daily
std(return_daily)=std_return_daily
LCLM(return_daily)=Lower_bound
UCLM(return_daily)=upper_bound;
run;
/* Value at Risk by percentage */
proc univariate data=sas.tlkm_daily noprint;
var return_daily;
output out=sas.analysis_daily_2 pctlpts=1, 5, 10 pctlpre=P;
format P1 P5 P10 percent7.2;
run;
/* Subsection 2: VaR monthly */
proc sort data=sas.tlkm_monthly;
by return_month;
run;
proc sort data=sas.tlkm_monthly;
by year return_month;
run;
/* Making Histogram */
goptions device=pslepsfc xmax=6in ymax=4in gsfname=fig gsfmode=replace;
title height=5 'Distribution of Month Return';
proc univariate data=sas.tlkm_month;
var return_month;
histogram return_month / normal(mu=est sigma=est);
inset n mean std normal(ad adpval) / height=2.5 format=4.3
position=NW;
run;
quit;
title 'Fitting Distribution by Gamma, Weibull, and LogNormal';
proc univariate data=sas.tlkm_month;
var return_month;
histogram /
-
26
lognormal (sigma=est)
weibull
gamma (scale=est shape=est);
inset n mean(5.3) std='Std Dev'(5.3) skewness(5.3)
/ pos = ne header = 'Summary Statistics';
axis1 label=(a=90 r=0);
run;
quit;
/* Value at Risk */
proc univariate data=sas.tlkm_month noprint;
var return_month;
output out=sas.analysis_monthly pctlpts=1, 5, 10 pctlpre=P;
format P1 P5 P10 percent7.2;
run;
/* General Information */
/* Return daily average every quarter */
title height=4 'Report on Daily Return';
proc report data=sas.tlkm_daily nowindows headline;
column year qtr return_daily volume;
define year/group;
define qtr/group;
define return_daily / analysis 'avg return' width=12 mean;
define volume / analysis 'avg volume' format =15.1 width=10 mean;
break after year / summarize ol skip;
rbreak after / summarize dol;
run;
quit;
/* VaR By Formula */
proc means data=sas.tlkm_daily noprint;
var return_daily;
output out=sas.tlkm_std(drop=_TYPE_ _FREQ_)
std(return_daily)=daily_std;
run;
data sas.tlkm_std;
set sas.tlkm_std;
do alpha= 0.01, 0.025, 0.05, 0.075, 0.1;
Z_value=quantile('Normal', alpha);
VaR_daily=Z_value*daily_std;
VaR_monthly_daily=VaR_daily*sqrt(20);
output;
end;
format VaR_daily VaR_monthly_daily percent7.2;
run;
proc means data=sas.tlkm_month noprint;
var return_month;
output out=sas.tlkm_std2(drop=_TYPE_ _FREQ_)
std(return_month)=month_std;
run;
data sas.tlkm_std2;
set sas.tlkm_std2;
do alpha= 0.01, 0.025, 0.05, 0.075, 0.1;
Z_value=quantile('Normal', alpha);
VaR_month=Z_value*month_std;
-
27
output;
end;
format VaR_month percent7.2;
run;
data sas.VaR_byformula;
merge sas.tlkm_std sas.tlkm_std2;
by alpha;
run;
/* Analisis rata - rata return per tahun */
title height=4 'Analisis rataan harian dengan grouping tahun';
proc anom data=sas.tlkm_daily;
xchart return_daily*year / alpha=0.05;
run;
quit;
/* Section 3: Plotting*/
SYMBOL1 VALUE=dot HEIGHT=0.1 COLOR=red WIDTH=0.1 INTERPOL=JOIN;
SYMBOL2 VALUE=dot HEIGHT=0.1 COLOR=green WIDTH=0.1 INTERPOL=JOIN;
title height=4 'Pergerakan Harga Saham';
proc gplot data=sas.tlkm(WHERE=(_N_>4500));
plot Open_Price*date;
plot2 Close_Price*date;
run;
quit;
SYMBOL1 VALUE=dot HEIGHT=0.1 COLOR=red WIDTH=0.1 INTERPOL=JOIN;
SYMBOL2 VALUE=dot HEIGHT=0.1 COLOR=green WIDTH=0.1 INTERPOL=JOIN;
title height=4 'Pergerakan Harga Saham';
proc gplot data=sas.tlkm(WHERE=(Open_Price
-
28
LAMPIRAN C (SCREEN SHOT HASIL)
Figure 1: Data csv
Figure 2: data tlkm
Figure 3: data tlkm per month
-
29
Figure 4: persebaran return berdasarkan tahun
Figure 5: Uji Hipotesis distribusi normal
-
30
Figure 7: VaR return daily
Figure 6: Prob plot normal dan uji hipotesis normal pada return
-
31
Figure 8: fitting distribusi dan uji hipotesis gamma
Figure 9: VaR bulanan dengan metode Historis
Figure 10: VaR dengan metode variance-covariance
-
32
Figure 11: analisis of means per tahun
Figure 12: report dari keuntungan saham
-
33
Figure 13: Pergerakan harga saham sebelum stock split
Figure 14: Pergerakan harga saham setelah stock split
-
34
DAFTAR PUSTAKA
Support.SAS.com/documentation [Maret2014]
www.investopedia.com [Maret 2014]
finance.yahoo.com [Maret 2014]
http://www.stat.purdue.edu/~tqin/system101/method/QQplot_sas.htm [Maret 2014]
H. Karp, Andrew. 1994. Steps to Success with PROC MEANS. California: Sierra Information
Service, Inc.