Friday, June 27, 2025
Homeการซื้อขายเฟรมเวิร์ก CCXT แบบเต็มเปี่ยมสำหรับการแลกเปลี่ยน crypto 100+ สามารถรวมเข้ากับ Metatrader 5: ข้อดีและข้อเสีย - อื่น ๆ...

เฟรมเวิร์ก CCXT แบบเต็มเปี่ยมสำหรับการแลกเปลี่ยน crypto 100+ สามารถรวมเข้ากับ Metatrader 5: ข้อดีและข้อเสีย – อื่น ๆ – 10 เมษายน 2025


ฉันต้องการแบ่งปันแนวคิดในการรวม Metatrader 5 และ CCXT ไลบรารี

สำหรับผู้ที่ไม่ทราบว่า CCXT คืออะไรฉันได้ให้คำแนะนำเล็ก ๆ น้อย ๆ ในข้อความ readme ที่นำเสนอด้านล่าง

ในการกล่าวสั้น ๆ CCXT เป็นห้องสมุดโอเพนซอร์ซสำหรับการเข้าถึงการแลกเปลี่ยน crypto ยอดนิยมทั้งหมด

CCXT มีให้บริการในหลายภาษาและแพลตฟอร์มการเขียนโปรแกรมซึ่งเป็นการรวมกันของ JavaScript ที่ทำงานบนเซิร์ฟเวอร์ Node.js ที่รู้จักกันดี

ดังนั้นเราสามารถใช้ WebRequest และฟังก์ชั่นซ็อกเก็ตที่สร้างขึ้นใน MQL5 เพื่อเชื่อมต่อ Metatrader 5 และแอปพลิเคชัน JavaScript/Node.js

นี่คือรูปแบบของสถาปัตยกรรมที่นำไปใช้แล้ว (รุ่นเบต้าที่ จำกัด )

เชื่อมต่อ metatrader 5 กับการแลกเปลี่ยน crypto ผ่านเซิร์ฟเวอร์แอปพลิเคชัน CCXT บน node.js

การเชื่อมต่อ metatrader 5 กับการแลกเปลี่ยน crypto ผ่านเซิร์ฟเวอร์แอปพลิเคชัน CCXT บน node.js

Metatrader 5 โฮสต์ MQL5-application ซึ่งร้องขอเซิร์ฟเวอร์ JavaScript/node.js ซึ่งจะใช้ไลบรารี CCXT เพื่อแปลและส่งคำขอเหล่านี้เพิ่มเติมไปยังการแลกเปลี่ยนระยะไกลที่คุณเลือก

สิ่งที่ดีที่นี่คือเราใช้ประโยชน์จากพลังทั้งหมดของ CCXT

สิ่งที่ไม่ดีคือเราต้องตั้งค่าหลายส่วนของสถาปัตยกรรมด้วยตนเองส่วนใหญ่เป็นเพราะข้อ จำกัด ที่กำหนดโดย MQL5 Sandbox (กลไกความปลอดภัย)

1. เราต้องการเซิร์ฟเวอร์ Node.js ที่ติดตั้งบนพีซีของคุณ (เราไม่สามารถทำได้จาก MT5)

2. เราจำเป็นต้องติดตั้งเซิร์ฟเวอร์แอปพลิเคชัน JavaScript บน node.js (เราไม่สามารถทำได้จาก MT5)

3. node.js และเซิร์ฟเวอร์แอพจะต้องเรียกใช้ด้วยตนเองหรือผ่าน Home windows Scheduler (เราไม่สามารถทำได้จาก MT5)

ขั้นตอนทั่วไปของการติดตั้งผลิตภัณฑ์ MQL5 สมมุติฐานจากตลาดจะแสดงในแผนภาพต่อไปนี้

การตั้งค่าเซิร์ฟเวอร์แอปพลิเคชัน CCXT บน node.js สำหรับ metatrader 5

การตั้งค่าเซิร์ฟเวอร์แอปพลิเคชัน CCXT บน node.js สำหรับ metatrader 5

กระบวนการนี้จะเหมือนกันสำหรับผลิตภัณฑ์สำเร็จรูปใด ๆ ที่มีห้องสมุดที่ฝังอยู่ในนั้น (เมื่อ/ถ้าผลิตภัณฑ์ดังกล่าวพร้อมใช้งานจากนักพัฒนาบุคคลที่มี 3 มิติ)

การพัฒนาโปรแกรม MQL5 ที่ใช้ตามห้องสมุดต้องใช้ชุดของ MQH-headers และ MQ5-ไฟล์พร้อมการประกาศอินเทอร์เฟซ API และการใช้งานฟังก์ชั่นเสริม (สิ่งเหล่านี้ไม่จำเป็นสำหรับผู้ใช้ทั่วไป)

CCXT แอปพลิเคชันเซิร์ฟเวอร์ปฏิบัติการและไฟล์ซอร์สโค้ด

CCXT แอปพลิเคชันเซิร์ฟเวอร์ปฏิบัติการและไฟล์ซอร์สโค้ด

ตัวอย่างของการเขียนโปรแกรมสคริปต์ที่กำหนดเองโดยใช้ห้องสมุดจะมีให้สำหรับนักพัฒนาเช่นกัน

ซอร์สโค้ดของการใช้งานหลักของไลบรารีถูกปิดนั่นคือทั้งส่วน MQL5 และส่วน JavaScript จะถูกกระจายในรูปแบบ precompiled (EX5 และ JSCตามลำดับ)

ห้องสมุดยังอยู่ระหว่างการพัฒนาและทดสอบ

อย่าลังเลที่จะส่งความคิดของคุณให้ฉันเกี่ยวกับว่าคุณพบกระบวนการที่อธิบายไว้ซับซ้อนเกินไปหรือยอมรับได้ คุณสามารถแนะนำวิธีที่จะทำให้ประสบการณ์ผู้ใช้ง่ายขึ้น แต่โปรดจำไว้ว่าผลิตภัณฑ์ MQL5 นั้นอยู่ภายใต้ข้อ จำกัด ที่ใช้โดยตลาด Metatrader 5 และ MQL5

หากคุณสนใจที่จะเข้าร่วมในการทดสอบหรือพัฒนาผลิตภัณฑ์เฉพาะที่ด้านบนของห้องสมุดโปรดติดต่อฉันผ่านการส่งข้อความส่วนตัว

===== ReadMe =====

CCXT แอปพลิเคชันเซิร์ฟเวอร์บน node.js สำหรับ metatrader 5

CCXT ย่อมาจากห้องสมุดการซื้อขายแลกเปลี่ยนสกุลเงินดิจิตอลที่มีอยู่ที่ https://github.com/ccxt/ ในภาษาการเขียนโปรแกรมจำนวนมากและสำหรับแพลตฟอร์มที่แตกต่างกัน

CCXT ให้การเข้าถึงแบบครบวงจรของการแลกเปลี่ยน crypto มากกว่า 100 รายการด้วย API ของภาครัฐและเอกชนที่ดำเนินการอย่างเต็มที่ (เทียน, การซื้อขาย, สมุดสั่งซื้อ, ข้อมูลจำเพาะสัญลักษณ์, ตำแหน่ง, การจัดการบัญชี ฯลฯ )

CCXT Utility Server เป็นเซิร์ฟเวอร์ HTTPS/WebSockets สำหรับ node.js (ขับเคลื่อนโดย JavaScript V8 Engine) ซึ่งส่งมอบความสามารถ CCXT ไปยังเว็บไคลเอ็นต์และโดยเฉพาะกับ Metatrader 5 ด้วย WebRequest และซ็อกเก็ตรองรับที่สร้างขึ้นใน MQL5

การรวม AppServer กับ Metatrader 5 ถูกนำมาใช้โดยใช้ ccxtappsrvlibrary – เป็นไลบรารี MQL5 ดั้งเดิมที่จะติดตั้งเข้าสู่ MQL5/ห้องสมุด โฟลเดอร์นั้นแมปวิธี CCXT ลงในอินเตอร์เฟส MQL5 โปรแกรม MQL5 สามารถนำเข้าได้ ccxtappsrvlibraryอินเทอร์เฟซและสร้างเครื่องมือที่ใช้ Variuos ด้านบนของไอที ​​- ที่ปรึกษาผู้เชี่ยวชาญ, ตัวบ่งชี้, บริการ, แผนภูมิที่กำหนดเอง ฯลฯ

ห้องสมุดเองไม่ได้ให้เครื่องมือดังกล่าว! คุณสามารถสั่งการพัฒนาของพวกเขาในส่วนอิสระหรือ (ตามที่วางแผนไว้สำหรับอนาคต) การค้นหา mql5.com สำหรับผลิตภัณฑ์สำเร็จรูปตามห้องสมุด ด้วยความรู้เกี่ยวกับการเขียนโปรแกรมคุณสามารถรวมไลบรารีเข้ากับโปรแกรมของคุณด้วยตัวเอง

เซิร์ฟเวอร์แอปพลิเคชัน CCXT ถูกฝังลงในไฟล์ ccxtappsrvlibrary เป็น zip-archive ด้วย bytecode (ดูด้านล่าง) และสามารถอัพเกรดได้เมื่อมีการร้องขอเป็นส่วนหนึ่งของการสนับสนุนของลูกค้าที่ได้รับการยืนยัน

ขั้นตอนในการสร้าง CCXT และทำงานบน MT5 รวมถึง:

1. รับ node.js

ส่วนนี้เหมาะสำหรับผู้ที่ยังไม่มี node.js หากคุณมีโหนดอยู่แล้วคุณสามารถข้ามส่วนนี้และใช้อินสแตนซ์ของโหนด

คุณสามารถรับ node.js และค้นหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ https://nodejs.org/

สำหรับการดาวน์โหลดโดยตรงเยี่ยมชม https://nodejs.org/en/obtainคุณสามารถเลือกระหว่าง:

  • Home windows Installer (.MSI)
  • ไบนารีแบบสแตนด์อโลน (.zip)

ใช้ MSI หากคุณกำลังจะเข้าถึงเซิร์ฟเวอร์จากหลาย ๆ กรณีของ Metatrader 5

ใช้ ซิป สำหรับการตั้งค่าที่ละเอียดของแต่ละอินสแตนซ์ภายใต้ metatrader 5 ที่เฉพาะเจาะจง (ที่มีความสามารถในการเรียกใช้โหนดเวอร์ชันและการกำหนดค่าที่แตกต่างกัน) หรือสำหรับอินสแตนซ์เดียว

ในบรรดาจำนวนโหนดจำนวนมากที่มีให้ในเว็บไซต์ขอแนะนำให้เลือกเวอร์ชัน LTS ล่าสุด (สนับสนุนระยะยาว)

ตัวอย่างเช่นในขณะที่เขียนเวอร์ชัน LTS คือ (zip variant): https://nodejs.org/dist/v22.14.0/node-v22.14.0-win-x64.zip

แต่ที่หน้าของรุ่นล่าสุด https://nodejs.org/dist/newest/ หนึ่งสามารถค้นหาเวอร์ชัน (แต่ไม่ใช่ LTS) ล่าสุด Node-V23.10.0-win-x64.zip

อันไหนให้เลือกขึ้นอยู่กับคุณ

โปรดทราบว่าสำหรับ Home windows/Metatrader 5 คุณควรเลือกชุดแจกจ่ายด้วย …-win-x64 คำต่อท้าย

2. การดาวน์โหลด ccxtappsrvlibrary

ccxtappsrvlibrary คือ (ควรจะเป็น) มีอยู่ในตลาด MQL5 และสามารถดาวน์โหลดได้จาก Metatrader 5 หรือจาก mql5.com

ห้องสมุดถูกดาวน์โหลดลงใน MQL5/Scripts/Market/ โฟลเดอร์ตามค่าเริ่มต้น (นี่คือวิธีการทำงานของตลาด MQL5) จำเป็นต้องคัดลอกลงใน MQL5/Libraries/CCXT/ โฟลเดอร์ด้วยตนเอง คุณยังสามารถคัดลอกไปยังอินสแตนซ์ MT5 ได้มากมาย

นอกจาก EX5-File ดาวน์โหลดจากตลาดเพื่อการพัฒนาโปรแกรม MQL5 ตามห้องสมุดคุณจะต้องมีไฟล์ MQH ที่มีการส่งออกและการประกาศอินเทอร์เฟซ พวกเขา (จะเป็น) มีอยู่ที่หน้าผลิตภัณฑ์และในบล็อก

หากคุณใช้ผลิตภัณฑ์สำเร็จรูปหรือผลิตภัณฑ์ที่สร้างขึ้นเอง MQH-Recordsdata มีประโยชน์สำหรับการอ้างอิงเท่านั้น

3. การปรับใช้เซิร์ฟเวอร์แอปพลิเคชัน CCXT

เหนือสิ่งอื่นใดที่ประกาศไว้ใน MQH-Recordsdata ccxtappsrvlibrary ส่งออกฟังก์ชั่น deployccxtappserver– เรียกมันจากโปรแกรม MQL5 ของคุณเมื่อเริ่มต้นเพื่อแยก zip-archive ด้วย CCXT Utility Server ซึ่งฝังลงใน EX5-ไฟล์. หากคุณใช้ผลิตภัณฑ์สำเร็จรูปหรือแบบกำหนดเองควรให้การควบคุมบางอย่างใน GUI เพื่อเริ่มต้นการกระทำนี้

ตัวอย่างเช่นการใช้งานภายในที่เป็นไปได้อาจเป็น:

void OnStart()
{
   const int d = DeployCcxtAppServer();
   if(d <= 0)
   {
      return;
   }
   
   
   ...
}

ฟังก์ชัน deployccxtappserver ส่งคืนหนึ่งในค่าต่อไปนี้:

  • -1 – ข้อผิดพลาดไม่สามารถปรับใช้เซิร์ฟเวอร์แอพได้
  • 0 – zip กับเซิร์ฟเวอร์แอพถูกปรับใช้ แต่ยังไม่ได้แยก
  • +1 – ไฟล์แอพเซิร์ฟเวอร์อยู่ในสถานที่ (ซิปถูกดึงออกมา);

โดยปกติหลังจากการรันครั้งแรกคุณจะได้รับผลลัพธ์ 0 และสามารถค้นหา zip-archive ใหม่ใน MQL5/Recordsdata/CCXT-APP-SRV/CCXTAPPSRV-1-0.ZIP (เวอร์ชันอาจแตกต่างกันไป)

คุณควรเปิดเครื่องซิปด้วยตนเอง นี่คือข้อ จำกัด ที่กำหนดโดย MQL5 Sandbox – เทอร์มินัลไม่อนุญาตให้มีการสกัดแบบโปรแกรมของไฟล์ JavaScript

หากคุณต้องการใช้หน้าต่างคอนโซลอย่างง่ายเพื่อคลายซิปคำสั่งต่อไปนี้จะทำงาน:

tar -xf ccxtappsrv-1-0.zip

สิ่งนี้ควรแยกไฟล์แอพเซิร์ฟเวอร์จากซิปลงในปัจจุบัน /CCXT-APP-SRV/ โฟลเดอร์:

  • ccxtappsrvbundle.jsc – โปรแกรมหลัก (bytecode);
  • ccxtappsrvbundle.loader.cjs – สคริปต์ตัวโหลดสำหรับโปรแกรมหลัก;
  • run.cmd – คำสั่งเพื่อเรียกใช้แอปพลิเคชันเซิร์ฟเวอร์; หรือคุณสามารถเปิดตัวได้ node.exe โดยตรง (ดูส่วนถัดไป)

นอกจากนี้สิ่งที่คลายซิปที่มีโฟลเดอร์ย่อย ccxt-app-srv/node_modules/ ด้วยแพ็คเกจที่ต้องการใช้โดยตัวโหลด

หลังจากนี้การโทรที่ตามมาทั้งหมด deployccxtappserver ใน MQL5 จะส่งคืน +1 ซึ่งหมายความว่าสภาพแวดล้อมถูกปรับใช้และพร้อมสำหรับการดำเนินการตามโหนด

4. กำลังเรียกใช้ node.js

ทำ node.exe คำสั่งที่รู้จักใน Home windows คุณสามารถติดตั้งโหนดผ่าน MSI-ติดตั้งหรือลงทะเบียนไฟล์ที่ยังไม่ซิปในสภาพแวดล้อมระบบเช่นผ่าน nodevars.bat (มาพร้อมกับโหนด)

นอกจากนี้คุณสามารถตั้งค่าสำเนาโหนดเฉพาะในโฟลเดอร์เฉพาะ (เช่น MQL5/Recordsdata/CCXT-APP-SRV/) โดยการแยกไบนารีแบบสแตนด์อโลนของโหนด (ซิปจาก p.1) ลงไป

เพื่อเริ่ม node.js ด้วยการใช้แอปพลิเคชันเซิร์ฟเวอร์ run.cmd หรือบรรทัดคำสั่งมาตรฐาน (ขวาในไฟล์ MQL5/Recordsdata/CCXT-APP-SRV/

node ccxtappsrvbundle.loader.cjs <optionally available parameters>

คุณสามารถพิจารณาสร้างงานสำหรับ Home windows Scheduler หรือเพิ่มคำสั่งลงใน Home windows Autostart หากคุณต้องการให้แอปพลิเคชันเซิร์ฟเวอร์ทำงานตลอดเวลา

5. อาร์กิวเมนต์บรรทัดคำสั่ง / ตัวเลือก

เซิร์ฟเวอร์แอพรองรับอาร์กิวเมนต์ต่อไปนี้ในบรรทัดคำสั่ง:

node ccxtappsrvbundle.loader.cjs (https-cert-files) (port) (IP) (username)

อาร์กิวเมนต์แรกคือชื่อของไฟล์รับรอง SSL (NAME.KEY และ identify.crt) ซึ่งเปิดใช้งานการเชื่อมต่อที่ปลอดภัย https/wss บนเซิร์ฟเวอร์ โดยค่าเริ่มต้นชื่อจะว่างเปล่า “” (ไม่มีใบรับรอง) และการเชื่อมต่อจะถูกสร้างขึ้นผ่าน HTTP/WS ธรรมดา (นี่ก็โอเคสำหรับการเชื่อมต่อในท้องถิ่นดูด้านล่าง) โปรดค้นหาออนไลน์เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างใบรับรองหรือรับจากเจ้าหน้าที่

พอร์ตเป็นพอร์ตการสื่อสารที่ใช้โดยเซิร์ฟเวอร์ – 8124 โดยค่าเริ่มต้น

IP เป็น IP-address ที่ใช้โดยเซิร์ฟเวอร์ 127.0.0.1 โดยค่าเริ่มต้นซึ่งหมายความว่าเฉพาะการเชื่อมต่อในท้องถิ่นเท่านั้นที่ได้รับการยอมรับ (จากโปรแกรมบนพีซีเดียวกัน) ใช้ 0.0.0.0 เพื่อให้เซิร์ฟเวอร์เปิดเผยต่อสาธารณะบนเครือข่ายท้องถิ่นหรือ/และอินเทอร์เน็ต (ขึ้นอยู่กับการตั้งค่าเราเตอร์ของคุณ) ตัวอย่างเช่นคุณสามารถใช้โหนดเดียวเพื่อเข้าถึงการแลกเปลี่ยนจากคอมพิวเตอร์ทุกเครื่องในบ้านของคุณ หากคุณวางแผนที่จะแชร์เซิร์ฟเวอร์ผ่านอินเทอร์เน็ตจะดีกว่าที่จะเปิดใช้งาน HTTPS/WSS

ชื่อผู้ใช้เป็นสตริงการตรวจสอบความถูกต้องที่เป็นตัวเลือก – ป้องกันไม่ให้คนแปลกหน้าเชื่อมต่อกับเซิร์ฟเวอร์ของคุณหากมองเห็นได้บนอินเทอร์เน็ต เมื่อคุณตั้งค่า IP เป็น 0.0.0.0 เซิร์ฟเวอร์จะใช้กลุ่ม: ชื่อผู้ใช้ (จาก Home windows) เป็นอาร์กิวเมนต์ชื่อผู้ใช้ตามค่าเริ่มต้น

IP, พอร์ตและชื่อผู้ใช้ก็ถูกส่งผ่านไปยัง ccxtappsrvlibrary ในระหว่างการเริ่มต้นใน MQL5 และค่าทั้งหมดควรตรงกับการตั้งค่าที่ทำบนเซิร์ฟเวอร์

นี่คือตัวอย่างของบรรทัดคำสั่ง:

node ccxtappsrvbundle.loader.cjs "mycert"

เรียกใช้กับ SSL โดยใช้ mycert.key และ mycert.crt ในโฟลเดอร์เดียวกัน

node ccxtappsrvbundle.loader.cjs "" 9000

เรียกใช้โดยไม่มี SSL บนพอร์ต 9000

node ccxtappsrvbundle.loader.cjs "" 8124 0.0.0.0 "confidential"

เรียกใช้โดยไม่มี SSL บนพอร์ต 8124 และยอมรับการเชื่อมต่อทั้งหมดที่ผ่านการตรวจสอบโดยอัตโนมัติโดยสตริงส่วนตัวที่ระบุ

6. คำเตือน

NB: โปรดทราบว่าแอปพลิเคชันเซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ผู้ใช้เดียว – ยอมรับและใช้คีย์/รหัสผ่านส่วนตัวของคุณสำหรับการแลกเปลี่ยนที่เลือก หากคุณแชร์เซิร์ฟเวอร์กับคนอื่นบุคคลนี้จะสามารถเข้าถึงการแลกเปลี่ยนที่คุณชื่นชอบทั้งหมดด้วยสิทธิ์ของคุณและในทางกลับกัน – คุณจะสามารถดำเนินการภายใต้ข้อมูลประจำตัวของเขา/เธอในการแลกเปลี่ยนทั้งหมดที่เขาหรือเธอเข้าถึงผ่านเซิร์ฟเวอร์พร็อกซี

(tagstotranslate) Coinbase (T) Kraken (T) Bitfinex (T) Binance (T) Bybit (T) Upbit (T) OKX (T) Bitget (T) MEXC (T) gate.io (T) KUCOIN (T) HTX

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

ความเห็นล่าสุด