איך להריץ בוט מסחר על שרת 24/7
מדריך להרצת בוט מסחר על שרת ענן זול: איזה שרת לבחור, איך להריץ את הבוט ברקע בלי שייפול, ואיך לקבל התראות אם משהו משתבש.
בוט מסחר שרץ רק כשהמחשב האישי פתוח לא באמת אוטומטי — הוא זקוק לשרת שרץ 24/7, ומספיק שרת VPS בסיסי ב-$5-10 לחודש כדי להריץ רוב האסטרטגיות הפרטיות. המדריך הזה מכסה את השלבים המעשיים: בחירת שרת, הרצת הבוט ברקע בעזרת systemd, ניטור בסיסי, והתראות כשמשהו משתבש — בלי Docker או Kubernetes, שלא נחוצים בשלב הזה.
למה לא להריץ מהמחשב האישי
הרצת בוט ממחשב ביתי דורשת שהמחשב יישאר דלוק ומחובר לאינטרנט ללא הפסקה — סגירת מכסה, כיבוי לתחזוקה, או ניתוק אינטרנט זמני עוצרים את הבוט בלי אזהרה, בדיוק ברגע שהוא אולי צריך לסגור פוזיציה. שרת ענן זול פותר את זה לחלוטין, בעלות נמוכה משמעותית מהחשש.
בחירת שרת
| ספק | עלות משוערת | הערות | |---|---|---| | Hetzner | $4-5/חודש | הזול ביותר, שרתים באירופה | | DigitalOcean | $6/חודש | תיעוד נרחב, ממשק ידידותי | | AWS Lightsail | $5-10/חודש | אם כבר משתמשים באקוסיסטם AWS |
לרוב הבוטים הפרטיים, שרת עם 1 vCPU ו-1-2GB RAM ("Droplet" הכי בסיסי, בשפת DigitalOcean) מספיק בהחלט. Ubuntu 22.04 LTS היא מערכת ההפעלה הנפוצה והפשוטה ביותר להתקנה.
הרצת הבוט ברקע עם systemd
הדרך היציבה ביותר להריץ תהליך Python שממשיך לרוץ גם אחרי שמתנתקים מהשרת, ומתחיל אוטומטית מחדש אם קרס:
# /etc/systemd/system/trading-bot.service
[Unit]
Description=Trading Bot
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/trading-bot
ExecStart=/home/ubuntu/trading-bot/venv/bin/python main.py
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
sudo systemctl enable trading-bot
sudo systemctl start trading-bot
sudo systemctl status trading-bot # בדיקת סטטוס
journalctl -u trading-bot -f # מעקב אחרי לוגים בזמן אמת
Restart=on-failure הוא השורה הקריטית — אם הבוט קורס מסיבה כלשהי, הוא יופעל מחדש אוטומטית אחרי 30 שניות, במקום להישאר כבוי בשקט עד שמישהו שם לב.
ניהול משתני סביבה בשרת
# /home/ubuntu/trading-bot/.env - קובץ נפרד, לא ב-Git
ALPACA_KEY=your_key
ALPACA_SECRET=your_secret
chmod 600 .env # רק המשתמש עצמו יכול לקרוא את הקובץ
הרשאות 600 מגבילות את הגישה לקובץ המפתחות למשתמש שיצר אותו בלבד — צעד אבטחה בסיסי שחשוב לא לדלג עליו.
התראות כשמשהו משתבש
בוט שרץ ללא השגחה חייב דרך להתריע כשמשהו לא כשורה — עצירה בלתי צפויה, שגיאת API, או הפסד יומי שחורג מהמותר:
import requests
def send_telegram_alert(message: str):
bot_token = os.getenv("TELEGRAM_BOT_TOKEN")
chat_id = os.getenv("TELEGRAM_CHAT_ID")
requests.post(
f"https://api.telegram.org/bot{bot_token}/sendMessage",
json={"chat_id": chat_id, "text": message},
)
# בשימוש:
send_telegram_alert("הבוט הפסיק לפעול: שגיאת חיבור ל-API")
בוט טלגרם חינמי לחלוטין ופשוט להגדרה, ונותן התראה כמעט מיידית לטלפון — הרבה יותר אמין מלבדוק ידנית אם הבוט עדיין רץ.
שאלות נפוצות
האם צריך Docker כדי להריץ בוט מסחר על שרת?
לא בהכרח. Docker שימושי כשמנהלים כמה שירותים או צוות פיתוח, אבל לבוט פרטי בודד, systemd פשוט יותר, קל יותר לניפוי בעיות, ומספיק לחלוטין.
מה קורה אם השרת עצמו נופל (לא רק הבוט)?
זה נדיר אצל ספקי ענן מבוססים, אבל אפשרי. שכבת הגנה נוספת: בדיקת "Heartbeat" חיצונית (שירות כמו UptimeRobot, שגם לו יש רמה חינמית) שמתריעה אם השרת לא הגיב בפרק זמן מוגדר.
האם השרת חייב להיות באזור גיאוגרפי ספציפי?
עדיף שרת קרוב יחסית לברוקר (לרוב ארה"ב, אם סוחרים ב-Alpaca או Interactive Brokers) כדי לצמצם השהיה (Latency) בשליחת פקודות — אבל להבדל של אלפיות שניה יש חשיבות בעיקר לאסטרטגיות מהירות מאוד, לא לרוב הבוטים הפרטיים.
כמה זמן לוקח להקים שרת ולהעלות בוט אליו?
לרוב 1-2 שעות בפעם הראשונה — יצירת השרת, התקנת Python וספריות, הגדרת systemd, ובדיקה שהכל עובד. בפעמים הבאות, עם תהליך מתועד, זה לוקח הרבה פחות.