GaiaEx AcademyGaiaEx Academy
การพยากรณ์อนุกรมเวลาสำหรับเทรดเดอร์คริปโต
นักพัฒนาAI & ML12 min read

การพยากรณ์อนุกรมเวลาสำหรับเทรดเดอร์คริปโต

ทำนายการเคลื่อนไหวของราคาด้วยโมเดลลำดับข้อมูล

แชร์โพสต์

การเข้าใจข้อมูล Time Series

Time series คือลำดับของจุดข้อมูลที่เรียงตามเวลา — ราคาหุ้นในแต่ละนาที ราคาปิดบิตคอยน์ในแต่ละวัน ค่าอุณหภูมิที่วัดทุกชั่วโมง สิ่งที่ทำให้ time series แตกต่างจากข้อมูลประเภทอื่นคือ ลำดับมีความสำคัญ การสลับแถวในชุดข้อมูลสำหรับจัดหมวดหมู่ไม่ส่งผลเสียหาย แต่การสลับลำดับใน time series จะทำลายความหมายของมันไปเลย

มีสามคุณสมบัติที่กำหนดลักษณะของ time series ใด ๆ เทรนด์ (Trend) คือทิศทางระยะยาว — ราคา BTC เคลื่อนจาก $3,000 ในช่วงต้นปี 2019 ไปเป็น $60,000 ในช่วงปลายปี 2021 ซึ่งเป็นเทรนด์ขึ้นที่ชัดเจน Seasonality (ความเป็นตามฤดูกาล) หมายถึงรูปแบบที่เกิดซ้ำในช่วงเวลาคงที่ — ตลาดคริปโตมักเห็นปริมาณการซื้อขายเพิ่มขึ้นในช่วงเวลาตลาดสหรัฐฯ และกิจกรรมลดลงในวันหยุดสุดสัปดาห์ Stationarity (ความคงตัวเชิงสถิติ) หมายความว่าคุณสมบัติทางสถิติ เช่น ค่าเฉลี่ยและความแปรปรวน คงที่ตลอดเวลา time series ทางการเงินส่วนใหญ่ไม่มีความคงตัวเชิงสถิติ (non-stationary) — ราคาเลื่อนขึ้นหรือร่วงลง — ซึ่งสร้างความยากลำบากให้กับโมเดลที่สมมติว่าการแจกแจงคงที่

ก่อนนำข้อมูลทางการเงินเข้าโมเดลใด ๆ คุณต้องแปลงมันก่อน การเอา log returns (ลอการิทึมธรรมชาติของอัตราส่วนราคาระหว่างสองช่วงเวลาที่ติดกัน) จะแปลงราคาที่ไม่มีความคงตัวเชิงสถิติให้เป็นผลตอบแทนที่มีความคงตัวเชิงสถิติโดยประมาณ การ differencing — การลบค่าก่อนหน้าออก — ก็ให้ผลลัพธ์คล้ายกัน การแปลงเหล่านี้ไม่ใช่ตัวเลือก แต่เป็นเงื่อนไขที่จำเป็นให้วิธีการพยากรณ์ส่วนใหญ่ทำงานได้อย่างถูกต้อง

การแยกส่วนประกอบของ time series ทางการเงิน (แนวคิด) เทรนด์ ความผันของ seasonality time → Observed = trend + seasonality + noise (returns มักทำให้ noise มีความคงตัวขึ้น)
ราคาจริงผสมผสานการเลื่อนตัวช้า ๆ รูปแบบที่เกิดซ้ำ และความสุ่ม — โมเดลจะเล็งไปที่ส่วนที่คุณต้องการพยากรณ์

ARIMA: เส้นฐานแบบคลาสสิก

ARIMA (AutoRegressive Integrated Moving Average) เป็นเครื่องมือหลักของการพยากรณ์ time series มาหลายทศวรรษ มันรวมสามส่วนเข้าด้วยกัน: AR(p) ใช้ค่าก่อนหน้า p ค่าในการพยากรณ์ค่าถัดไป I(d) ทำ differencing กับซีรีส์ d ครั้งเพื่อให้เกิดความคงตัวเชิงสถิติ และ MA(q) สร้างแบบจำลองพจน์ความผิดพลาดจากการพยากรณ์ในอดีต

สำหรับข้อมูลทางการเงิน ARIMA ทำหน้าที่เป็นเส้นฐานที่สำคัญ โมเดล machine learning ใดก็ตามที่ไม่สามารถเอาชนะ ARIMA ที่ปรับแต่งอย่างดีบนชุดข้อมูลเฉพาะของคุณได้ ก็แค่เพิ่มความซับซ้อนโดยไม่มีคุณค่าเพิ่ม ในทางปฏิบัติ ARIMA มักทำงานได้ดีอย่างน่าประหลาดใจสำหรับการพยากรณ์ระยะสั้นของข้อมูลความถี่ต่ำ (แคนเดิลรายวันหรือรายสัปดาห์) ที่มีอัตราสัญญาณต่อสัญญาณรบกวนยังจัดการได้

# ARIMA baseline for BTC daily returns
from statsmodels.tsa.arima.model import ARIMA
import pandas as pd

returns = prices.pct_change().dropna()
model = ARIMA(returns, order=(2, 0, 1))  # AR(2), no differencing (returns already stationary), MA(1)
fitted = model.fit()
forecast = fitted.forecast(steps=5)
print(f"AIC: {fitted.aic:.2f}")  # Lower AIC = better model

ข้อจำกัดของ ARIMA จะเห็นชัดขึ้นเมื่อเจอรูปแบบไม่เป็นเชิงเส้นที่ซับซ้อน การเปลี่ยนรูปแบบตลาด (regime changes) และพื้นที่ฟีเจอร์ที่มีมิติสูง นี่คือจุดที่ deep learning เข้ามามีบทบาท

ARIMA(p,d,q): ค่าในอดีตและความผิดพลาดหลอมรวมเป็นการพยากรณ์อย่างไร AR(p) y uses yt-1…t-p I(d) d differences MA(q) errors εt-1…t-q ŷt+1 forecast เลือก (p,d,q) ด้วย ACF/PACF, AIC หรือ rolling CV — จากนั้นเทียบกับเส้นฐาน ML ผลตอบแทนทางการเงินมักตั้ง d=0 เมื่อใช้ log-returns ตรง ๆ
Autoregression, integration (differencing) และ moving-average shocks รวมกันเป็นเครื่องมือพยากรณ์เชิงเส้นแบบกระชับตัวเดียว

โครงข่าย LSTM สำหรับการสร้างแบบจำลองลำดับ

Long Short-Term Memory (LSTM) เป็นชนิดของ recurrent neural network ที่ถูกออกแบบมาเพื่อเรียนรู้ความสัมพันธ์ระยะไกลในข้อมูลลำดับ ต่างจาก RNN ทั่วไปที่มีปัญหา gradient หายไป (vanishing gradient) และลืมข้อมูลหลังจากผ่านไปเพียงไม่กี่ time step LSTM ใช้กลไก gate — forget gate, input gate และ output gate — เพื่อเลือกที่จะเก็บหรือทิ้งข้อมูลตลอดหลายร้อย step

สำหรับ time series ทางการเงิน LSTM มีข้อได้เปรียบสองอย่างเหนือ ARIMA: มันสามารถสร้างแบบจำลอง ความสัมพันธ์ไม่เป็นเชิงเส้น ได้ (ไดนามิกของราคาแทบไม่เคยเป็นเชิงเส้น) และสามารถรวม ฟีเจอร์อินพุตหลายตัว เข้าด้วยกันในเวลาเดียว — ไม่ใช่แค่ราคาในอดีต แต่รวมถึงปริมาณการซื้อขาย ความผันผวน อัตรา funding ความไม่สมดุลของออเดอร์บุ๊ก และสัญญาณอื่นใดที่คุณเชื่อว่ามีข้อมูลเชิงพยากรณ์

การเตรียมข้อมูลสำหรับ LSTM ต้องทำ windowing อย่างระมัดระวัง คุณสร้างลำดับอินพุตที่มีความยาวคงที่ (เช่น 60 time steps) แล้วจับคู่กับค่าเป้าหมาย (ราคาหรือผลตอบแทนถัดไป) Normalization (การปรับให้เป็นมาตรฐาน) สำคัญมาก — ปรับสเกลฟีเจอร์ให้อยู่ใน [0, 1] หรือทำ standardize ให้ค่าเฉลี่ยเป็นศูนย์และความแปรปรวนเป็นหนึ่ง แต่นี่คือจุดที่เป็นกับดัก: คุณต้อง fit ตัวปรับสเกล (scaler) บนข้อมูลฝึกเท่านั้น แล้วนำพารามิเตอร์เดียวกันไปแปลงข้อมูล validation และ test การ fit บนชุดข้อมูลทั้งหมดจะทำให้ข้อมูลอนาคตรั่วไหลเข้ามา

ห้าม normalize ด้วยสถิติที่คำนวณจากชุดข้อมูลทั้งหมด ให้ fit ตัวปรับสเกลของคุณบนชุดข้อมูลฝึกเท่านั้น แล้วนำไปใช้กับชุด validation และ test ความผิดพลาดเดียวนี้เป็นสาเหตุของ look-ahead bias มากกว่าความผิดพลาดในการเตรียมข้อมูลอื่นใด

# LSTM data preparation with proper normalization
import numpy as np
from sklearn.preprocessing import MinMaxScaler

def create_sequences(data, window=60):
    X, y = [], []
    for i in range(window, len(data)):
        X.append(data[i - window:i])
        y.append(data[i, 0])  # Predict next close
    return np.array(X), np.array(y)

# Fit scaler on training data ONLY
scaler = MinMaxScaler()
train_scaled = scaler.fit_transform(train_data)
test_scaled = scaler.transform(test_data)  # Transform, don't fit

X_train, y_train = create_sequences(train_scaled)
X_test, y_test = create_sequences(test_scaled)

กลไก Attention และ Temporal Fusion Transformer

กลไก self-attention ตัวเดียวกันที่ปฏิวัติการประมวลผลภาษาธรรมชาติ ได้พิสูจน์แล้วว่ามีประสิทธิภาพไม่แพ้กันกับ time series แทนที่จะประมวลผลลำดับแบบทีละ step เหมือน LSTM attention ทำให้โมเดลมองเห็นทุก time step พร้อมกัน และเรียนรู้ว่าจุดใดในประวัติศาสตร์มีความเกี่ยวข้องมากที่สุดในการพยากรณ์อนาคต

Temporal Fusion Transformer (TFT) ซึ่งเปิดตัวโดย Google Research ในปี 2021 ถูกสร้างขึ้นมาเฉพาะสำหรับการพยากรณ์ time series แบบหลายช่วงเวลา (multi-horizon) มันผสมผสานนวัตกรรมหลายอย่างเข้าด้วยกัน:

  • Variable selection networks — เรียนรู้โดยอัตโนมัติว่าฟีเจอร์อินพุตตัวใดสำคัญที่สุด และให้ความสามารถในการตีความในตัว คุณสามารถเห็นได้ว่าโมเดลพึ่งพา momentum ของราคา ปริมาณการซื้อขาย หรืออัตรา funding มากกว่ากัน
  • Gated residual networks — กดข้อมูลอินพุตที่ไม่เกี่ยวข้อง และให้โมเดลจัดการปฏิสัมพันธ์ของฟีเจอร์แบบไม่เป็นเชิงเส้นที่ซับซ้อนได้
  • Multi-head attention over time — ระบุว่า time step ในประวัติศาสตร์ใดให้ข้อมูลมากที่สุดสำหรับแต่ละช่วงเวลาที่พยากรณ์
  • Quantile outputs — สร้างช่วงการพยากรณ์ (เปอร์เซนไทล์ที่ 10, 50, 90) แทนการประมาณค่าจุดเดียว ทำให้คุณมีการวัดความไม่แน่นอน — ซึ่งจำเป็นต่อการบริหารความเสี่ยงในการเทรด

ในทางปฏิบัติ TFT มีผลงานเหนือกว่า LSTM และโมเดลดั้งเดิมในการวัดผลหลายอย่าง รวมถึงการพยากรณ์ความต้องการใช้ไฟฟ้า การพยากรณ์ยอดขายค้าปลีก และการสร้างแบบจำลองความผันผวนทางการเงิน สำหรับตลาดคริปโตที่เข้าถึงได้ผ่านแพลตฟอร์มอย่าง GaiaEx ความสามารถของ TFT ในการประมวลผลอินพุตที่มีความหลากหลาย — ข้อมูลเมทาดาต้าคงที่ (ชนิดสินทรัพย์ วันที่ลิสต์) ค่าในอนาคตที่รู้แน่นอน (วันในสัปดาห์ เวลาของวัน) และฟีเจอร์ที่เปลี่ยนตามเวลาที่สังเกตได้ (ราคา ปริมาณการซื้อขาย ข้อมูลบนเชน) — ทำให้มันเหมาะสมเป็นพิเศษ

ตัวอย่างเชิงปฏิบัติ: การพยากรณ์ทิศทางราคา BTC

ขอพูดตรง ๆ เกี่ยวกับสิ่งที่ทำได้จริง การพยากรณ์ราคาที่แน่นอนของบิตคอยน์ในวันพรุ่งนี้เป็นสิ่งที่แทบเป็นไปไม่ได้เลย สมมติฐานตลาดที่มีประสิทธิภาพ (Efficient Market Hypothesis, EMH) ยืนยันว่าราคาได้สะท้อนข้อมูลที่มีอยู่ทั้งหมดแล้ว ทำให้การพยากรณ์อย่างสม่ำเสมอเป็นความพยายามที่สูญเปล่า ในคริปโต รูปแบบอ่อน (weak form) ของ EMH ยังเป็นที่ถกเถียง — ตลาดมีประสิทธิภาพน้อยกว่าตลาดหุ้น — แต่อัตราสัญญาณรบกวนต่อสัญญาณยังคงโหดร้ายอยู่ดี

เป้าหมายที่สมจริงกว่าคือ ความแม่นยำเชิงทิศทาง (directional accuracy): BTC จะปิดสูงกว่าหรือต่ำกว่าราคาเปิด? ปัญหาการจัดหมวดหมู่แบบไบนารีนี้จัดการได้ง่ายกว่า และแม้แต่การปรับปรุงเพียงเล็กน้อยเหนือความแม่นยำ 50% (เช่น 53–55% อย่างสม่ำเสมอ) ก็สามารถทำกำไรได้สูงมากด้วยการบริหารขนาดสถานะและความเสี่ยงที่เหมาะสม

ไปป์ไลน์เชิงปฏิบัติมีลักษณะดังนี้:

  • ฟีเจอร์: ผลตอบแทน 60 คาบ, RSI, MACD histogram, ความกว้างของ Bollinger Band, อัตราส่วนปริมาณการซื้อขาย (ปัจจุบันเทียบกับค่าเฉลี่ย 20 คาบ), อัตรา funding จาก perpetual futures, สัดส่วนความครองตลาดของ BTC (BTC dominance) และการเปลี่ยนแปลงของ open interest
  • โมเดล: LSTM สองเลเยอร์ที่มี 128 hidden units, dropout 0.3 ตามด้วยเลเยอร์ dense ที่ใช้ sigmoid activation สำหรับการจัดหมวดหมู่แบบไบนารี
  • การแบ่งข้อมูล: ฝึกบนข้อมูลปี 2020–2023 ตรวจสอบ (validate) บนช่วง ม.ค.–มิ.ย. 2024 ทดสอบบนช่วง ก.ค.–ธ.ค. 2024 ห้ามสลับลำดับข้อมูล — ให้แบ่งตามลำดับเวลาเสมอ
  • การประเมินผล: ความแม่นยำเชิงทิศทาง precision/recall สำหรับการพยากรณ์ขึ้นเทียบกับลง และ — ที่สำคัญที่สุด — กำไรขาดทุนจำลองโดยสมมติขนาดสถานะคงที่ต่อสัญญาณ

ถ้าโมเดลของคุณทำความแม่นยำเชิงทิศทางได้ 54% บนชุดทดสอบนอกกลุ่มตัวอย่าง (out-of-sample) พร้อม profit factor สูงกว่า 1.2 คุณมีสิ่งที่คุ้มค่าจะสำรวจต่อ ถ้ามันแสดงความแม่นยำ 65% แทบจะแน่นอนว่าคุณ overfit ไปแล้ว ความได้เปรียบที่แท้จริงในตลาดการเงินมักเล็กน้อย และใครก็ตามที่อ้างว่าไม่ใช่ กำลังขายอะไรบางอย่างให้คุณอยู่

เมตริกการประเมินและวิธีการแบบ Ensemble

การเลือกเมตริกที่ถูกต้องเป็นตัวกำหนดว่าคุณกำลังปรับให้เหมาะกับสิ่งที่ถูกหรือไม่ MAE (Mean Absolute Error) บอกขนาดความผิดพลาดของการพยากรณ์โดยเฉลี่ยในหน่วยเดียวกับข้อมูลของคุณ — เข้าใจง่ายแต่ไม่ลงโทษความผิดพลาดขนาดใหญ่อย่างไม่เป็นสัดส่วน RMSE (Root Mean Squared Error) ยกกำลังสองความผิดพลาดก่อนหาค่าเฉลี่ย ลงโทษ outlier อย่างหนัก — เหมาะเมื่อการพยากรณ์ผิดพลาดครั้งใหญ่ครั้งเดียวสำคัญกว่าความผิดพลาดเล็ก ๆ หลายครั้ง ความแม่นยำเชิงทิศทาง วัดเปอร์เซนต์ของครั้งที่โมเดลของคุณพยากรณ์ถูกต้องว่าราคาจะขึ้นหรือลง — ซึ่งมักเป็นเมตริกที่เกี่ยวข้องมากที่สุดสำหรับสัญญาณการเทรด

วิธีการแบบ Ensemble รวมการพยากรณ์จากหลายโมเดลเพื่อลดความแปรปรวนและเพิ่มความทนทาน วิธีการที่พบบ่อย ได้แก่:

  • การหาค่าเฉลี่ยแบบธรรมดา — หาค่าเฉลี่ยของการพยากรณ์จาก LSTM, Transformer และ ARIMA ถ้าแต่ละโมเดลจับส่วนต่างกันของสัญญาณได้ ensemble จะมีผลงานดีกว่าโมเดลใดโมเดลหนึ่งเดี่ยว ๆ
  • Stacking — ฝึก meta-model (เช่น gradient-boosted tree) ให้เรียนรู้การรวมการพยากรณ์จากโมเดลฐานอย่างเหมาะสมที่สุด
  • การสลับตามรูปแบบตลาด (Regime-aware switching) — ใช้ตัวตรวจจับรูปแบบความผันผวนเพื่อเลือกว่าจะเชื่อโมเดลไหน LSTM อาจทำงานได้ดีในตลาดที่มีเทรนด์ ในขณะที่โมเดล mean-reversion ทำงานได้ดีกว่าในสภาวะตลาดที่แคบ (ranging)

ไม่ว่าคุณจะใช้วิธีไหน จำไว้ว่าช่องว่างระหว่างงานวิจัยกับการใช้งานจริงนั้นกว้างมาก โมเดลที่พยากรณ์ทิศทาง BTC ได้แม่นยำ 55% ใน Jupyter notebook ต้องรอดผ่านความหน่วง (latency) สลิปเพจ และต้นทุนธุรกรรม เมื่อถูกใช้งานจริงผ่านแพลตฟอร์มอย่าง GaiaEx สร้างไปป์ไลน์การประเมินของคุณให้จำลองความเป็นจริงเหล่านี้ตั้งแต่วันแรก — ไม่ใช่คิดถึงมันหลังจากทำแล้ว