Skip to content

ทำความรู้จักกับ Freqtrade บอทเทรดคริปโต

เพิ่มประสิทธิภาพการเทรดด้วย Freqtrade บอทเทรดที่จะทำให้ชีวิตการเทรดของคุณง่ายขึ้น จะเป็นยังไงนั้น มาดูกัน

Feature Image Freqtrade

สวัสดีครับ วันนี้เราจะมาทำความรู้จักกับ Freqtrade บอทเทรดคริปโต จะเป็นยังไงนั้น เรามาดูกัน

สำหรับใครที่ไม่รู้จักบอทเทรดว่าคืออะไร บอทเทรด (Bot Trade) ก็คือ ตัวช่วยสำหรับการเทรด โดยหน้าที่ของบอทเทรดก็คือ ช่วยเราเทรด ถามว่าช่วยยังไง ก็มีหลายกรณีด้วยกัน เช่น

  • ช่วยเปิด/ปิด Order หรือเทรดตอนที่เราไม่อยู่หรือหลับ
  • ช่วยให้เราเทรดตามเทคนิคที่เราวางไว้

ปัจจุบันบอทเทรดมีแทบจะทุกตลาดและเป็นที่นิยมมากในปัจจุบัน และผู้เขียนก็ได้รู้จักบอทเทรดและเคยใช้งาน Freqtrade สำหรับการเทรดคริปโตด้วยกัน

Freqtrade เป็น Open Source บอทเทรดตัวหนึ่งที่ใช้สำหรับเทรดคริปโต ย้ำนะว่าเทรดคริปโตเท่านั้น โดยที่ Freqtrade เขียนด้วยภาษา Python ทำให้ใช้งานได้ง่าย สามารถไปดูรายละเอียดเพิ่มเติมได้ที่นี่ ส่วนเว็บหลักดูได้ที่นี่

Freqtrade นั้นรองรับสำหรับบางกระดานเทรดหรือบาง Exchange เท่านั้น สำหรับรายละเอียดของกระดานเทรดที่ Freqtrade รองรับ สามารถดูได้ที่นี่ แต่ที่แน่ ๆ ไม่รองรับ Exchange ในประเทศไทยนะ เช่น Bitkub, Satang, Bitazza แบบนี้จะไม่รองรับ

เอาล่ะ เรามาดูข้อดีข้อเสียของ Freqtrade จากประสบการส่วนตัวกัน

ข้อดี

  • เป็นบอทเทรดที่ใช้งานง่าย และเขียนโปรแกรมเพื่อควบคุมได้ไม่ยาก
  • ติดตั้งง่าย แต่ใครใช้ Macbook M1 ลองดูก่อนนะ เพราะผู้เขียนเคยติดตั้งโดยใช้ Macbook ที่ใช้ CPU M1 แล้วติดตั้งไม่ได้ แต่ถ้าใครใช้ Docker ไม่มีปัญหา
  • สามารถเชื่อมต่อกับ Chat Telegram ทำให้สามารถดูรายละเอียดต่าง ๆ ได้ผ่านบอท
  • ทำ Backtest ใส่ Indicator ได้
  • ดูข้อมูลย้อนหลังได้
  • สามารถเทรดเหรียญได้ทีละหลาย ๆ เหรียญ

ข้อเสีย

  • เมื่อเปิดใช้งานบอทไปเรื่อย ๆ จะช้า
  • ถ้าเปิด Order หลาย ๆ เหรียญแล้วไปหยุดบอท หรือบอทเกิด Error เราต้องมานั่งยกเลิกออเดอร์เอง (บางทีนะ ไม่รู้ว่าอัพเดทยัง)
  • เปิดหลายเหรียญระวังเรื่องของ Error, ช้าหรือหยุดทำงาน เพราะเราต้องมานั่งจัดการเอง เช่น สมมติว่าเราถือ Crypto ไว้หลายเหรียญ ทีนี้บอทเกิดหยุดทำงาน พอเราเริ่มเปิดบอทใหม่ มีโอกาสที่เราจะไม่สามารถเข้าไปที่เหรียญเดิมได้ ทำให้เราต้อง Reset บัญชีเราก่อน ก็คือ ต้องขายเหรียญที่ถือไว้ให้หมด หรือตั้งค่าใหม่

เอาล่ะ ดูข้อดีข้อเสียกันไปแล้ว เรามาเริ่มต้นกันเลย โดยบทความนี้จะสอนการติดตั้งเท่านั้น

การติดตั้งทำได้หลายวิธีมาก โดยเราจะใช้วิธีลงแบบ Docker กัน สามารถดูรายละเอียดการติดตั้งได้จากที่นี่

สำหรับการติดตั้งด้วย Docker สามารถใช้แบบนี้ได้เลยตาม Document ของ Freqtrade

mkdir ft_userdata
cd ft_userdata/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
# Pull the freqtrade image
docker compose pull
# Create user directory structure
docker compose run --rm freqtrade create-userdir --userdir user_data
# Create configuration - Requires answering interactive questions
docker compose run --rm freqtrade new-config --config user_data/config.json

แต่ถ้าใครดูแล้วงง เรามาเริ่มกันทีละบรรทัดกันเลย

ก่อนอื่นเลย เราต้องสร้าง Directory หรือ Folder สำหรับบอทเทรดนี้ โดยเราจะตั้งชื่อว่า freqtrade เปิด Command Line แล้วพิมพ์

mkdir freqtrade

จากนั้นเราจะเข้าไปที่ Folder

cd freqtrade

ทำการสร้างไฟล์ docker-compose.yml ขึ้นมา แล้วใส่โค้ดตามด้านล่างเลย

version: '3'
services:
  freqtrade:
    image: freqtradeorg/freqtrade:stable
    # image: freqtradeorg/freqtrade:develop
    # Use plotting image
    # image: freqtradeorg/freqtrade:develop_plot
    # Build step - only needed when additional dependencies are needed
    # build:
    #   context: .
    #   dockerfile: "./docker/Dockerfile.custom"
    restart: unless-stopped
    container_name: freqtrade
    volumes:
      - "./user_data:/freqtrade/user_data"
    # Expose api on port 8080 (localhost only)
    # Please read the https://www.freqtrade.io/en/stable/rest-api/ documentation
    # before enabling this.
    ports:
      - "127.0.0.1:8080:8080"
    # Default command used when running `docker compose up`
    command: >
      trade
      --logfile /freqtrade/user_data/logs/freqtrade.log
      --db-url sqlite:////freqtrade/user_data/tradesv3.sqlite
      --config /freqtrade/user_data/config.json
      --strategy SampleStrategy

ในโค้ดด้านบน เราสามารถใช้คำสั่งตาม Document ของ Freqtrade ได้ดังนี้

curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml

จากนั้นรันคำสั่ง

docker compose pull

ไปดูก่อนว่าขึ้นยัง ถ้าใครใช้ Command Line สามารถใช้คำสั่ง

docker images

จะได้ผลลัพธ์ ดังรูปเลย

docker images

จากนั้นเราจะรันคำสั่งต่อไปกันเลย

docker compose run --rm freqtrade create-userdir --userdir user_data

คำสั่งนี้เป็นการรันคำสั่งของ Container ที่อัพขึ้นไป และพอรันเสร็จให้ทำการลบ Container ทิ้ง โดยคำสั่งที่ใช้ใน Container ตามด้านบน ก็คือ

freqtrade create-userdir --userdir user_data

เป็นคำสั่งของ freqtrade เป็นการสร้างโครงสร้างไฟล์เริ่มต้นสำหรับ Freqtrade และเอาไปใส่ไว้ที่ user_data เนื่องจากเราเชื่อมต่อ Volume จากภายนอกอยู่แล้ว ทำให้เราเห็นข้อมูลข้างในก่อนที่ Container จะถูกลบไป โดยเราสามารถดูรายละเอียดของคำสั่งได้ที่นี่

เอาล่ะ รันคำสั่งต่อไปเลย

docker compose run --rm freqtrade new-config --config user_data/config.json

คำสั่งนี้ เหมือนเดิม เป็นการรันคำสั่ง Freqtrade เป็นการสร้าง config.json ขึ้นมา

เมื่อรันแล้ว จะมีขึ้นถามว่าให้เปิดโหมด Dry-run หรือไม่

Dry-run ก็คือ เป็นโหมดการทำงานหนึ่งของ Freqtrade โดยที่ ถ้าเราเปิดไว้ คอนฟิคที่เราตั้งไว้ทั้งหมดจะไม่ไปยุ่งกับเงินจริง ไว้สำหรับเช็คการทำงานของบอทว่าทำงานอยู่หรือไม่ สามารถดูรายละเอียดเพิ่มเติมได้ที่นี่ ในที่นี้ขอเปิดไว้ก่อน ก็พิมพ์ y ถ้าใครไม่ต้องการก็ n

freqtrade dry-run

ในส่วนนี้จะให้ใส่สกุลที่เราใช้เทรด ให้ใส่เป็น USDT แล้ว Enter ไป

freqtrade stake currency

ในส่วนนี้ให้ใส่จำนวนเงินไป ให้เลือกเป็น unlimited ก่อนก็ได้ แล้ว Enter ไป

freqtrade stake amount

ในส่วนนี้จะเป็นการตั้งเปิดออเดอร์สูงสุด Default ตั้งเป็น 3 ในส่วนนี้ แล้วแต่เลย โดยผู้เขียนเอาตาม Default นี่แหละ ก็ Enter

freqtrade max_open_trades

ส่วนนี้จะเป็นเรื่องของเวลา ก็คือ Freqtrade สามารถตั้งค่า Bot โดยขึ้นอยู่กับ Timeframe หรือ ตั้งเวลาได้ ในที่นี้ขอเลือกเป็น Have the strategy define timeframe. ก่อน

freqtrade max_open_trades time

ในส่วนนี้จะเป็นเรื่องของการแสดงผลบน Report โดยเราจะใช้เป็น USD เพราะว่าสกุลเงินที่เราเทรดเราใช้เป็น USDT ซึ่งเหรียญ USDT ค่าของเงินจะขึ้นอยู่กับ USD หรือค่าเงินดอลล่าร์อยู่แล้ว ก็ใส่เป็น USD แล้ว Enter ไป

freqtrade display currency

ส่วนนี้จะเป็นส่วนของการเลือก Exchange หรือเลือกกระดานเทรด ในที่นี้ขอเลือกเป็น binance แล้ว Enter ไป

freqtrade exchange

ในส่วนนี้เป็นการเลือกว่าเราจะเทรดแบบ Perpetual futures ด้วยหรือไม่ ในที่นี้ขอ n ละกัน แล้ว Enter (การเทรดแบบ Perpetual futures เป็นการเทรดแบบส่งคำซื้อขายแบบเป็นสัญญากัน คือไม่ได้รับเหรียญที่เป็นคริปโตจริง ๆ แต่ได้เป็นสัญญาแทน การเทรดแบบนี้จะมีการตั้ง Leverage หรือการตั้งเงินมูลค่ามากกว่าความเป็นจริงได้ บางที่อาจเรียกว่าเป็นการยืม แต่ก็มีความเสี่ยงสูงตามไปด้วย ในที่นี้ขอยังไม่พูดถึงแบบละเอียด แนะนำให้ศึกษาดี ๆ ก่อน)

freqtrade trade perpetual swaps

ในส่วนนี้จะเป็นการเชื่อมต่อกับ Telegram ส่วนนี้ผู้เขียนเลือกเป็น y ละกัน แล้ว Enter (การเชื่อมต่อกับ Telegram นั้น ทำให้เราสามารถดูรายละเอียดต่าง ๆ ได้บน Telegram)

freqtrade telegram

ในส่วนนี้จะเป็นการให้ใส่ Token ของ Telegram เพื่อควบคุม สามารถดูรายละเอียดการนำค่า Token ของ Telegram ได้ที่นี่ ในบทความนี้ เราจะมาทำการเอาค่า Token ของ Telegram ด้วยเช่นกัน ไปดูกันต่อเลย

freqtrade telegram token

ใครยังไม่มี Telegram สามารถติดตั้งได้ที่นี่ ใครใช้ Device ไหนก็ไปหาติดตั้งกันได้เลย

เมื่อติดตั้งแล้ว ให้คลิกที่ลิงค์นี้ เป็นการเพิ่ม BotFather เข้าไป (BotFather มีหน้าที่ในการลงทะเบียนเพื่อรับ Token สำหรับใช้ในการสร้างบอทหรือเชื่อมต่อกับ Telegram API สามารถดูรายละเอียดเพิ่มเติมได้ที่นี่)

เมื่อเราเพิ่มเพื่อนไป ถ้าใครสร้างบอทไว้อยู่แล้ว จะมีข้อความดังรูปเลย ให้ทำการ Copy Token ไปใส่

freqtrade copy token

สำหรับเริ่มต้นยังไม่มีจะขึ้นแบบนี้

freqtrade connected bot

เราต้องทำการสร้างบอทก่อน ให้คลิกที่ /newbot หรือพิมพ์ก็ได้

freqtrade run newbot

ใส่ชื่อที่เราต้องการ (ต้องไม่ซ้ำด้วยนะ ถ้าจำไม่ผิด) ในที่นี้ตั้งชื่อว่า TichakyTest ละกัน

freqtrade bot name

ในส่วนนี้จะให้ใส่ username แต่ในส่วนท้ายต้องมีคำว่า bot ในที่นี้ก็ใช้ TichakyTest_bot แล้วส่งไปเลย

freqtrade bot name TichakyTest_bot

ไปที่ Command Line นำ Token ที่ได้มาใส่แล้ว Enter เลย

freqtrade insert telegram token

ในส่วนนี้จะเป็นการถามหา chat id ให้เราเพิ่มเพื่อนอีกครั้ง ให้คลิกที่นี่

freqtrade insert telegram chat id

เมื่อไปที่ Telegram จะได้หน้าตาดังรูปเลย ให้คลิก Start ด้านล่าง

freqtrade start bot

ในส่วนนี้เราจะได้ id มาละ Copy ไปใส่ใน chat id ของ Telegram กันเลย

freqtrade telegram userinfobot

ไปที่ Command Line นำ id มาใส่ แล้ว Enter เลย

freqtrade paste telegram chat id

ในส่วนนี้เป็นการเปิดใช้งาน Rest API รวมถึงตัว Web UI ขอเปิดไว้แล้ว Enter เลย

freqtrade enable web ui

ในส่วนนี้เป็นการใส่ IP Address สำหรับ API Server โดย Default จะเป็น 127.0.0.1 ให้เราเปลี่ยนเป็น 0.0.0.0 แล้ว Enter ไป (ในรูปใช้เป็น 127.0.0.1 ถ้าใช้ Docker จะเชื่อมต่อไม่ได้ แต่ถ้าเป็นการติดตั้งแบบอื่น สามารถใช้งานได้)

freqtrade web ui bind address

ในส่วนนี้เป็นการเพิ่ม Username ของ API Server โดย Default จะเป็น freqtrader ในที่นี้ขอใช้เป็น Default ก่อน ก็​ Enter ไป

freqtrade insert api-server username

ในส่วนนี้เป็นการใส่ Password ก็แล้วแต่เราเลย ก็ Enter ไป

freqtrade insert api-server password

พอ Enter แล้ว ถ้าขึ้นแบบนี้ แสดงว่าเราทำการ Config เสร็จแล้ว

freqtrade config success

เราสามารถดูไฟล์ Config ได้ที่โฟลเดอร์เราเลย สามารถแก้ไขตรงนี้ได้เลย สะดวกมาก

freqtrade config

ไปดูที่โฟลเดอร์ strategies จะเห็นไฟล์ sample_strategy.py ซึ่งเป็นไฟล์ตัวอย่างเท่านั้น

freqtrade strategies

เอาล่ะ เราจะมา Start กันเลย ก็รันคำสั่งได้เลย

docker compose -f docker-compose.yml up -d

ถ้าไม่มีอะไรผิดพลาด น่าจะรันได้ปกติ สามารถเช็คได้ที่คำสั่ง docker ps หรือไปที่ Docker Desktop ที่แท็บ Container ได้เลย

ไปที่ localhost:8080 เพื่อไปที่ Web UI กัน

freqtrade web ui

ไปที่ Dashboard จากนั้นทำการ Login ตามที่เราได้ใส่ไว้เมื่อกี้

freqtrade login

เมื่อเข้ามาแล้ว เราจะเห็นรายละเอียดต่าง ๆ ตามรูปเลย สามารถดูรายละเอียด Trade, Chart, Logs ได้ตามเมนูด้านบนเลย

freqtrade dashboard

ยังไม่หมด ๆ เรามาดู Telegram ต่อเลย

freqtrade telegram chat

เราจะเห็นว่า บอทมีปุ่มให้เลือกเต็มเลย แล้วตอนนี้สถานะของบอทก็ทำงานปกติ เราสามารถดูค่าต่าง ๆ ด้วยการคลิกได้เลย รายละเอียดต่าง ๆ สามารถดูได้ที่นี่

เอาล่ะ เราจะได้บอททำงานได้ทั้งบน Web UI และ Telegram แล้ว เป็นไงครับ มันดีมากเลยใช่มั้ย แต่ต้องบอกก่อนว่าตอนนี้บอททำงานในโหมดของ Dry-run ก็คือเทสและไม่หักเงินจริง ต้องบอกก่อนว่าต่อให้เราตั้งค่าปิดโหมด Dry-run ก็ไม่สามารถหักเงินได้ เพราะเรายังไม่ได้เอาตัวบอทเราเชื่อมต่อกับ Exchange หรือกระดานเทรดนั่นเอง สามารถดูรายละเอียด config.json ได้ตามรูปเลย

freqtrade config exchange

ที่บอกเรื่อง Dry-run สุดท้ายเพราะอยากให้ผู้อ่านเกิดความรอบคอบเวลาเราจะเปิดบอท เพราะไม่งั้นถ้าเราตั้งค่าผิดพลาด บอทเราไปเลยนะ บางทีหักเงินหรือเทรดเองอะไรอย่างงี้

โหมด Dry-run มีประโยชน์มาก ๆ เพราะเราสามารถตั้งค่าเงินที่เป็นเงินจำลองได้ จริง ๆ แล้ว Freqtrade สามารถทำ Backtest ตั้งเวลา Trade และเพิ่มประสิทธิภาพให้กับบอทเทรดเราได้เดี๋ยวไว้มีโอกาสจะมาสอนวิธีตั้งค่าต่อ ๆ ไปละกัน

เพิ่มเติมส่งท้าย บอกก่อนว่า Freqtrade นั้นใช้ฐานข้อมูลเป็น SQLite นะ ถ้าใครต้องการดูข้อมูลก็ดูผ่านตัวนี้ได้เลย

สุดท้าย “การลงทุนมีความเสี่ยง ผู้ลงทุนควรศึกษาข้อมูลก่อนการตัดสินใจลงทุน” ยังไงก็ศึกษาให้ดี ๆ ก่อนการใช้ ถ้าใครใช้เป็นคิดว่ามีประโยชน์มาก ๆ วันนี้แค่มาสอนวิธีการติดตั้ง ส่วนบทความหน้าจะเป็นยังไงนั้น ติดตามกันได้เลย สำหรับวันนี้จากกันไปก่อน สวัสดีครับ

ช่องทางการติดต่อ

Email: [email protected]

Website: https://blog.tichaky.com/

Facebook: https://www.facebook.com/tichaky

Youtube: https://www.youtube.com/@tichaky_diary

Medium: https://medium.com/@tichakon.bank