আপনার ল্যাপটপে একটি trading bot একটি বিরক্তিকর কারণে একটি খারাপ ধারণা: আপনার ল্যাপটপ 24/7 online নয়, আর বাজার। একটি trade-এর মাঝপথে ঢাকনা বন্ধ করুন আর bot একটি open position manage করা থামায়। Freqtrade — জনপ্রিয় open-source Python trading bot — অযত্নে চালানোর জন্য বানানো, যা ঠিক একটি ছোট VPS যার জন্য। এই যে এটি আসলে কী চায়, কীভাবে Docker দিয়ে সেট করবেন, আর যে সৎ সীমা আপনি না-ঠেকা পর্যন্ত কেউ উল্লেখ করে না।
একটি সার্ভার কেন, আপনার মেশিন নয়
দুটি কারণ, দুটোই ব্যবহারিক:
- Uptime। bot-কে দিনভর বাজার দেখতে ও position manage করতে হয়। প্রতিবার আপনার ল্যাপটপ ঘুমালে বা reboot করলে, bot অন্ধ — একটি মিস-করা entry, বা আরও খারাপ, একটি open position যা কেউ দেখছে না।
- Latency ও স্থিতিশীলতা। একটি VPS exchange-এ একটি স্থির route সহ একটি datacenter সংযোগে বসে। বাড়ির wifi jitter ও NAT reset একটি bot-কে সাহায্য করে না যা দামে প্রতিক্রিয়া দেয়।
এটি একটি VPS-এ যেকোনো trading bot চালানোর একই যুক্তি — Freqtrade কেবল প্রয়োজনগুলো সুনির্দিষ্ট করে।
এটি আসলে কী চায়
Freqtrade নিজে হালকা, কিন্তু workload নিয়ে বাস্তববাদী হন:
- Live / dry-run bot: 2 GB RAM একটি আরামদায়ক মেঝে। Docker image, কয়েকটি pair, indicator, ও SQLite trade DB সবাই একটু headroom চায়। একটি $5 Micro (2 vCPU / 2 GB / 25 GB) সঠিক শুরুর বিন্দু। 1 GB কয়েকটি pair-এ একটি একক সরল strategy চালাতে পারে, কিন্তু আপনি প্রান্তের কাছে।
- অনেক pair / একাধিক strategy: একটি $8 Small (4 vCPU / 4 GB / 35 GB)-এ উঠুন — বেশি pair মানে বেশি concurrent indicator গণনা ও memory-তে একটি বড় dataframe।
- ডিস্ক: মাঝারি। image, আপনার
user_data, ও trade DB আরামে 25 GB-তে আঁটে। backtesting-এর জন্য ডাউনলোড-করা ঐতিহাসিক ডেটাই একমাত্র জিনিস যা বাড়ে — আর তা বেশিরভাগ আপনার local মেশিনে থাকে (নিচে দেখুন)।
Docker Compose দিয়ে সেট করুন
Docker হলো Freqtrade চালানোর maintained, সবচেয়ে কম-কষ্টের উপায়। একটি তাজা বক্সে:
sudo apt update && sudo apt install -y docker.io docker-compose-v2
mkdir ~/ft && cd ~/ft
docker run --rm -v "$(pwd)/user_data:/freqtrade/user_data" \
freqtradeorg/freqtrade:stable create-userdir --userdir user_data
অফিসিয়াল compose ফাইল নিন ও ইন্টারঅ্যাক্টিভভাবে একটি config তৈরি করুন (এটি আপনার exchange, stake, ও dry-run নিয়ে জিজ্ঞেস করবে):
curl -s https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose run --rm freqtrade new-config --config user_data/config.json
আগে dry-run — সবসময়
কখনও একটি তাজা strategy আসল টাকায় তাক করবেন না। Freqtrade ডিফল্টে dry-run (paper trading)-এ থাকে আর strategy কিছুক্ষণ live বাজার-ডেটায় নিজেকে প্রমাণ না-করা পর্যন্ত আপনার সেখানেই রাখা উচিত। config.json-এ:
{
"dry_run": true,
"dry_run_wallet": 1000
}
এটি চালু করুন ও দেখুন:
docker compose up -d
docker compose logs -f
compose ফাইলের restart: unless-stopped policy এখানে আপনার systemd-সমতুল্য — Docker একটি ক্র্যাশ বা একটি সার্ভার reboot-এর পরে bot ফিরিয়ে আনে, কোনো ম্যানুয়াল ধাপ ছাড়া। (Docker-এর বাইরে চালাতে পছন্দ করলে, Restart=always সহ একটি systemd unit একই কাজ করে — যেকোনো bot জীবিত রাখা-র একই নীতি।)
Exchange API key — যে অংশ মানুষকে কামড়ায়
এখানেই একটি trading সেটআপ দামিভাবে ভুল হয়। দুটি নিয়ম, অ-আলোচনাযোগ্য:
- শুধু Trade অনুমতি। কখনও withdrawal সক্রিয় করবেন না। key ফাঁস হলে, সবচেয়ে খারাপ ক্ষেত্র অবাঞ্ছিত trade — আপনার fund দরজা দিয়ে বেরিয়ে যাওয়া নয়। Freqtrade-এর কখনও withdrawal access লাগে না।
- key IP-whitelist করুন। বেশিরভাগ exchange আপনাকে একটি API key নির্দিষ্ট IP-তে bind করতে দেয়। সেটি একটি dedicated-IP প্ল্যান-এ চালানোর একটি সুনির্দিষ্ট কারণ: key শুধু আপনার সার্ভারের স্থির ঠিকানা থেকে কাজ করে। একটি NAT প্ল্যানে bot node-এর outbound IP শেয়ার করে, যা শুধু আপনার নয় — bot-এর কাজ করার জন্য ঠিক, কিন্তু আপনি পরিচ্ছন্নভাবে whitelist করতে পারবেন না।
key-গুলো config.json-এ রাখুন, এটিকে non-world-readable করুন (chmod 600), ও container-কে একটি non-root ব্যবহারকারী হিসেবে চালান। আর আগে বক্স লক করুন — new-VPS security checklist দশ মিনিট নেয় ও যে দরজাগুলো গুরুত্বপূর্ণ তা বন্ধ করে।
user_data backup করুন
আপনার strategy, config, ও trade history সবই user_data-তে থাকে। সেটি সেই জিনিস যা আপনি হারাতে চান না:
tar czf ft-backup-$(date +%F).tar.gz user_data
সেটি সার্ভার থেকে পর্যায়ক্রমে টেনে নিন (বা object storage-এ)। trade DB হারানো মানে আপনার পারফরম্যান্স history হারানো; একটি tune-করা strategy হারানো মানে optimization পুনরায় করা।
সৎ সীমা
- Backtesting ও hyperopt ভারী — সেগুলো local-এ করুন। এরা দীর্ঘ সময় CPU আটকে রাখে, আর একটি shared, burst-ভিত্তিক VPS spiky workload-এর জন্য বানানো, ঘণ্টার পর ঘণ্টা ধারাবাহিক 100% লোডের জন্য নয় (যা acceptable-use policy-তেও ঠেকে)। নিজের মেশিনে optimize করুন, ফলটি live চালাতে deploy করুন। VPS live bot-এর জন্য, গবেষণার জন্য নয়।
- CPU shared/burst। একটি live bot-এর জন্য দারুণ যা বেশিরভাগ candle-এর অপেক্ষা করে ও প্রতিক্রিয়া দেয়; hyperopt-এর মধ্য দিয়ে এক বছরের 1-মিনিট ডেটা পেষার জন্য ভুল।
- একটি অঞ্চল, CPU-only। সার্ভার জার্মানিতে, কোনো GPU নেই। Freqtrade-এর জন্য ঠিক (এটি CPU/যুক্তি, ML training নয়) — জানা ভালো যদি আপনার strategy একটি ভারী ML মডেলে ভর করে, যা আবার local-এ train করা ভালো।
শেষ কথা
একটি VPS-এ Freqtrade live bot-এর জন্য সঠিক সেটআপ: একটি ফোকাসড strategy-র জন্য একটি $5 Micro, অনেক pair চালালে একটি $8 Small, uptime-এর জন্য restart: unless-stopped সহ Docker Compose, ও একটি শুধু-trade, IP-whitelist-করা API key যাতে একটি ফাঁস আপনাকে নিঃশেষ করতে না পারে। ভারী backtesting ও hyperopt আপনার ল্যাপটপে রাখুন, user_data backup করুন, ও সার্ভারকে একটি কাজ করতে দিন যাতে এটি ভালো — বাজার নড়ার সময় online থাকা। Signup শুধু-ইমেল আর আপনি USDC বা USDT-তে পরিশোধ করেন; একটি dedicated IP এখানে সার্থক একমাত্র আপগ্রেড, নিছক API-key whitelist-এর জন্য।
deploy করতে প্রস্তুত? Freqtrade একটি Micro প্ল্যানে আরামদায়ক; ভারী backtest বা অনেক pair-এর জন্য, Small-এ size করুন।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।