Boom Leverage
บทความทั้งหมด

ย้ายจาก Amibroker/VBA มา Python ด้วย Settrade Open API — ทดลองยิงออเดอร์ TFEX ใน Sandbox ก่อนเสี่ยงเงินจริง

อยากเขียนบอทเทรด TFEX เองแต่ติดอยู่กับ Amibroker/VBA? บทความนี้เล่าว่าทำไม Python คือทางที่ future-proof กว่า ต่อ Settrade Open API ยังไง และวิธีทดลองยิงออเดอร์จริงใน sandbox โดยไม่เสี่ยงเงินสักบาท จากมุมคนทำ model risk ที่ย้ำว่า 'ทดสอบก่อนเสี่ยง' เน้นวิธีการ ไม่ใช่คำแนะนำการลงทุน

Varanchai Yingkhamnueng·
derivativesBoom Leverage

ย้ายจาก Amibroker/VBA มา Python ด้วย Settrade Open API — ทดลองยิงออเดอร์ TFEX ใน Sandbox ก่อนเสี่ยงเงินจริง

อยากเขียนบอทเทรด TFEX เองแต่ติดอยู่กับ Amibroker/VBA? บทความนี้เล่าว่าทำไม Python คือทางที่ future-proof กว่า ต่อ Settrade Open API ยังไง และวิธีทดลองยิงออเดอร์จริงใน sandbox โดยไม่เสี่ยงเงินสักบาท จากมุมคนทำ model risk ที่ย้ำว่า 'ทดสอบก่อนเสี่ยง' เน้นวิธีการ ไม่ใช่คำแนะนำการลงทุน

ถ้าคุณเคยเขียนระบบเทรดบน Amibroker (AFL) หรือ Excel VBA แล้วเริ่มรู้สึกว่ามันตัน— ต่อข้อมูลใหม่ก็ยาก จะเอา AI มาช่วยก็ไม่ได้ จะ backtest จริงจังก็ติดเครื่องมือ — บทความนี้เขียนเพื่อคุณ ผมจะเล่าว่าทำไมการย้ายมา Python + Settrade Open API ถึงคุ้มในระยะยาว และที่สำคัญที่สุดคือวิธี ทดลองยิงออเดอร์ TFEX จริงใน sandbox ก่อนเอาเงินจริงเข้าไปเสี่ยง — เล่าจากมุมคนทำ model risk สายธนาคารที่ถูกฝึกมาให้ ทดสอบก่อนเชื่อเสมอ และขอย้ำตั้งแต่ต้น: เน้นวิธีการ ไม่ใช่คำแนะนำให้ไปลงทุนอะไร

ทำไมต้องคิดเรื่องย้ายมา Python ตอนนี้

เหตุผลที่ทนทานที่สุดไม่ใช่เรื่องกระแส แต่เป็นเรื่องโครงสร้าง:

  • ระบบนิเวศกว้างกว่ามาก — pandas/numpy สำหรับจัดการข้อมูล, ไลบรารี backtest, การต่อ data source อื่น ๆ ทำได้หมดในภาษาเดียว ไม่ต้องสลับเครื่องมือ
  • AI ช่วยเขียนได้จริง — เครื่องมืออย่าง Claude Code อ่าน/เขียน/ดีบัก Python ได้ลื่นกว่า AFL หรือ VBA มาก แปลว่าคนที่ไม่ใช่โปรแกรมเมอร์เต็มตัวก็เริ่มได้เร็วขึ้นเยอะ (ถ้ายังใหม่ ลองอ่านวิธีเริ่มต้น Claude Code สำหรับสายการเงินก่อน)
  • อ่านออก แก้ได้ ตรวจได้ — โค้ด Python ที่คุณเขียนเองคือกล่องใส ไม่ใช่กล่องดำ ซึ่งตรงกับวินัยที่ผมยึดเรื่องการสร้างผู้ช่วยเทรดที่ตรวจสอบได้

มีกระแสในชุมชนสายบอทว่า Settrade อาจลดการซัพพอร์ต VBA/Amibroker ในอนาคต — ย้ำว่ายังไม่มีประกาศทางการ (ดูเธรดพูดคุยใน Pantip ที่ผู้โพสต์เองก็ระบุว่า "รอประกาศทางการ") ผมจึงไม่เอาข่าวนี้มาเป็นเหตุผลหลัก แต่ทิศทางของเครื่องมือที่ทุกคนลงแรงต่อยอดได้ในระยะยาวคือ Python อยู่ดี

Sandbox คือของขวัญ: ทดลองยิงออเดอร์โดยไม่เสี่ยงเงินสักบาท

จุดที่หลายคนพลาดคือกระโดดไปต่อบัญชีจริงทันที ทั้งที่ Settrade Open API มี sandbox ให้ทดสอบ — เป็นสนามจำลองที่ยิงออเดอร์ได้จริงผ่าน API แต่ ไม่ใช้เงินจริงและไม่แตะบัญชีจริง สำหรับคนทำ risk นี่คือสภาพแวดล้อมในฝัน เพราะ downside ของการลองผิดลองถูกเท่ากับศูนย์: เขียนพัง รันใหม่ ยิงออเดอร์ผิด ก็ไม่มีใครเสียเงิน

ค่าเชื่อมต่อ sandbox ตามที่เอกสาร/บทเรียนของผู้ให้บริการระบุไว้ ใช้ค่าทดสอบเฉพาะ เช่น broker_id="SANDBOX", app_code="SANDBOX", เลขบัญชีอนุพันธ์ (TFEX) ลงท้ายด้วย -D และ PIN ทดสอบ 000000 — ค่าจริงให้ยืนยันอีกครั้งกับเอกสารทางการและโบรกเกอร์ของคุณ เพราะรายละเอียดอาจปรับเปลี่ยนได้

ต่อ Settrade Open API ด้วย Python ใน 3 ขั้น

ขั้นแรกติดตั้ง SDK (เวอร์ชันปัจจุบันเป็น v2 — เช็กชื่อแพ็กเกจ/เวอร์ชันล่าสุดกับเอกสารทางการอีกครั้ง):

pip install settrade-v2

จากนั้น connect เข้า sandbox → เลือกบัญชีอนุพันธ์ → ยิง 1 ออเดอร์ทดสอบ แล้วอ่านผลกลับมา:

from settrade_v2 import Investor

# 1) เชื่อมต่อแบบ sandbox — ใช้ credential ทดสอบ ไม่แตะบัญชีจริง
inv = Investor(
    app_id="YOUR_APP_ID",
    app_secret="YOUR_APP_SECRET",
    broker_id="SANDBOX",
    app_code="SANDBOX",
)

# 2) เลือกบัญชีอนุพันธ์ (TFEX) — รูปแบบ sandbox ลงท้าย -D
deriv = inv.Derivatives(account_no="YOUR_USERNAME-D")

# 3) ยิง 1 ออเดอร์ทดสอบ แล้วพิมพ์สถานะกลับมาดู
order = deriv.place_order(
    pin="000000",
    symbol="S50U26",      # เปลี่ยนเป็นซีรีส์ฟิวเจอร์สที่ active ตอนนั้น
    side="Long",
    position="Open",
    price_type="Limit",
    price=900,
    volume=1,
)
print(order)

แค่นี้คุณก็มี "hello world" ของการเทรดผ่าน API แล้ว — พิสูจน์ว่าเครื่องคุณ + โค้ด + ระบบของโบรกต่อกันติดจริง ก่อนจะไปลงแรงเขียน logic กลยุทธ์ พารามิเตอร์บางตัวอาจต่างเล็กน้อยตามเวอร์ชัน SDK ให้ยึดเอกสารอ้างอิง place_order ของ Settrade v2เป็นหลัก และจำไว้ว่าระบบมีลิมิตการส่งคำสั่ง (เช่น เรียกดูสถานะออเดอร์ได้ไม่เกิน 5 ครั้ง/วินาที และห้ามรูปแบบคำสั่งที่เข้าข่ายปั่นราคา) ตามข้อตกลงผู้ให้บริการ — ออกแบบบอทให้อยู่ในกรอบนี้ตั้งแต่แรก

AI ช่วยข้ามกำแพงโค้ดได้ — แต่ห้ามข้ามกำแพงความเสี่ยง

จุดที่เปลี่ยนเกมจริง ๆ คือคุณไม่ต้องเป็นเทพ Python ก่อนถึงจะเริ่ม ให้ Claude Code ช่วย scaffold โครง เชื่อมต่อ จัดการ error และอธิบายทีละบรรทัด — กำแพง "เขียนโค้ดไม่เป็น" เตี้ยลงมาก แต่กำแพงที่ ห้ามข้าม คือความเสี่ยง:

เส้นที่ห้ามข้าม: บัญชีตัวเอง ไม่ใช่เงินคนอื่น

ข้อนี้สำคัญทางกฎหมาย API นี้คือช่องทางส่งคำสั่งบน บัญชีของคุณเอง และตามข้อตกลง การส่งคำสั่งผ่านโปรแกรมถือเสมือนคุณส่งเอง — ความรับผิดทั้งหมดเป็นของคุณ การเขียนบอทเทรดบัญชีตัวเอง หรือสอนให้คนอื่นไปเขียนบอท ของเขาเอง นั้นทำได้ แต่การรับเขียนบอท/ส่งสัญญาณที่ไปสั่งซื้อขายบน บัญชีหรือเงินของคนอื่น เป็นกิจกรรมที่อาจเข้าข่ายต้องมีใบอนุญาตคนละแบบ — อย่าข้ามเส้นนี้

อยากได้คอร์สเต็มแบบจับมือทำไหม?

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

ระหว่างนี้ ถ้าอยากเห็นวิธีที่ผมเอา Claude Code มาวางกระบวนการสร้างและ validate งาน data/ความเสี่ยงสายการเงิน เอาโครงทั้งระบบไปปรับใช้ได้ในคอร์ส AI Quant Trading

ข้อจำกัดและคำเตือน

โค้ดและค่าต่าง ๆ ในบทความนี้ใช้เพื่ออธิบายวิธีต่อ sandbox ชื่อแพ็กเกจ พารามิเตอร์ และค่า credential ทดสอบอาจเปลี่ยนตามเวอร์ชัน SDK และประกาศของผู้ให้บริการ — ต้องยืนยันกับเอกสารทางการและโบรกเกอร์ของคุณก่อนใช้จริงทุกครั้ง การเทรดอนุพันธ์มี leverage สูงและความเสี่ยงสูง บทความนี้ว่าด้วยวิธีต่อ API และวิธีทดสอบอย่างปลอดภัย ไม่ใช่คำแนะนำการลงทุน ไม่ได้ชี้นำให้ซื้อขายสัญญาใด และไม่รับประกันผลตอบแทนใด ๆ การตัดสินใจและความเสี่ยงทั้งหมดเป็นของผู้ลงทุนเอง · การลงทุนมีความเสี่ยง ผลในอดีตไม่รับประกันอนาคต

อ่านต่อ