تعلم الآلة لتوليد إشارات التشفير

لقد غير تعلم الآلة بشكل جذري تداول العملات المشفرة. ما كان يعتمد في السابق فقط على التحليل الفني والتفسير اليدوي أصبح الآن يستفيد من الشبكات العصبية التي يمكنها استخراج الأنماط من ملايين نقاط الأسعار، لقطات دفتر الطلبات، والأحداث على السلسلة. يستكشف هذا الدليل كيفية بناء أنظمة تأكيد مدعومة بتعلم الآلة لإشارات التشفير — نفس التقنيات التي نستخدمها في Smart Money API لتشغيل نقاط الثقة لدينا.

رؤية رئيسية: تعمل إشارات تعلم الآلة بشكل أفضل عند دمجها مع المقاييس التقليدية. الشبكة العصبية التي تتنبأ باتجاه السعر بدقة 52٪ لا قيمة لها. ولكن تلك التي تؤكد الزخم عندما تكون معدلات التمويل إيجابية وإجماع الحيتان صعودي؟ هذا نظام بمعدل فوز يتجاوز 60٪.

الأساسيات الرياضية

قبل الغوص في الكود، افهم الرياضيات. كل شبكة عصبية هي في الأساس مقارب للدوال. بالنظر إلى ميزات الإدخال (السعر، الحجم، معدل التمويل، إجماع الحيتان)، تتعلم الأوزان التي تقلل من خطأ التنبؤ عبر البيانات التاريخية.

إطار التعلم الخاضع للإشراف

ابدأ بالبيانات المسمىة: أزواج السعر/الإشارة التاريخية.

Python — إعداد البيانات
# إعداد البيانات الخاضعة للإشراف
import numpy as np
import pandas as pd
# تحميل بيانات OHLCV لـ BTC
df = pd.read_csv('btc_5m.csv')
# الميزات: [open, high, low, close, volume, funding_rate, whale_long_pct]
features = df[['open', 'high', 'low', 'close', 'volume', 'fr', 'whale_long']].values
# الهدف: تحرك السعر للأعلى (1) أو للأسفل (0) في الشموع الخمسة التالية
targets = (df['close'].shift(-5) > df['close']).astype(int).values
# تطبيع الميزات إلى [0,1]
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X = scaler.fit_transform(features)

هندسة الميزات للتشفير

بيانات OHLCV الخام ليست كافية. أنت بحاجة إلى:

المفتاح هو التقاط عدم التماثل في المعلومات — الإشارات التي لا يراها غالبية المتداولين. تجمع Smart Money API لدينا جميع الطبقات الثلاث (المشتقات، على السلسلة، الحيتان) في ميزة مركبة تفوق أي مقياس فردي بمفرده.

هندسة الشبكة العصبية

الشبكة العصبية متعددة الطبقات (MLP) للتصنيف

تعمل الشبكة التغذية الأمامية البسيطة بشكل مدهش للتصنيف الثنائي (شراء/بيع):

Python — PyTorch MLP
import torch
import torch.nn as nn
class CryptoMLP(nn.Module):
def __init__(self, input_size=7):
super().__init__()
self.fc1 = nn.Linear(input_size, 128)
self.fc2 = nn.Linear(128, 64)
self.fc3 = nn.Linear(64, 32)
self.fc4 = nn.Linear(32, 1)
self.dropout = nn.Dropout(0.3)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.dropout(x)
x = torch.relu(self.fc2(x))
x = self.dropout(x)
x = torch.relu(self.fc3(x))
x = torch.sigmoid(self.fc4(x))
return x

تحتوي هذه الهندسة على 7 ميزات إدخال تتدفق عبر طبقات تتضاءل تدريجيًا (128 → 64 → 32 → 1)، مع تفعيل ReLU وإسقاط للتنظيم. يضغط الإخراج السيني الطبقة النهائية إلى [0,1]، ممثلًا احتمالية الشراء.

LSTM للتنبؤ بالتسلسل

لماذا الشبكات المتكررة؟

حركات الأسعار ليست مستقلة — لديها ذاكرة. يمكن لشبكة LSTM (الذاكرة طويلة المدى قصيرة المدى) تعلم التبعيات الزمنية: "إذا كان الزخم يتصاعد ومعدل التمويل تحول للتو إلى موجب بعد 3 ساعات من السلبية، فإن الشمعة التالية لمدة 5 دقائق لديها احتمال 58% أن تكون صعودية."

Python — LSTM للعملات المشفرة
class CryptoLSTM(nn.Module):
def __init__(self, input_size=7, hidden_size=64, num_layers=2):
super().__init__()
self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True, dropout=0.3)
self.fc1 = nn.Linear(hidden_size, 32)
self.fc2 = nn.Linear(32, 1)
def forward(self, x):
# x shape: (batch, seq_len, features)
lstm_out, _ = self.lstm(x)
# Take last timestep
last_hidden = lstm_out[:, -1, :]
x = torch.relu(self.fc1(last_hidden))
x = torch.sigmoid(self.fc2(x))
return x

هذه الشبكة LSTM تأخذ تسلسلات من 60 خطوة زمنية (5 ساعات من الشموع لمدة 5 دقائق) وتتنبأ بالاتجاه التالي. تتعلم حالة الخلية أي السمات هي الأكثر أهمية في نقاط مختلفة من التسلسل.

إعداد التسلسل

قم بتحويل بياناتك المسطحة إلى نوافذ منزلقة:

Python — إنشاء تسلسلات LSTM
def create_sequences(data, seq_len=60):
X, y = [], []
for i in range(len(data) - seq_len):
X.append(data[i:i+seq_len])
y.append(data[i+seq_len, -1]) # next target
return np.array(X), np.array(y)
X, y = create_sequences(X)
# X.shape: (n_samples, 60, 7)

التدريب والتقييم

استراتيجية تقسيم التدريب والاختبار

بالنسبة لبيانات السلاسل الزمنية، لا تقم بالخلط أبدًا. تسريب البيانات المستقبلية سيضخم الدقة.

Python — تقسيم صحيح للسلاسل الزمنية
# Split: 70% train, 20% val, 10% test
n = len(X)
train_idx = int(n * 0.7)
val_idx = int(n * 0.9)
X_train, y_train = X[:train_idx], y[:train_idx]
X_val, y_val = X[train_idx:val_idx], y[train_idx:val_idx]
X_test, y_test = X[val_idx:], y[val_idx:]

حلقة التدريب

استخدم خسارة الانتروبيا الثنائية ومحسن Adam:

Python — التدريب
model = CryptoLSTM()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
loss_fn = nn.BCELoss()
for epoch in range(100):
model.train()
optimizer.zero_grad()
preds = model(X_train_tensor)
loss = loss_fn(preds, y_train_tensor)
loss.backward()
optimizer.step()
model.eval()
with torch.no_grad():
val_preds = model(X_val_tensor)
val_loss = loss_fn(val_preds, y_val_tensor)
print(f"Epoch {epoch}: train={loss:.4f}, val={val_loss:.4f}")

التكامل مع Smart Money API

نماذجنا للتعلم الآلي لا تحل محل المقاييس التقليدية — بل تعززها. إليك كيف يجمع Smart Money API بينها:

Python — تسجيل المجموعة
def compute_confirmation_score(symbol, direction):
# 1. الحصول على درجة المشتقات (معدل التمويل، LSR)
deriv_score = get_derivatives_score(symbol, direction)
# 2. الحصول على درجة السلسلة (MVRV, SOPR, تدفق البورصة)
onchain_score = get_onchain_score(symbol)
# 3. الحصول على درجة الحيتان (اتجاه الإجماع، pnl)
whale_score = get_whale_score(symbol, direction)
# 4. تشغيل نموذج ML على السمات
features = [deriv_score, onchain_score, whale_score, volatility, volume_trend]
ml_signal = lstm_model.predict(features)
# 5. المجموعة الموزونة
composite = (deriv_score * 0.35 + onchain_score * 0.25 + whale_score * 0.25 + ml_signal * 0.15)
return {
"composite": composite,
"confidence": classify_confidence(composite),
"components": {"deriv": deriv_score, "onchain": onchain_score, "whale"whale_score mlml_signal
}

أفضل الممارسات

1. تجنب الإفراط في التخصيص

2. التعامل مع عدم التوازن بين الفئات

إذا كان لديك أيام "صعود" أكثر من أيام "هبوط"، فإن النموذج سيتنبأ بالصعود أكثر. استخدم الخسارة الموزونة:

Python — Weighted BCE
# إذا كانت 60% من الحالات صعودًا، يجب أن تكون حالات الهبوط ذات وزن أكبر
pos_weight = (len(y_train) - y_train.sum()) / y_train.sum()
loss_fn = nn.BCEWithLogitsLoss(pos_weight=torch.tensor(pos_weight))

3. تطبيع الميزات

الشبكات العصبية حساسة لمقياس الميزات. قم دائمًا بتطبيع ميزات الإدخال إلى [0,1] أو [-1,1]. أعد ضبط المقياس على بيانات التدريب فقط، ثم طبقه على بيانات التحقق/الاختبار.

4. التحقق بالمشي للأمام

بدلاً من مجموعة اختبار واحدة، استخدم نوافذ منزلقة: درّب على بيانات سنة واحدة، اختبر على الشهر التالي، ثم أعد التدريب على 13 شهرًا واختبر على الشهر الرابع عشر، وهكذا. هذا يحاكي ظروف التداول الحي.

5. مراقبة الأداء في العالم الحقيقي

دقة الاختبار الخلفي ليست أبدًا دقة حية. انشر نموذجك، تتبع نتائج التداول الفعلية، وأعد التدريب شهريًا ببيانات جديدة. استخدم نسبة شارب و معدل الفوز كمقاييسك الحقيقية، وليس درجة F1.

تقنيات متقدمة

آليات الانتباه

النماذج القائمة على المحولات (مثل Attention Is All You Need) تتيح لشبكتك "التركيز" على النقاط الزمنية الأكثر أهمية في التسلسل. بالنسبة للعملات المشفرة، هذا يساعد في إعطاء وزن أكبر لارتفاعات التقلبات الحديثة مقارنة بالبيانات القديمة.

طرق التجميع

درّب هياكل متعددة (MLP, LSTM, XGBoost) واجمع التوقعات. النماذج المجمعة عادةً تفوق النماذج الفردية بنسبة 2-5% في الدقة.

التعلم المعزز

بدلاً من التنبؤ باتجاه السعر، درّب وكيلًا لتعظيم الربح التراكمي. يتعلم الوكيل تحديد حجم المراكز بناءً على الثقة وظروف السوق. هذا هو الحدود الأمامية للذكاء الاصطناعي في تداول العملات المشفرة.

استخدم التعلم الآلي مع Smart Money API

نظام التقييم المركب لدينا يجمع بين ذكاء المشتقات، التحليل على السلسلة، وتتبع الحيتان — كلها جاهزة للتكامل مع نماذج التعلم الآلي الخاصة بك كميزات إضافية. أضفها إلى ميزات إدخال LSTM الخاصة بك وشاهد الدقة تزيد بنسبة 3-5%.

احصل على مفتاح API مجاني →