ทำนายราคาคริปโตเคอเรนซี่ ด้วย Machine Learning
Published: 2023-04-10 08:52:33

ราคาของคริปโตเคอเรนซี่นั้นมีการเปลี่ยนแปลงอยู่เสมอ ซึ่งเกิดได้หลากหลายสาเหตุนอกจากการซื้อขาย ไม่ว่าจะเป็นกระแสข่าวต่างๆหรือความนิยมของสกุลเงินคริปโตนั้นๆ ทำให้คาดเดาทิศทางราคาได้ค่อนข้างยาก การใช้ Machine Learning นั้นจะทำการศึกษาข้อมูลการซื้อขายในอดีตเพื่อช่วยทำนายแนวโน้มทิศทางของราคาคริปโตเคอเรนซี่ได้ ดังนั้นผมจะนำเสนอขั้นตอนและวิธีการต่างๆให้เห็นว่าการใช้AIเข้าช่วยจะเป็นอย่างไรบ้าง โดยใช้สกุลเงินอย่าง bitcoin เป็นตัวอย่าง

## ขั้นตอนที่1 : รวบรวมข้อมูลราคาของbitcoin มาวิเคราะห์

> ในการจะทำระบบ Machine Learning นั้นจำเป็นต้องที่จะมีข้อมูลในการศึกษาก่อน โดยนำข้อมูลราคาคริปโตจาก Yahoo Finance โดยใช้ yfinance API ในการรันโค้ด ซึ่งจะแสดงราคา bitcoin ในช่วง 730 วันที่ผ่านมา
> `หมายเหตุ : yfinance API เป็น API ที่ให้บริการโดย Yahoo Finance ซึ่งข้อดีคือข้อมูลจะถูกอัปเดตเป็นราคาล่าสุดอยู่เสมอ`

```
import pandas as pd
import yfinance as yf
import datetime
from datetime import date, timedelta
today = date.today()

d1 = today.strftime("%Y-%m-%d")
end_date = d1
d2 = date.today() - timedelta(days=730)
d2 = d2.strftime("%Y-%m-%d")
start_date = d2

data = yf.download('BTC-USD', 
                      start=start_date, 
                      end=end_date, 
                      progress=False)
data["Date"] = data.index
data = data[["Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"]]
data.reset_index(drop=True, inplace=True)
print(data.head())
data.shape
```
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2kgj7yavdlxo2hkbu3p8.png)

> จากตารางข้อมูลจะเห็นได้ว่ามีเพียง5แถวหรือ5วันซึ่งไม่ตรงกับที่เรากำหนดไว้ ดังนั้นเราจึงต้องตรวจสอบข้อมูลว่าตรงหรือไม่ผ่านการรันโค้ดตัวนี้
```
data.shape
```
`(730, 7)`

> หลังจากตรวจสอบเรียบร้อยแล้ว เราจะแสดงให้เห็นการเปลี่ยนแปลงราคาเป็นกราฟรูปแบบแท่งเทียนกัน
```
import plotly.graph_objects as go
figure = go.Figure(data=[go.Candlestick(x=data["Date"],
                                        open=data["Open"], 
                                        high=data["High"],
                                        low=data["Low"], 
                                        close=data["Close"])])
figure.update_layout(title = "Bitcoin Price Analysis", 
                     xaxis_rangeslider_visible=False)
figure.show()
```
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/efyzzcfoiy744989syxr.png)

## ขั้นตอนที่ 2 : ออกแบบ AI ในการทำนายราคา

> ในการทำงานของAIนั้นจะใช้เทคนิค Time series analysis ซึ่งเป็นการวิเคราะห์ข้อมูลที่มีลักษณะเป็นชุดข้อมูลเชิงเวลา โดย AutoTS library เป็นหนึ่งในไลบรารี่ที่ดีที่สุดสำหรับการวิเคราะห์ ดังนั้นเราจะนำมาใช้ในการทำนายราคา Bitcoin ในช่วง 30 วันข้างหน้า

```
from autots import AutoTS
model = AutoTS(forecast_length=30, frequency='infer', ensemble='simple')
model = model.fit(data, date_col='Date', value_col='Close', id_col=None)
prediction = model.predict()
forecast = prediction.forecast
print(forecast)
```
ผลลัพธ์
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ltc3di3jzl4rgjkamre0.png)

## บทสรุป

> `จากการใช้ AI ช่วยนั้นสามารถช่วยในการคาดเดาราคาที่เรากำหนดได้ แต่ยังมีข้อจำกัดอยู่มากมายเช่นความผันผวนของราคาซึ่งอาจเกิดขึ้นได้ตลอดเวลาทำให้การทำนายอาจมีการคลาดเคลื่อนอีกทั้ง AI จะทำงานก็ต่อเมื่อมีการซื้อขายจากข้อมูลที่ได้หากไม่มีสิ่งนี้ AI จะไม่สามารถทำงานได้เลย`


[ที่มา : https://thecleverprogrammer.com/2021/12/27/cryptocurrency-price-prediction-with-machine-learning/ ](https://thecleverprogrammer.com/2021/12/27/cryptocurrency-price-prediction-with-machine-learning/)