Pada Part#2 ini saya ingin berbagi tentang perihal teknis dari projek Machine Learning. Baik, kita mulai darimana yah. Mau dari depan ke belakang (forward) atau dari belakang ke depan (backward) ? Biar mudah dipahami, maka saya akan menjelaskan dengan metode backward. Alias dari hasil output – proses – Input. Khan biasanya metode forward menjelaskan sistem dengan input – proses – output.
Pair : EURUSD - TF : 30 Bullish / Bearish : Bearish Prev Close : 1.10053 at : 2023-04-28 10:00:00 ------------------------------------------------------------------------------------ Model NextClose Closest Action MinPred MaxPred Accuracy(%) ------------------------------------------------------------------------------------ 1. RF 1.10457 1.10457 BUY 1.10457 1.10552 99.96 2. LSTM 1.10254 1.10159 BUY 1.10159 1.10254 99.94 3. Fine-LSTM 1.10266 1.10187 BUY 1.10187 1.10266 99.94 4. SARIMAX 1.09671 1.09763 SELL 1.09561 1.64402 99.48 5. Hybrid 1.09904 1.09922 SELL 1.09830 1.42732 NaN 6. Future-LSTM 1.10420 1.10074 BUY 1.10074 1.10420 NaN ------------------------------------------------------------------------------------- ***The Closest Pred : 1.10074 >>> BUY The Nearest Next Close : 1.09904 >>> STRONG SELL The Lowest Pred : 1.09561 The Highest Pred : 1.64402 The highest Accuracy : 99.96 % Predicting is DONE! -- Pair: EURUSD at TF: 30
Itu adalah contoh output dari Machine Learning. Terdapat informasi tentang pair yang digunakan, dalam contoh tersebut adalah EURUSD pada period atau TimeFrame (TF) 30 Menit (M30), lalu ada informasi tentang kondisi market, Bearish/Bullish, harga penutupan pada TF sebelumnya, yaitu Prev Close, lengkap dengan format Datetime. Lalu pada tabel diberikan hasil prediksi dari 6 Model yang mana masing-masing model menampilkan hasil prediksi harga NextClose, Closest (harga terdekat dari Prev Close), Action, Minimum Prediction, Max Prediction, Score, dan Accuracy (%). Sebagai tambahan, dibawah tabel adalah kesimpulan dari hasil ke 6 models. Closest adalah angka terdekat dari sekumpulan hasil prediksi setiap model terhadap angka Prev Close. Sedangkan Nearest Next Close adalah angka terdekat dari prediksi NextClose.
Bagaimana jika ditambah tampilan visual dari Metatrader seperti Gambar 1 di bawah ini ?
Garis (dot) merah adalah hasil prediksi pergerakan harga Next N-bars dari Machine Learning yang diterima oleh Metatrader.
Jadi….bagaimana sekarang? Dengan adanya prediksi dari Machine Learning dan visualisasi, sudah berani ambil posisi trade ? Kalau belum berani, ga masalah…Memang salah satu faktor penting dalam dunia trading adalah Mind Set atau mentalitas.
Nah….bagaimana kalau Anda mendapatkan informasi seperti diatas. Apakah informasi tersebut sangat membantu Anda dalam mengambil keputusan?
OK…itu tadi adalah output. Sekarang saya mau jelaskan proses.
Untuk lebih mudah dipahami, saya akan berikan semacam pseudocode baik dari sisi Server dan juga Client.
Pseudocode Server Side:
1. Create Socket Server at [IP_Address] and [Port] 2. While True: a. Receive JSON_Data from MT4 (client) 3. Parsing JSON_Data 4. Create a new dataframe 5. Adding Features and Indicators into dataframe 6. Define Target 7. Splitting data into Data_Train, Data_Valid, Data_Test 8. Training Phase a. Train with Random Forest b. Train with LSTM c. Train with Finetuned-LSTM d. Train with SARIMAX e. Train with Hybrid (LSTM + SARIMAX) 9. Validation Phase 10. Testing Phase 11. Evaluation Phase 11. Predicting Phase 12. Future Prediction 13. Candle Pattern Detection a. Detecting Bearish candle b. Detecting Bullish candle 14. Analyzing Results 15. Send the results via JSON to MT4 (client)
Pseudocode Client Side:
1. Connect to Server via socket at [IP_Address] and [Port] 2. Create JSON_Data 3. If Socket.Send and Object_Click = 'Connect & Train': Sending JSON_Data to Server 4. While Socket.Receive: Parsing JSON_Data 5. While Object_Click = 'Predict' Draw objects 6. While Object_Click = 'Place Order' Open Trade 7. While Object_Click = 'Re-Train' Sending JSON_Data to Server 8. Read JSON_Data: Open Trade Automatically (Optional)
Bagaimana….sudah mulai bisa memahami konsep projek ini? Jika belum, normal….saya juga ga faham …. hahahaha 😀 😀 😀
Bagian berikutnya yang saya akan dibahas adalah input. Seperti saya sudah sampaikan pada Part#1, bahwa input data berupa harga (price) OHLC (Open, High, Low, Close) dari sejumlah candles / bars yang bersumber dari Metatrader (Lihat Gambar 2 di bawah). Untuk keperluan ini, kita perlu membuat sebuah Expert Advisor (EA) dengan menggunakan bahasa MQL4 dan dijalankan pada Metatrader. Adapun pseudocodenya bisa dilihat pada bagian Client Side. Jadi Client side menggunakan bahasa pemrograman MQL4, sedangkan Server side menggunakan Python. Antara MQL4 dan Python bertukar informasi atau data melalui JSON. Metatrader memberi input berupa harga OHLC untuk diproses oleh Machine Learning dan output berupa hasil prediksi dikirim kembali ke Metatrader.
Voila…..itu saja penjelasan singkat dari projek ini. Agar lebih jelasnya, insya’Allah saya akan buat videonya. Mohon sabar menunggu yah….. 😀 😀 Saya aja sabar yang bikin projek ini…. 😀 😀
Oh iya, lalu bagaimana hasilnya ? Silahkan baca Part #3 yah…..sedang di ujicoba dulu.
Silahkan tinggalkan komentar, kritik, atau pertanyaan pada kolom di bawah. Saya akan berusaha semampu saya untuk menjawabnya. *Dengan catatan kalau sempat…xixixixi 😛 😀
Colmar, 29/04/2023, Springtime