BAB 3
METODOLOGI PENELITIAN
3.1 Metodologi Penelitian
Proses penelitian akan dilaksanakan sesuai dengan tahapan-tahapan penelitian berikut:
3.1.1 Studi Literatur
Pada tahapan ini dikumpulkan berbagai informasi dengan metode studi literatur terkait topik saham, analisis teknis, tren saham, indikator saham seperti moving average, rsi, MACD dan juga model XGBoost yang digunakan. Informasi diperoleh melalui artikel dan jurnal ilmiah paling lama 10 tahun terakhir.
3.1.2 Pengumpulan Data
Pada tahapan ini dilakukan pengambilan data dari web yahoo finance mengenai beberapa saham perusahaan dari LQ45 bursa efek indonesia. Dari yahoo finance didapatkan data OHLCV (Open, High, Low, Close and Volume). Data yang digunakan dalam penelitian ini adalah data weekly dari setiap saham yang digunakan di mana data akan mengambil 1 titik data setiap minggu dan data berikutnya yang diambil memiliki interval 7 hari seperti yang ditampilkan di kolom date pada Gambar 3.1.
Gambar 3.1. Data dari yahoo finance
Pengujian akan menggunakan dua tipe dari data saham yang digunakan.
Berdasarkan hasil dari Gambar 3.2, imbalance data dapat dilihat dari ”Counter”
yang menampilkan jumlah data dalam setiap kelas. Berat yang diberikan untuk setiap kelas ditampilkan pada ”Class weights” dan dapat diperhatikan bahwa data minoritas diberikan berat yang lebih besar jika dibandingkan dengan data mayoritas.
Gambar 3.2. Class weights 3.1.3 Perancangan
Pada tahapan ini akan merancang tahap-tahap pekerjaan yang perlu dilakukan sebelum dan sesudah pengolahan data dalam bentuk flowchart sebagai gambaran proses dari pekerjaan kode. Flowchart aturan akan dibuat untuk memperjelas aturan yang mendefinisikan sinyal tren yang dihasilkan indikator yang akan digunakan model XGBoost.
3.1.4 Implementasi
Pada tahapan ini, rancangan pada tahapan sebelumnya akan dibuat
Implementasi persiapan data dan Model XGBoost akan dilaksanakan pada tahap ini.
3.1.5 Pengujian dan Evaluasi
Pada tahapan ini dilakukan pengujian fungsionalitas dari kode yang dibuat untuk memastikan keseluruhan sistem berjalan dengan baik. Setiap tahap yang dapat meningkatkan performa dari model akan diuji secara manual untuk memastikan hasil perhitungan terbaik. Akurasi akhir dari model XGBoost yang dibuat akan menentukan validitas dari hasil yang diperoleh.
3.1.6 Dokumentasi
Pada tahapan ini dilakukan dokumentasi dari setiap langkah-langkah penelitian yang dilaksanakan dari awal mulai penelitian hingga penyelesaian penelitian.
3.2 Flowchart
Berikut ini merupakan flowchart yang menampilkan alur dari kode yang dibuat dan dapat dilihat melalui tahap-tahap berikut.
3.2.1 Flowchart Pre-processing
Gambar 3.3 merupakan flowchart proses pre-processing. Setelah mendapatkan data set saham yang ingin digunakan, tahap selanjutnya adalah untuk menghasilkan nilai dari indikator teknis yang digunakan. Data indikator yang digunakan untuk menentukan label tren naik, turun, atausideways di tentukan oleh nilai konjungsi dari indikator Hull’s moving average (HMA), Relative Strength Index (RSI), dan Moving Average Convergence Divergence (MACD). Hasil tersebut juga divalidasi menggunakan garis berwarna yang dibandingkan dengan pergerakan hargaclosesaham yang digunakan.
Gambar 3.3.Flowchart pre-processing
Gambar 3.4 merupakan flowchart proses konjungsi dari nilai indikator teknis. Proses konjungsi dilakukan pada indikator teknis untuk menghasilkan sinyal tren yang lebih kuat. Dalam penelitian ini, sinyal tren 0 (Uptrending) hanya akan dihasilkan jika semua indikator teknis menghasilkan sinyal tren 0. Sinyal tren 2 (Downtrending) hanya akan dihasilkan jika semua indikator teknis menghasilkan sinyal tren 2. Jika indikator teknis tidak memenuhi kedua persyaratan tersebut maka hasil yang didapatkan adalah sinyal tren 1 (Sideways). Hal tersebut berarti bahwa sinyal tersebut kurang signifikan untuk menentukan kenaikan maupun penurunan tren saham.
Gambar 3.4. Flowchart generate conjuction trend signal 3.2.2 Flowchart utama
Gambar 3.5 merupakan flowchart utama dari alur proses kode prediksi, tahap pertama kode akan mengambil data set yang telah melalui tahap pre- processing. Tahap kedua kode akan mengeksplorasi dan menganalisis data yang diambil. Pada tahap ketiga, data set akan diproses untuk membuang data input yang memiliki korelasi tinggi dengan data input lain untuk menghindari pengulangan data, menghilangkan data dengan nilai yang hilang dan juga memisah data set tersebut menjadi variabel dependen dan independen. Tahap keempat akan dilakukan feature selectionuntuk mencari variabelinputyang memiliki hubungan yang paling besar untuk mendapatkan target. Tahap kelima adalah tahapan di mana data digunakan model XGBoost untuk memperoleh hasil prediksi dan juga kinerja dari model. Tahapan terakhir adalah untuk menampilkan hasil kinerja model dan hasil prediksinext week.
Gambar 3.5. Flowchartutama 3.2.3 Flowchart Data Processing
Gambar 3.6 merupakan flowchart pada tahapan data processing. Tahap pertama dari data processing adalah pembuangan data yang memiliki korelasi tinggi dengan data indikator teknis yang digunakan. Tahap kedua adalah kode mencari semua nilai nol dalam setiap kolom data set. Tahap ketiga adalah untuk membuang semua data nol tersebut. Tahapan terakhir dalam data processing adalah untuk
Gambar 3.6.Flowchart data processing 3.2.4 Flowchart Feature Selection
Gambar 3.7 merupakan flowchart pada tahapan Feature selection yang dilakukan untuk memilih variabel yang akan digunakan dalam model. Tahap pertama dalam Feature Selection adalah untuk memilih secara manual metode pemilihan fitur yang ingin digunakan. Jenis metode pemilihan fitur yang diuji dalam penelitian ini adalah metode korelasi dan metode Recursive feature elimination (RFE) untuk melihat pengaruh metode pemilihan fitur pada data saham.
Gambar 3.7. Flowchart feature selection 3.2.5 Flowchart Train XGBoost Model
Gambar 3.8 merupakan flowchart pada tahapan Train XGBoost Model.
Tahap pertama dalam Train XGBoost Model adalah untuk menentukan ukuran windowdata historis yang akan digunakan untuk memprediksi tren saham. Window merupakan jumlah data historis yang digunakan untuk memprediksi variabel target.
Tahap kedua dari kode adalah dataframe untuk menyimpan data windowed sebagai input dan dataframe untuk menyimpan variabel target. Tahap ketiga merupakan tahapan di mana kode mendefinisikan model XGBoost Classifier. Pada tahap keempat merupakan tahap mendefinisikan ukuran split yang digunakan dalam time series split. Tahap kelima dalam kode menggunakan GridSearchCV untuk memilih parameter yang menghasilkan kinerja model tertinggi. Tahap keenam adalah tahap penambahan kode yang dibutuhkan early stop pada metode fit untuk
memprediksi tren saham. Pada tahap kesembilan, kode akan menampilkan hasil kinerja dari model XGBoost yang perlu dievaluasi untuk meningkatkan kinerja tersebut dan tahap terakhir dari kode dilakukan prediksinext weektren.