Prediksi Pergerakan Harga Saham

Background

Saham (stock) merupakan salah satu instrumen pasar keuangan yang paling popular. Menerbitkan saham merupakan salah satu pilihan perusahaan ketika memutuskan untuk pendanaan perusahaan. Pada sisi yang lain, saham merupakan instrument investasi yang banyak dipilih para investor karena saham mampu memberikan tingkat keuntungan yang menarik.

Saham dapat didefinisikan sebagai tanda penyertaan modal seseorang atau pihak (badan usaha) dalam suatu perusahaan atau perseroan terbatas. Dengan menyertakan modal tersebut, maka pihak tersebut memiliki klaim atas pendapatan perusahaan, klaim atas asset perusahaan, dan berhak hadir dalam Rapat Umum Pemegang Saham (RUPS).

Pada dasarnya, ada dua keuntungan yang diperoleh investor dengan membeli atau memiliki saham, yaitu:

  1. Dividen merupakan pembagian keuntungan yang diberikan perusahaan dan berasal dari keuntungan yang dihasilkan perusahaan. Dividen diberikan setelah mendapat persetujuan dari pemegang saham dalam RUPS. Jika seorang pemodal ingin mendapatkan dividen, maka pemodal tersebut harus memegang saham tersebut dalam kurun waktu yang relatif lama yaitu hingga kepemilikan saham tersebut berada dalam periode dimana diakui sebagai pemegang saham yang berhak mendapatkan dividen. Dividen yang dibagikan perusahaan dapat berupa dividen tunai, artinya kepada setiap pemegang saham diberikan dividen berupa uang tunai dalam jumlah rupiah tertentu untuk setiap saham atau dapat pula berupa dividen saham yang berarti kepada setiap pemegang saham diberikan dividen sejumlah saham sehingga jumlah saham yang dimiliki seorang pemodal akan bertambah dengan adanya pembagian dividen saham tersebut.

  2. Capital Gain merupakan selisih antara harga beli dan harga jual. Capital gain terbentuk dengan adanya aktivitas perdagangan saham di pasar sekunder. Misalnya Investor membeli saham ABC dengan harga per saham Rp 3.000 kemudian menjualnya dengan harga Rp 3.500 per saham yang berarti pemodal tersebut mendapatkan capital gain sebesar Rp 500 untuk setiap saham yang dijualnya.

Sebagai instrument investasi, saham memiliki risiko, antara lain:

  1. Capital Loss yang merupakan kebalikan dari Capital Gain, yaitu suatu kondisi dimana investor menjual saham lebih rendah dari harga beli. Misalnya saham PT. XYZ yang di beli dengan harga Rp 2.000,- per saham, kemudian harga saham tersebut terus mengalami penurunan hingga mencapai Rp 1.400,- per saham. Karena takut harga saham tersebut akan terus turun, investor menjual pada harga Rp 1.400,- tersebut sehingga mengalami kerugian sebesar Rp 600,- per saham.

  2. Risiko Likuidasi yaitu kondisi dimana perusahaan yang sahamnya dimiliki, dinyatakan bangkrut oleh Pengadilan, atau perusahaan tersebut dibubarkan. Dalam hal ini hak klaim dari pemegang saham mendapat prioritas terakhir setelah seluruh kewajiban perusahaan dapat dilunasi (dari hasil penjualan kekayaan perusahaan). Jika masih terdapat sisa dari hasil penjualan kekayaan perusahaan tersebut, maka sisa tersebut dibagi secara proporsional kepada seluruh pemegang saham. Namun jika tidak terdapat sisa kekayaan perusahaan, maka pemegang saham tidak akan memperoleh hasil dari likuidasi tersebut. Kondisi ini merupakan risiko yang terberat dari pemegang saham. Untuk itu seorang pemegang saham dituntut untuk secara terus menerus mengikuti perkembangan perusahaan.

Di pasar sekunder atau dalam aktivitas perdagangan saham sehari-hari, harga-harga saham mengalami fluktuasi baik berupa kenaikan maupun penurunan. Pembentukan harga saham terjadi karena adanya permintaan dan penawaran atas saham tersebut. Dengan kata lain harga saham terbentuk oleh supply dan demand atas saham tersebut. Supply dan demand tersebut terjadi karena adanya banyak faktor, baik yang sifatnya spesifik atas saham tersebut (kinerja perusahaan dan industri dimana perusahaan tersebut bergerak) maupun faktor yang sifatnya makro seperti tingkat suku bunga, inflasi, nilai tukar dan faktor-faktor non ekonomi seperti kondisi sosial dan politik, dan faktor lainnya.

Diakhir tahun 2015, pemerintah bersama dengan PT. Bursa Efek Indonesia (BEI) meluncurkan kampanye bernama “Yuk Nabung Saham”. Yuk Nabung Saham merupakan kampanye yang bertujuan untuk mengajak masyarakat sebagai calon investor untuk berinvestasi di pasar modal dengan membeli saham secara rutin dan berkala. Tujuan dari progam kerja ini tidak semata fokus pada penambahan jumlah investor baru, namun juga berupaya untuk menanamkan kebutuhan berinvestasi di pasar modal, yang secara tidak langsung akan meningkatkan jumlah investor aktif di pasar modal Indonesia.

Problem Statement

Untuk investor pemula atau yang baru memulai investasi saham, mereka pasti takut akan terjadinya risk dari segi Capital Loss yang dapat terjadi kapan saja. Risk ini yang menghambat investor investor baru untuk memulai investasi mereka di pasar modal.

Project Idea

Salah satu cara yang dapat digunakan untuk meminimalisir terkena risk Capital Loss adalah dengan melakukan forecasting terhadap harga saham baik naik maupun turun yang dilihat berdasarkan pattern sebelumnya.

Problem Scope

Pada project ini data yang akan digunakan adalah data yang didapatkan dari Yahoo Finance berupa histori pergerakan harga saham yang dinilai merupakan saham yang aman untuk diinvestasikan. Adapula data yang akan dipakai adalah data dari saham BBCA.JK dan UNVR.JK sebagai saham golongan tingkat profil risiko rendah, BBRI.JK dan KLBF.JK untuk saham golongan tingkat profil risiko sedang, dan BUKA.JK sebagai saham dengan golongan tingkat profil risiko tinggi.

Profil risiko rendah berarti investor bersedia menerima hasil dari investasinya yang lebih rendah asalkan investasi tersebut aman.

Profil risiko sedang berarti investor bersedia untuk menerima fluktuasi harga yang lebih signifikan dibanding dengan saham saham dengan profil risiko rendah dengan potensi hasil invesatasi yang lebih tinggi.

Profil risiko tinggi berarti investor bersedia menerima fluktuasi harga yang sangat signifikan yang berpotensi menghasilkan kerugian yang sangat besar dengan peluang yang dapat menghasilkan keuntungan yang sangat tinggi.

Dataset ini mengandung informasi sebagai berikut:

  • date : Tanggal
  • open : Harga saham pada saat waktu pembukaan di hari tersebut
  • high : Harga saham tertinggi dihari itu
  • low : Harga saham terendah dihari itu
  • close : Harga saham pada saat waktu penutupan di hari tersebut
  • adjusted : Harga saham pada saat waktu penutupan yang telah disesuaikan di hari tersebut
  • volume : Jumlah lembar saham yang ditransaksikan di hari tersebut

Output

Output dari project ini adalah sebuah dashboard yang menampilkan hasil forecast harga saham untuk jangka waktu tertentu serta rekomendasi apakah dengan harga tersebut sebaiknya investor membeli, hold, atau menjual sahamnya.

Business Impact:

Dari project ini diharapkan dapat bermanfaat terutama untuk individu individu yang ingin memulai berinvestasi saham agar dengan capital yang secukupnya mendapatkan profit sebanyak-banyaknya.

Data Preparation

Import Library

library(dplyr)
library(lubridate)
library(padr)
library(zoo)
library(tidyquant)

Import Data

BBCA <- tq_get(x = "BBCA.JK",
               get = "stock.prices",
               from = "2019-01-01")
tail(BBCA)

Deskripsi data:

Melihat apakah data terdapat miissing value

colSums(is.na(BBCA))
##   symbol     date     open     high      low    close   volume adjusted 
##        0        0        0        0        0        0        0        0

Salah satu karakteristik data Time Series adalah waktunya harus berurut sehingga perlu dilakukan pengurutan data berdasarkan tanggal dimulai dari tanggal tertua hingga tanggal termuda.

BBCA <- BBCA %>% arrange(date)

head(BBCA)

Lalu waktu didalam data harus memiliki interval waktu yang sama. Dalam kasus ini interval waktunya berdasarkan hari. Berdasarkan data head, dapat dilihat bahwa terdapat tanggal yang bolong. Sehingga kita harus mengisi kekosongan tanggal tersebut dengan fungsi pad

BBCA <- BBCA %>% pad()

head(BBCA)

Lalu kita mengecek apakah tanggalan kita sudah lengkap atau belum

complete_date <- seq.Date(from = min(BBCA$date),
                          to = max(BBCA$date),
                          by = "day")

all(complete_date == BBCA$Date)
## [1] TRUE

Output True menunjukan kalau tanggalan kita sudah lengkap dan tidak ada tanggal yang terlewat. Dikarenakan data Time Series juga tidak memperbolehkan adanya missing value, kita akan mengimputasi nilai tersebut. Pasar modal pada dasarnya buka setiap hari dari hari Senin hingga hari Jumat dan tidak akan buka dihari Sabtu, Minggu, dan hari libur/tanggal merah. Jadi dapat diasumsikan tanggal yang hilang adalah tanggalan pasar modal libur sehingga tidak ada transaksi pada hari tersebut. Jadi dapat kita isi dengan value 0.

BBCA <- BBCA %>% 
  mutate(symbol = na.fill(symbol,
                          fill = "BBCA.JK"),
         open = na.fill(open,
                         fill = 0),
         high = na.fill(high,
                         fill = 0),
         low = na.fill(low,
                         fill = 0),
         close = na.fill(close,
                         fill = 0),
         adjusted = na.fill(adjusted,
                         fill = 0),
         volume = na.fill(volume,
                         fill = 0))

head(BBCA)

Exploratory Data Analysis

Dalam dunia saham, terdapat beberapa istilah dasar yang wajib dipahami. Yaitu istilah open, high, low, close, volume, dan adjusted.