การเทรดด้วยระบบ

การเขียนโปรแกรม MQL5 สำหรับนักเทรด – อัตโนมัติการเทรดใน MetaTrader 5
MetaTrader5
การเขียนโปรแกรม MQL5 สำหรับนักเทรด – อัตโนมัติการเทรดใน MetaTrader 5

ส่วนที่ 6: การอัตโนมัติการเทรดใน "ส่วนที่ 6: การอัตโนมัติการเทรด" ของ "การเขียนโปรแกรม MQL5 สำหรับนักเทรด" เราจะมาศึกษาสิ่งสำคัญในภาษา MQL5 ที่เป็นพื้นฐานในการสร้าง EA (Expert Advisors) ที่ทำงานได้อย่างถูกต้อง โดยเริ่มต้นจากการอธิบายหน่วยทางการเงินและการตั้งค่าบัญชีเทรด ซึ่งเป็นสิ่งที่จำเป็นต้องเข้าใจก่อนที่จะพัฒนา EA ให้มีประสิทธิภาพหลังจากนั้นเราจะไปที่ฟังก์ชันในตัวและโครงสร้างข้อมูล รวมถึงเหตุการณ์ที่เฉพาะเจาะจงสำหรับหุ่นยนต์เทรด และแง่มุมสำคัญของการทำงานของ EA ในการทดสอบกลยุทธ์ (Strategy Tester) ซึ่งเป็นเครื่องมือสำคัญในการพัฒนา EA เพราะช่วยให้เราประเมินผลการเงินและปรับกลยุทธ์การเทรดให้ดียิ่งขึ้นนอกจากนี้เรายังจะมาดูการแสดงข้อมูลตลาดในรูปแบบต่างๆ เช่น ความลึกของตลาด (Depth of Market) และอินเตอร์เฟซซอฟต์แวร์ของมันMetaTrader 5 ให้ความสามารถในการวิเคราะห์และเทรดเครื่องมือทางการเงิน (symbols) ซึ่งเป็นฐานของทุกระบบย่อยในเทอร์มินัล ผู้ใช้งานสามารถเลือกสัญลักษณ์จากรายการที่โบรกเกอร์จัดเตรียมไว้และติดตามใน Market Watch ได้ด้วย MQL5 API คุณสามารถดูและวิเคราะห์ลักษณะของสัญลักษณ์ทั้งหมด รวมทั้งเพิ่มหรือลบออกจาก Market Watch ได้อีกด้วย นอกจากนี้ MetaTrader 5 ยังรองรับการสร้างสัญลักษณ์ที่กำหนดเอง โดยการโหลดคุณสมบัติและประวัติการอ้างอิงจากแหล่งข้อมูลต่างๆ หรือคำนวณจากสูตรและโปรแกรม MQL5 ได้อีกด้วย

2023.12.16
สร้างโปรแกรม MQL5 สำหรับเทรดเดอร์: รู้จักกับการเขียนโค้ดใน MetaTrader 5
MetaTrader5
สร้างโปรแกรม MQL5 สำหรับเทรดเดอร์: รู้จักกับการเขียนโค้ดใน MetaTrader 5

ตอนที่ 5: การสร้างโปรแกรมใน MQL5 ใน "ตอนที่ 5: การสร้างโปรแกรม" ของหนังสือ MQL5 Programming for Traders เราจะเจาะลึกเกี่ยวกับ API ที่เกี่ยวข้องกับการเทรดอัตโนมัติ ไม่ว่าจะเป็นการวิเคราะห์ข้อมูลทางการเงิน การแสดงผลกราฟ การทำงานอัตโนมัติ และการโต้ตอบกับผู้ใช้ เราจะเริ่มต้นจากหลักการทั่วไปในการสร้างโปรแกรม MQL และจะพิจารณาประเภทของเหตุการณ์ ฟีเจอร์ และโมเดลในเทอร์มินัล จากนั้นเราจะสำรวจการเข้าถึงข้อมูลเวลา การทำงานกับกราฟและวัตถุกราฟิก รวมถึงหลักการในการสร้างและใช้งานแต่ละประเภทโปรแกรม MQL แยกกัน เทอร์มินัล MetaTrader 5 รองรับโปรแกรมอยู่ 5 ประเภท ได้แก่ ตัวชี้วัดทางเทคนิค, Expert Advisors (EAs) สำหรับการเทรดอัตโนมัติหรือกึ่งอัตโนมัติ, สคริปต์สำหรับทำงานแบบครั้งเดียว, บริการสำหรับการทำงานเบื้องหลัง และไลบรารีสำหรับโมดูลฟังก์ชันเฉพาะ เราจะเจาะลึกถึงการทำงานกับตัวชี้วัดและกราฟ และเรียนรู้เทคนิคที่สามารถนำไปใช้ได้กับ Expert Advisors ด้วย การพัฒนา Expert Advisors จะถูกพูดถึงในตอนถัดไปของหนังสือ ที่เราจะสำรวจการส่งคำสั่งอัตโนมัติ การจัดรูปแบบกลยุทธ์การเทรด รวมถึงการทดสอบและปรับแต่งโดยใช้ข้อมูลในอดีต เราจะเรียนรู้วิธีการใช้ตัวชี้วัดในตัวที่มีอยู่แล้ว และวิธีการสร้างแอปพลิเคชันแบบกำหนดเองจากศูนย์ หรือจากตัวชี้วัดอื่นๆ โปรแกรมที่คอมไพล์แล้วทั้งหมดจะแสดงใน Navigator ใน MetaTrader 5 ยกเว้นไลบรารี EX5 ซึ่งถูกใช้โดยโปรแกรมอื่นแต่ไม่มีการแสดงผลเฉพาะใน Navigator สุดท้ายนี้ เราจะมีความเข้าใจที่ครอบคลุมมากขึ้นเกี่ยวกับความสามารถของภาษา MQL5 และการนำไปใช้ในการเทรดอัตโนมัติ ซึ่งจะช่วยให้เราทำงานกับข้อมูลทางการเงินได้อย่างมีประสิทธิภาพและสร้างตัวชี้วัดการเทรดและ Expert Advisors อย่างมีประสิทธิภาพ

2023.12.16
เขียนโปรแกรม MQL5 สำหรับเทรดเดอร์: API ที่ควรรู้ใน MetaTrader 5
MetaTrader5
เขียนโปรแกรม MQL5 สำหรับเทรดเดอร์: API ที่ควรรู้ใน MetaTrader 5

ส่วนที่ 4: API ส่วนกลางของ MQL5 ในส่วนก่อนหน้านี้ของหนังสือ เราได้สำรวจพื้นฐานของภาษาโปรแกรม MQL5 และศึกษาซินแทกซ์ กฎการใช้งาน และแนวคิดหลักต่างๆ แต่เพื่อที่จะเขียนโปรแกรมจริงที่ใช้การประมวลผลข้อมูลและการเทรดอัตโนมัติ เราจำเป็นต้องใช้ฟังก์ชันในตัวหลายตัวเพื่อเชื่อมต่อกับเทอร์มินัล MetaTrader 5 ใน "ส่วนที่ 4: API ส่วนกลางของ MQL5" เราจะมุ่งเน้นไปที่การทำความเข้าใจฟังก์ชันในตัว (MQL5 API) และจะค่อยๆ ลงลึกในระบบย่อยเฉพาะต่างๆ โปรแกรม MQL5 สามารถใช้เทคโนโลยีและฟังก์ชันการทำงานมากมายได้ ดังนั้นจึงสมเหตุสมผลที่จะเริ่มต้นด้วยฟังก์ชันที่ง่ายและมีประโยชน์ที่สุดที่สามารถใช้ในโปรแกรมส่วนใหญ่ได้ ในหัวข้อหลัก เราจะศึกษาเกี่ยวกับการจัดการอาร์เรย์ การประมวลผลสตริง การโต้ตอบกับไฟล์ การแปลงข้อมูล และฟังก์ชันการโต้ตอบกับผู้ใช้ นอกจากนี้ เรายังจะสำรวจฟังก์ชันทางคณิตศาสตร์และการจัดการสภาพแวดล้อมของโปรแกรม แตกต่างจากภาษาการเขียนโปรแกรมอื่น ๆ การใช้ฟังก์ชันในตัวของ MQL5 API ไม่ต้องการการกำหนดคำสั่งพรีโปรเซสเซอร์เพิ่มเติม ชื่อของฟังก์ชันทั้งหมดใน MQL5 API จะสามารถเข้าถึงได้ในบริบททั่วไป (namespace) และสามารถเข้าถึงได้เสมอโดยไม่ต้องมีเงื่อนไข เรายังจะพูดถึงความเป็นไปได้ในการใช้ชื่อที่คล้ายกันในบริบทของโปรแกรมที่แตกต่างกัน เช่น ชื่อของเมธอดคลาสหรือชื่อ namespace ที่กำหนดเอง ในกรณีเหล่านี้ คุณควรใช้ตัวดำเนินการแก้ไขบริบทเพื่อเรียกใช้ฟังก์ชันทั่วไประหว่างการพูดคุยในส่วนเกี่ยวกับประเภทที่ซ้อนกัน, namespaces และตัวดำเนินการบริบท '::' การเขียนโปรแกรมมักจะต้องใช้การดำเนินการกับประเภทข้อมูลต่างๆ ในส่วนก่อนหน้านี้ เราได้เห็นกลไกสำหรับการแปลงข้อมูลประเภทในตัวแบบชัดเจนและไม่ชัดเจนแล้ว อย่างไรก็ตาม พวกมันอาจไม่เหมาะสมเสมอไปด้วยเหตุผลต่างๆ เพื่อให้สามารถแปลงข้อมูลระหว่างประเภทต่างๆ ได้อย่างละเอียด MQL5 API จึงรวมฟังก์ชันการแปลงประเภทต่างๆ โดยเฉพาะฟังก์ชันสำหรับการแปลงระหว่างสตริงและประเภทอื่นๆ เช่น ตัวเลข วันที่และเวลา สี โครงสร้าง และการอธิบาย

2023.12.15
การเขียนโปรแกรม MQL5 สำหรับเทรดเดอร์: ส่วนที่ 3 - หลักการการเขียนโปรแกรมเชิงวัตถุ
MetaTrader5
การเขียนโปรแกรม MQL5 สำหรับเทรดเดอร์: ส่วนที่ 3 - หลักการการเขียนโปรแกรมเชิงวัตถุ

ส่วนที่ 3: หลักการการเขียนโปรแกรมเชิงวัตถุใน MQL5 "ส่วนที่ 3: หลักการการเขียนโปรแกรมเชิงวัตถุใน MQL5" จะพาคุณไปสำรวจโลกของการเขียนโปรแกรมเชิงวัตถุ (OOP) ในภาษา MQL5 ที่ช่วยให้การพัฒนาซอฟต์แวร์สะดวกขึ้น ความซับซ้อนในการจัดการกับหลายๆ หน่วยงานทำให้ต้องใช้เทคโนโลยีขั้นสูงเพื่อเพิ่มความสะดวกในการเขียนโปรแกรม ความสามารถในการผลิต และคุณภาพของโปรแกรม เทคโนโลยี OOP มีพื้นฐานมาจากแนวคิดของวัตถุ ซึ่งเป็นตัวแปรประเภทที่กำหนดเองโดยโปรแกรมเมอร์ผ่านเครื่องมือ MQL5 การสร้างประเภทที่กำหนดเองนี้ช่วยให้สามารถโมเดลวัตถุและทำให้การเขียนและบำรุงรักษาโปรแกรมทำได้ง่ายขึ้น ในส่วนนี้ เราจะพูดถึงวิธีการต่างๆ ในการกำหนดประเภทใหม่ๆ เช่น คลาส โครงสร้าง และยูเนียน ประเภทที่กำหนดเองเหล่านี้สามารถรวมข้อมูลและอัลกอริธึมเพื่อบรรยายสถานะและพฤติกรรมของวัตถุในแอปพลิเคชัน ผู้เขียนยกตัวอย่างหลักการ "แบ่งแยกและพิชิต" เพื่อแสดงให้เห็นว่าวัตถุแต่ละชิ้นทำหน้าที่เป็นโปรแกรมขนาดเล็กที่รับผิดชอบในการแก้ปัญหาเล็กๆ ที่มีลักษณะสมบูรณ์ คุณสามารถรวมวัตถุเหล่านี้เข้าด้วยกันเพื่อสร้างระบบและผลิตภัณฑ์หรือบริการที่มีความซับซ้อนได้ตามต้องการ เพื่อช่วยผู้ใช้งานในการศึกษาความสามารถของ MQL5 ส่วน "การเขียนโปรแกรมเชิงวัตถุใน MQL5" จะนำเสนอหลักการ OOP พร้อมกับตัวอย่างการนำไปใช้จริง หนังสือเล่มนี้ยังครอบคลุมถึงเทมเพลต อินเตอร์เฟส และเนมสเปซ เพื่อแสดงถึงความยืดหยุ่นและพลังของ OOP ในการพัฒนาโปรแกรม MQL5

2023.12.15
พื้นฐานการเขียนโปรแกรม MQL5 สำหรับเทรดเดอร์: ส่วนที่ 2
MetaTrader5
พื้นฐานการเขียนโปรแกรม MQL5 สำหรับเทรดเดอร์: ส่วนที่ 2

ส่วนที่ 2: พื้นฐานการเขียนโปรแกรม MQL5"ส่วนที่ 2: พื้นฐานการเขียนโปรแกรม MQL5" เป็นการแนะนำแนวคิดหลักของภาษานี้ ซึ่งเหมือนกับภาษาอื่น ๆ MQL5 มีพื้นฐานจากแนวคิดสำคัญหลายประการที่ช่วยสร้างโปรแกรมที่ซับซ้อน ในส่วนนี้ของหนังสือจะเน้นที่ประเภทข้อมูล ตัวระบุ ตัวแปร นิพจน์ และตัวดำเนินการ คุณจะได้เรียนรู้วิธีการรวมคำสั่งต่าง ๆ เพื่อสร้างลอจิกของโปรแกรมหลักการพื้นฐานของการเขียนโปรแกรมเชิงกระบวนการจะช่วยให้ผู้อ่านเรียนรู้การสร้างโปรแกรมที่ปฏิบัติตามลำดับขั้นตอนในการประมวลผลข้อมูล ซึ่งเป็นขั้นตอนสำคัญก่อนที่จะไปสู่แนวคิดที่ทรงพลังของการเขียนโปรแกรมเชิงวัตถุ (OOP) ที่จะถูกกล่าวถึงในส่วนถัดไปของหนังสือตัวระบุมีบทบาทสำคัญในการเขียนโปรแกรม MQL5 เพราะช่วยให้สามารถเข้าถึงองค์ประกอบของโปรแกรมได้โดยใช้ชื่อที่ไม่ซ้ำกัน ตัวระบุประกอบด้วยตัวอักษรละติน ตัวเลข และขีดล่าง ไม่สามารถเริ่มต้นด้วยตัวเลข และต้องไม่ตรงกับคำที่สงวนไว้ใน MQL5 การปฏิบัติตามกฎสำคัญนี้เป็นสิ่งจำเป็นในการคอมไพล์โปรแกรมให้สำเร็จ

2023.12.15
เริ่มต้นกับ MQL5: พัฒนาโปรแกรมสำหรับเทรดเดอร์
MetaTrader5
เริ่มต้นกับ MQL5: พัฒนาโปรแกรมสำหรับเทรดเดอร์

บทที่ 1: แนะนำ MQL5 และสภาพแวดล้อมการพัฒนา ในบทแรกของหนังสือที่ชื่อ "แนะนำ MQL5 และสภาพแวดล้อมการพัฒนา" เราจะพูดถึงพื้นฐานของภาษา MQL5 และสภาพแวดล้อมการพัฒนากันนะครับ หนึ่งในฟีเจอร์ใหม่ที่เพิ่มเข้ามาในภาษา MQL5 เมื่อเทียบกับ MQL4 (ภาษาใน MetaTrader 4) คือการสนับสนุนการเขียนโปรแกรมแบบเชิงวัตถุ (OOP) ซึ่งทำให้มันคล้ายกับ C++ เลยทีเดียว แม้ว่าส่วนหนึ่งของฟังก์ชัน OOP จะถูกย้ายจาก MQL5 ไปยัง MQL4 แล้ว แต่ผู้ใช้ที่ไม่คุ้นเคยกับการเขียนโปรแกรมอาจจะรู้สึกว่า OOP ยากไปหน่อย จุดประสงค์ของหนังสือนี้คือเพื่อทำให้แนวทางนี้เข้าใจง่ายและเข้าถึงได้ หนังสือเล่มนี้เป็นเสริมความรู้ให้กับคู่มือ MQL5 โดยจะพูดถึงทุกแง่มุมของการเขียนโปรแกรม MQL5 และอธิบายทุกขั้นตอนอย่างละเอียด เทรดเดอร์สามารถเลือกใช้ระหว่างการเขียนโปรแกรมแบบเชิงวัตถุและแบบเชิงกระบวนการ หรือจะผสมผสานกันก็ได้ตามสะดวก สำหรับผู้ที่มีประสบการณ์ในการเขียนโปรแกรมอยู่แล้ว สามารถข้ามไปยังเนื้อหาที่ลึกขึ้นได้เลยครับ นักพัฒนา C++ จะเรียนรู้ MQL5 ได้ง่ายกว่า แต่ต้องใส่ใจในความแตกต่างของภาษาเพื่อหลีกเลี่ยงข้อผิดพลาด ด้วย MQL5 คุณสามารถสร้างโปรแกรมประเภทต่างๆ เช่น อินดิเคเตอร์สำหรับการแสดงผลข้อมูลแบบกราฟิก, ระบบเทรดอัตโนมัติ (EA) สำหรับการทำการเทรดอัตโนมัติ, สคริปต์สำหรับการทำงานเพียงครั้งเดียว และบริการสำหรับงานพื้นหลัง ฟีเจอร์ที่โดดเด่นของ MetaTrader 5 คือการจัดการระบบการเทรดทั้งหมดจากเทอร์มินัลลูกค้า ซึ่งโปรแกรม MQL5 จะทำงานอยู่ที่นั่นและส่งคำสั่งการเทรดไปยังเซิร์ฟเวอร์การเทรด โปรแกรม MQL5 จะไม่ได้ถูกติดตั้งบนเซิร์ฟเวอร์ บทที่ 1 จะอธิบายวิธีการแก้ไข, คอมไพล์ และรันโปรแกรม รวมถึงประเภทข้อมูลต่างๆ ตัวแปร, นิพจน์, อาเรย์, การดีบัก และผลลัพธ์

2023.12.15
ซิมูเลเตอร์การเทรด Martingale สำหรับ MetaTrader 5
MetaTrader5
ซิมูเลเตอร์การเทรด Martingale สำหรับ MetaTrader 5

สวัสดีครับเพื่อนเทรดเดอร์ทุกคน! วันนี้เรามาพูดถึงเครื่องมือที่น่าสนใจอย่างซิมูเลเตอร์การเทรด Martingale ที่ผมได้พัฒนาขึ้นมาเพื่อช่วยในการฝึกเทรดแบบ Manual ครับ เจ้า EA ตัวนี้สามารถเปิดหรือปิดฟังก์ชันการใช้ Martingale ได้ตามต้องการเลยนะครับ ซึ่งเหมาะมากสำหรับการฝึกฝนและทดสอบกลยุทธ์ของเรา อย่างไรก็ตาม เจ้านี่จะทำงานได้เฉพาะในโหมด Strategy Tester เท่านั้นนะครับ ดังนั้นเพื่อนๆ ต้องแน่ใจว่าได้เลือกโหมดนี้ก่อนที่จะเริ่มใช้งาน หากใครสนใจลองใช้งานหรือมีคำถามอะไร สามารถคอมเมนต์ไว้ได้เลยนะครับ ยินดีให้คำปรึกษาครับ!

2023.12.09
ใช้โมเดล ONNX เพื่อจำแนกตัวเลขที่เขียนด้วยมือใน MetaTrader 5
MetaTrader5
ใช้โมเดล ONNX เพื่อจำแนกตัวเลขที่เขียนด้วยมือใน MetaTrader 5

EA ที่สามารถจำแนกตัวเลขที่เขียนด้วยมือได้ฐานข้อมูล MNIST ประกอบด้วยภาพจำนวน 60,000 ภาพสำหรับการฝึกอบรมและ 10,000 ภาพสำหรับการทดสอบ ซึ่งภาพเหล่านี้ถูกสร้างขึ้นโดยการ "รีมิกซ์" ชุดข้อมูล NIST ดั้งเดิมที่มีขนาด 20x20 พิกเซล ขาว-ดำ ที่ได้มาจากสำนักงานสำรวจประชากรของสหรัฐฯ และเพิ่มตัวอย่างการทดสอบที่ได้จากนักเรียนมัธยมในอเมริกา ตัวอย่างถูกปรับขนาดให้เป็น 28x28 พิกเซล พร้อมการลดความหยาบของภาพ ซึ่งทำให้เกิดระดับสีเทาโมเดลการจำแนกตัวเลขที่เขียนด้วยมือที่ฝึกอบรมแล้วคือ mnist.onnx ซึ่งสามารถดาวน์โหลดได้จาก Github ที่ Model Zoo (opset 8) สำหรับผู้ที่สนใจสามารถดาวน์โหลดและลองใช้โมเดลอื่น ๆ ยกเว้นโมเดลที่มี opset 1 ซึ่งไม่ถูกสนับสนุนโดย runtime ONNX ล่าสุด อย่างน่าสนใจคือ เวกเตอร์ผลลัพธ์ไม่ได้ถูกประมวลผลด้วยฟังก์ชัน Softmax ตามที่มักจะทำในโมเดลการจำแนกประเภท แต่นี่ไม่ใช่ปัญหาเพราะเราสามารถทำสิ่งนี้ได้เองอย่างง่ายดายint PredictNumber(void)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;static matrixf image(28,28);&nbsp;&nbsp;&nbsp;&nbsp;static vectorf result(10);&nbsp;&nbsp;&nbsp;&nbsp;PrepareMatrix(image);&nbsp;&nbsp;&nbsp;&nbsp;if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("OnnxRun error ",GetLastError());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(-1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;result.Activation(result,AF_SOFTMAX);&nbsp;&nbsp;&nbsp;&nbsp;int predict=int(result.ArgMax());&nbsp;&nbsp;&nbsp;&nbsp;if(result[predict]< 0.8)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print(result);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("value ",predict," predicted with probability ",result[predict]);&nbsp;&nbsp;&nbsp;&nbsp;return(predict);&nbsp;&nbsp;}คุณสามารถวาดตัวเลขในกริดพิเศษโดยใช้เมาส์ โดยกดปุ่มซ้ายของเมาส์ไว้ จากนั้นเพื่อจำแนกตัวเลขที่วาดขึ้น ให้กดปุ่ม CLASSIFY หากความน่าจะเป็นที่ได้จากการจำแนกตัวเลขต่ำกว่า 0.8 เวกเตอร์ผลลัพธ์ที่แสดงความน่าจะเป็นสำหรับแต่ละคลาสจะถูกพิมพ์ลงในบันทึก เช่น ลองจำแนกฟิลด์ข้อมูลที่ว่างเปล่า[0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267]value 5 predicted with probability 0.11471312493085861น่าสนใจว่า ความแม่นยำในการจำแนกหมายเลข 9 (9) จะต่ำกว่าจำนวนอื่น ๆ โดยเฉพาะตัวเลขที่มีแนวเอียงไปทางซ้ายจะถูกจำแนกได้แม่นยำมากกว่า

2023.11.23
กลยุทธ์การเทรด Martin Gale Breakout สำหรับ MT5 - ระบบเทรดที่คุณต้องไม่พลาด
MetaTrader5
กลยุทธ์การเทรด Martin Gale Breakout สำหรับ MT5 - ระบบเทรดที่คุณต้องไม่พลาด

กลยุทธ์ "Martin Gale Breakout" เป็น EA (Expert Advisor) ที่ออกแบบมาเพื่อการเทรดในตลาด Forex โดย EA นี้จะรวมเอาแนวทางการเทรดแบบเบรกเอาท์เข้ากับระบบการจัดการเงินแบบ Martin Gale เพื่อเพิ่มประสิทธิภาพในการเทรดให้สูงสุด พารามิเตอร์การตั้งค่า: TakeProfPoints: สามารถกำหนดระดับ Take Profit ในหน่วยจุดสำหรับการเทรดแต่ละครั้ง BalancePercentageAvailable: กำหนดเปอร์เซ็นต์ของยอดเงินในบัญชีที่ใช้ในการเทรด TP_Percentage_of_Balance: กำหนดเปอร์เซ็นต์ของยอดเงินในบัญชีที่จะใช้เป็น Take Profit สำหรับการเทรดแต่ละครั้ง SL_Percentage_of_Balance: กำหนดเปอร์เซ็นต์ของยอดเงินในบัญชีที่จะใช้เป็น Stop Loss สำหรับการเทรด Start_The_Recovery: พารามิเตอร์นี้มีความสำคัญในการควบคุมเมื่อไหร่และอย่างไรที่จะเริ่มกระบวนการฟื้นฟู TP_Points_Multiplier: ตัวคูณสำหรับจุด Take Profit ที่ช่วยให้กลยุทธ์การทำกำไรมีความยืดหยุ่นมากขึ้น MagicNumber: หมายเลขเฉพาะสำหรับ EA นี้ ทำให้สามารถจัดการการเทรดได้อย่างอิสระ จุดเด่นของกลยุทธ์: การเทรดแบบเบรกเอาท์: EA นี้เชี่ยวชาญในการระบุโอกาสการเบรกเอาท์ในตลาด ซึ่งเป็นช่วงที่ราคาผ่านระดับสำคัญ การปรับขนาดล็อตแบบไดนามิก: ขนาดล็อตจะถูกปรับตามยอดเงินในบัญชีและความเสี่ยงที่คุณเลือก โดยตามหลักการจัดการเงินแบบ Martin Gale การฟื้นฟูการขาดทุน: EA มีกลไกการฟื้นฟูที่ทรงพลัง ซึ่งออกแบบมาเพื่อฟื้นฟูการขาดทุนโดยการปรับพารามิเตอร์การเทรดตามความจำเป็น ฟังก์ชันหลักที่ใช้ใน EA นี้คือ CalcLotWithTP() ซึ่งมีพารามิเตอร์การตั้งค่า 3 ตัว: Takeprofit, Startprice, Endprice มันจะคำนวณปริมาณที่จำเป็นสำหรับการเทรดเพื่อให้บรรลุเป้าหมายกำไรเมื่อเข้าเทรดที่ Startprice และออกที่ Endprice ทุกอย่างในโค้ดจะมีคอมเมนต์ เพื่อช่วยให้เข้าใจได้ง่ายขึ้น

2023.09.26
การกำหนดนโยบายการเติมสัญลักษณ์ใน MetaTrader 5 สำหรับเทรดเดอร์
MetaTrader5
การกำหนดนโยบายการเติมสัญลักษณ์ใน MetaTrader 5 สำหรับเทรดเดอร์

การกรอกข้อมูลสัญลักษณ์ (symbol): ฟังก์ชันนี้ใช้สำหรับกำหนดสัญลักษณ์ของเครื่องมือทางการเงินที่ต้องการทราบนโยบายการเติมข้อมูล ขั้นตอนการทำงานของฟังก์ชัน การดึงประเภทนโยบายการเติม (filling): ฟังก์ชันนี้ใช้ SymbolInfoInteger เพื่อนำข้อมูลเกี่ยวกับนโยบายการเติมสำหรับสัญลักษณ์ที่ให้มา ข้อมูลนี้จะถูกเก็บไว้ในตัวแปรชื่อ filling เป็นค่าเชิงตัวเลข การเปรียบเทียบระหว่างนโยบายการเติม: ถัดมา ค่าตัวเลข (filling) จะถูกเปรียบเทียบกับค่าคงที่ที่กำหนดไว้ ซึ่งแทนถึงนโยบายการเติมที่แตกต่างกัน เช่น “Fill or Kill” (SYMBOL_FILLING_FOK), “Immediate or Cancel” (SYMBOL_FILLING_IOC), และ “Return” (SYMBOL_FILLING_RETURN) การส่งกลับประเภทนโยบายการเติม: ฟังก์ชันจะกำหนดประเภทนโยบายการเติมตามการเปรียบเทียบ หากตรงกับ “Fill or Kill” จะส่งกลับ ORDER_FILLING_FOK หากตรงกับ “Immediate or Cancel” จะส่งกลับ ORDER_FILLING_IOC หากไม่ตรงกับทั้งสอง จะส่งกลับ ORDER_FILLING_RETURN สรุปได้ว่า ฟังก์ชันนี้ช่วยให้คุณดึงข้อมูลและส่งกลับนโยบายการเติมของสัญลักษณ์ใน MetaTrader 5 ซึ่งมีประโยชน์ในการตัดสินใจการเทรดตามนโยบายการเติมของเครื่องมือทางการเงินเฉพาะ

2023.09.26
ระบบการเทรดด้วย RSI และ Martingale สำหรับ MetaTrader 5
MetaTrader5
ระบบการเทรดด้วย RSI และ Martingale สำหรับ MetaTrader 5

ระบบนี้ใช้ตัวชี้วัด RSI เพื่อค้นหาจุดต่ำสุดและสูงสุดอย่างปรับตัว เพื่อกำหนดจุดเข้าและออกที่เหมาะสมในตลาด โดยระบบจะวิเคราะห์แท่งเทียนในช่วงเวลาที่กำหนดเพื่อประเมินสภาวะตลาดในปัจจุบัน กลยุทธ์การเข้าและออก การเข้า: ระบบจะเปิดสถานะตามสัญญาณจากตัวชี้วัด RSI - ซื้อ: หาก RSI ตกลงมาที่จุดต่ำสุดในช่วงแท่งเทียนที่กำหนด - ขาย: หาก RSI ขึ้นไปถึงจุดสูงสุดในช่วงแท่งเทียนที่กำหนด การออก: ระบบจะปิดสถานะเมื่อถึงระดับ TakeProfit หรือ StopLoss ที่ตั้งไว้ในจุดโดยใช้พารามิเตอร์ `TakeProfit` และ `StopLoss` การกรองสัญญาณ เวลา: ระบบจะทำการเทรดเฉพาะในช่วงเวลาที่กำหนดระหว่าง `StartTime` และ `EndTime` หลีกเลี่ยงข่าว: ระบบจะหลีกเลี่ยงการเทรดในช่วงเวลาที่กำหนดในพารามิเตอร์ `NewsTimeToAvoid` สเปรด: ค่าสเปรดสูงสุดที่อนุญาตจะถูกตั้งค่าโดยใช้พารามิเตอร์ `MaxSpread` การตั้งค่าเพิ่มเติม Martingale: ระบบสามารถใช้กลยุทธ์ Martingale เพื่อเพิ่มขนาดล็อตในช่วงที่ตลาดกลับตัว ฟีเจอร์นี้จะถูกเปิดใช้งานโดยพารามิเตอร์ `Upheaval` และ `MartingaleMultiplier`

2023.09.12
แนวคิดใหม่: Trailing Take Profit สำหรับ MetaTrader 5
MetaTrader5
แนวคิดใหม่: Trailing Take Profit สำหรับ MetaTrader 5

สวัสดีครับเพื่อนเทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึงแนวคิดใหม่ที่เรียกว่า Trailing Take Profit ซึ่งมีความแตกต่างจาก Trailing Stop ที่เราคุ้นเคยกันดีครับหลายคนอาจจะรู้จัก Trailing Stop ที่ใช้เพื่อป้องกันการขาดทุน แต่ Trailing Take Profit จะทำงานในสถานการณ์ที่ทำให้เราอยู่ในสถานะขาดทุน และจะปิดการเทรดเมื่อถึงระดับที่ตั้งไว้ครับยกตัวอย่างเช่น ถ้าหากเรามีตำแหน่งที่ขาดทุน และราคาในปัจจุบันไปถึง TrailingTPStart (เช่น 500 จุด) โดยราคาตลาดสูงขึ้น 500 จุดจากราคาที่เปิด และตำแหน่งของเราขาดทุนอยู่ -500 จุด ระบบจะเริ่มทำงานเพื่อทำกำไรเมื่อราคาสูงขึ้นแนวคิดนี้อาจจะช่วยให้ลดการขาดทุนในบางจุดได้ แต่อาจจะต้องใช้กับ EA ที่ไม่มีการตั้ง Stop Loss เพื่อให้มีประสิทธิภาพมากขึ้นครับวิธีการใช้งาน Trailing Take Profit EA ก็ง่ายมากครับ เพียงทำตามขั้นตอนด้านล่างนี้:รัน TrailingTakeProfit EA.ถ้า TrailingTP_Mode เป็น true, EA จะทำงาน.ใส่ชื่อสัญลักษณ์ เช่น GBPUSD ใน EA.ตั้งค่า TrailingTPStart ซึ่งเป็นจุดที่ราคาปัจจุบันจะเริ่มทำงานเพื่อปิดกำไรเมื่อมีตำแหน่งขาดทุน.ตั้งค่า TrailingTPDistance ซึ่งเป็นระยะทางสูงสุดในจุดระหว่างการปิดกำไรและราคาปัจจุบัน.ลองเอาไปใช้กันดูนะครับ ถ้ามีคำถามหรือข้อสงสัย สามารถคอมเมนต์ไว้ด้านล่างได้เลย!

2023.07.11
รีวิว AK-47 Scalper EA: ระบบเทรดที่ควรมีใน MetaTrader 5
MetaTrader5
รีวิว AK-47 Scalper EA: ระบบเทรดที่ควรมีใน MetaTrader 5

สวัสดีครับเพื่อนนักเทรดทุกท่าน! วันนี้เราจะมาพูดถึง AK-47 Scalper EA กัน ซึ่งเป็น ระบบเทรด ที่ออกแบบมาเพื่อใช้งานกับ MetaTrader 5 โดยเฉพาะ 1. พารามิเตอร์การตั้งค่า #define ExtBotName "AK-47 EA" // ชื่อบอท #define Version "1.00" // เวอร์ชัน // นำเข้าคลาสที่จำเป็น #include &lt;Trade\PositionInfo.mqh&gt; #include &lt;Trade\Trade.mqh&gt; #include &lt;Trade\SymbolInfo.mqh&gt; #include &lt;Trade\AccountInfo.mqh&gt; #include &lt;Trade\OrderInfo.mqh&gt; //--- ประกาศตัวแปรที่ใช้ในโค้ด #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID) //--- พารามิเตอร์การตั้งค่า input string EASettings = "---------------------------------------------"; //-------- &lt;EA Settings&gt; -------- input int InpMagicNumber = 124656; // หมายเลขเวทมนตร์ input string MoneySettings = "---------------------------------------------"; //-------- &lt;Money Settings&gt; -------- input bool isVolume_Percent = true; // อนุญาตให้ใช้เปอร์เซ็นต์ของวอลลุ่ม input double InpRisk = 3; // เปอร์เซ็นต์ความเสี่ยงของยอดคงเหลือ (%) input string TradingSettings = "---------------------------------------------"; //-------- &lt;Trading Settings&gt; -------- input double Inpuser_lot = 0.01; // ขนาดล็อต input double InpSL_Pips = 3.5; // Stoploss (ใน Pips) input double InpTP_Pips = 7; // TP (ใน Pips) (0 = ไม่มี TP) input int InpMax_slippage = 3; // ความล่าช้าสูงสุดที่อนุญาต (ใน Pips) input double InpMax_spread = 5; // สเปรดสูงสุดที่อนุญาต (ใน Points) (0 = ลอยตัว) input string TimeSettings = "---------------------------------------------"; //-------- &lt;Trading Time Settings&gt; -------- input bool InpTimeFilter = true; // การกรองเวลาในการเทรด input int InpStartHour = 2; // ชั่วโมงเริ่มต้น input int InpStartMinute = 30; // นาทีเริ่มต้น input int InpEndHour = 21; // ชั่วโมงสิ้นสุด input int InpEndMinute = 0; // นาทีสิ้นสุด 2. การเริ่มต้นตัวแปรในท้องถิ่น //--- ตัวแปร int Pips2Points; // slippage 3 pips = 3 points double Pips2Double; // Stoploss 15 pips = 0.015 bool isOrder = false; int slippage; long acSpread; string strComment = ""; CPositionInfo m_position; // อ็อบเจ็กต์การเทรด CTrade m_trade; // อ็อบเจ็กต์การเทรด CSymbolInfo m_symbol; // อ็อบเจ็กต์ข้อมูลสัญลักษณ์ CAccountInfo m_account; // ห่อข้อมูลบัญชี COrderInfo m_order; // อ็อบเจ็กต์คำสั่งค้างรอ 3. โค้ดหลัก a/ ฟังก์ชันเริ่มต้นของ EA int OnInit() { //ตรวจจับจำนวนหลักการของจุด if(_Digits % 2 == 1) { Pips2Double = _Point * 10; Pips2Points = 10; slippage = 10 * InpMax_slippage; } else { Pips2Double = _Point; Pips2Points = 1; slippage = InpMax_slippage; } if(!m_symbol.Name(Symbol())) // ตั้งชื่อสัญลักษณ์ return(INIT_FAILED); RefreshRates(); m_trade.SetExpertMagicNumber(InpMagicNumber); m_trade.SetMarginMode(); m_trade.SetTypeFillingBySymbol(m_symbol.Name()); m_trade.SetDeviationInPoints(slippage); return(INIT_SUCCEEDED); } b/ ฟังก์ชัน OnTick ของ EA void OnTick() { if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false) { Comment("LazyBot\nTrade not allowed."); return; } MqlDateTime structTime; TimeCurrent(structTime); structTime.sec = 0; // ตั้งเวลาที่จะเริ่ม structTime.hour = InpStartHour; structTime.min = InpStartMinute; datetime timeStart = StructToTime(structTime); // ตั้งเวลาที่จะสิ้นสุด structTime.hour = InpEndHour; structTime.min = InpEndMinute; datetime timeEnd = StructToTime(structTime); acSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD); strComment = "\n" + ExtBotName + " - v." + (string)Version; strComment += "\nSever time = " + TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS) + " - " + DayOfWeekDescription(structTime.day_of_week); strComment += "\nTrading time = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --&gt; " + (string)InpEndHour + "h" + (string)InpEndMinute + "]"; strComment += "\nCurrent Spread = " + (string)acSpread + " Points"; Comment(strComment); // อัปเดตค่า UpdateOrders(); TrailingStop(); // เงื่อนไขการเทรดตามช่วงเวลา if(InpTimeFilter) { if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd) { if(!isOrder) OpenOrder(); } } else { if(!isOrder) OpenOrder(); } } 3.1 คำนวณสัญญาณเพื่อส่งคำสั่ง void OpenOrder() { ENUM_ORDER_TYPE OrdType = ORDER_TYPE_SELL; // ประเภทคำสั่ง double TP = 0; double SL = 0; string comment = ExtBotName; // คำนวณขนาดล็อต double lot1 = CalculateVolume(); if(OrdType == ORDER_TYPE_SELL) { double OpenPrice = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits); TP = OpenPrice - NormalizeDouble(InpTP_Pips * Pips2Double, _Digits); SL = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits); if(CheckSpreadAllow() && CheckVolumeValue(lot1) && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_SELL_STOP, OpenPrice) && CheckStopLoss(OpenPrice, SL, TP) && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_SELL)) { if(!m_trade.SellStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment)) Print(__FUNCTION__, "--> OrderSend error ", m_trade.ResultComment()); } } } สรุป AK-47 Scalper EA เป็นเครื่องมือที่ช่วยให้การเทรดของคุณมีประสิทธิภาพมากขึ้น โดยเฉพาะกับการตั้งค่าที่สามารถปรับแต่งได้ตามความต้องการของคุณเอง หากคุณเป็นนักเทรดที่ชอบการเทรดในช่วงเวลาสั้น ๆ บอทนี้อาจจะเป็นตัวช่วยที่ดีในการทำกำไรให้กับคุณได้!

2023.06.12
การปิดตำแหน่งที่ใช้ตราสารทุน - ระบบสำหรับ MetaTrader 5
MetaTrader5
การปิดตำแหน่งที่ใช้ตราสารทุน - ระบบสำหรับ MetaTrader 5

การปิดตำแหน่งที่ใช้ตราสารทุน ในโลกของการเทรด การปิดตำแหน่งถือเป็นหนึ่งในขั้นตอนที่สำคัญที่สุด โดยเฉพาะเมื่อเราพูดถึงการใช้ MetaTrader 5 ซึ่งเป็นแพลตฟอร์มยอดนิยมในหมู่นักเทรดในประเทศไทย การปิดตำแหน่งที่ใช้ตราสารทุนไม่เพียงแต่ช่วยให้เราจัดการความเสี่ยงได้ดีขึ้น แต่ยังเป็นโอกาสที่ดีในการทำกำไรเมื่อเราทำการวิเคราะห์ตลาดอย่างรอบคอบ วิธีการปิดตำแหน่งใน MetaTrader 5 เลือกตำแหน่งที่ต้องการปิดในหน้าต่าง "Trade" ของคุณ คลิกขวาที่ตำแหน่งนั้นและเลือก "Close Order" หรือใช้ปุ่มปิดที่ปรับได้ในส่วนของการดูข้อมูลการเทรด ตรวจสอบราคาที่ต้องการปิดและคลิก "OK" เพื่อยืนยันการปิดตำแหน่ง การมีระบบที่ดีในการปิดตำแหน่งจะช่วยให้คุณสามารถจัดการเงินทุนได้อย่างมีประสิทธิภาพและลดโอกาสในการขาดทุนในตลาดที่มีความผันผวน อย่าลืมว่าการเรียนรู้จากประสบการณ์ที่ผ่านมาจะทำให้คุณเป็นนักเทรดที่เก่งขึ้นในอนาคต!

2023.05.27
การจัดการเงินด้วย Martingale Levels สำหรับเทรด MetaTrader 5
MetaTrader5
การจัดการเงินด้วย Martingale Levels สำหรับเทรด MetaTrader 5

สวัสดีครับเพื่อนๆ นักเทรดทุกคน! วันนี้เราจะมาพูดถึง Martingale EA ซึ่งเป็นอัลกอริธึมที่ช่วยในการจัดการเงินสำหรับการเปิดและปิดตำแหน่งในตลาด โดยจะใช้ระบบ Martingale ร่วมกับ “ตัวคูณ” ที่เราจะต้องรู้จักกันให้ดี ก่อนที่เราจะเริ่มเทรด เรามีเคล็ดลับดีๆ ที่จะช่วยให้การใช้งาน Martingale EA ของเราประสบความสำเร็จมากยิ่งขึ้น: เปิดใช้งาน EA ก่อนที่จะทำการเปิดตำแหน่งใดๆ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ใช้ “MartingaleEA-5Levels” บนกราฟใดก็ได้ ต้องตั้งค่า “Martingale Mode” ให้เป็น true ใส่ชื่อของสัญลักษณ์ที่เราต้องการเทรด เช่น EURUSD หรือ GBPUSD เลือกตัวคูณ Martingale และใส่ใน “Martingale Volume Multiplier” เพื่อคูณจำนวนกับปริมาณก่อนหน้า เช่น ถ้าเรากำหนดเป็น 2 ในช่องนี้ ตำแหน่งแรกจะมีปริมาณ 1 lot และตำแหน่งถัดไปจะเปิดที่ 2 lots และตำแหน่งที่สามจะเปิดที่ 4 lots EA นี้สามารถเปิดตำแหน่ง Martingale ได้สูงสุด 5 ตำแหน่ง ดังนั้นให้ใส่ตัวเลขระหว่าง 1 ถึง 5 ในช่อง “Number Of Martingale Trading” ในช่องระยะห่าง (distance 1 ถึง distance 5) ควรใส่ pips หรือ points ซึ่งจะใช้ระยะห่างระหว่างตำแหน่งที่เปิด ในช่อง “Close all positions when total take profit is” ให้ใส่ตัวเลข เช่น 100 เมื่อการทำกำไรทั้งหมดถึง $100 ตำแหน่งทั้งหมดจะถูกปิด ในช่อง “Close all positions when total stop loss is” ให้ใส่ตัวเลข เช่น -500 เมื่อการขาดทุนทั้งหมดถึง -$500 ตำแหน่งทั้งหมดจะถูกปิด หวังว่าข้อมูลนี้จะเป็นประโยชน์สำหรับเพื่อนๆ นักเทรดทุกคนในการจัดการเงินและใช้ Martingale EA ให้เกิดประโยชน์สูงสุดนะครับ!

2023.05.24
การจัดการ Stop Loss และเป้าหมายกำไรแบบไดนามิกสำหรับ MetaTrader 5
MetaTrader5
การจัดการ Stop Loss และเป้าหมายกำไรแบบไดนามิกสำหรับ MetaTrader 5

การจัดการความเสี่ยงเป็นเรื่องสำคัญสำหรับเทรดเดอร์ทุกคน และในบทความนี้เราจะมาพูดถึงกลยุทธ์การจัดการที่เรียกว่า Dynamic Trailing Stop Loss ซึ่งเหมาะสำหรับ Expert Advisor (EA) บนแพลตฟอร์ม MetaTrader 5 ครับ กลยุทธ์นี้มุ่งเน้นไปที่การปิดคำสั่งเมื่อถึงจุดกำไรหรือขาดทุน และใช้ trailing stop loss เพื่อล็อคกำไรเมื่อการซื้อขายเป็นไปในทิศทางที่เราต้องการ การอธิบายโค้ดเบื้องต้น รวมไฟล์หัวข้อที่จำเป็นสำหรับคลาสข้อมูลการซื้อขายและสัญลักษณ์ กำหนดพารามิเตอร์นำเข้าสำหรับเปอร์เซ็นต์ความเสี่ยง เปอร์เซ็นต์กำไร และจุด stop loss แบบ trailing ประกาศตัวแปรทั่วไประดับโลกสำหรับวัตถุข้อมูลการซื้อขายและสัญลักษณ์ ฟังก์ชัน OnInit จะทำการตั้งค่าข้อมูลสัญลักษณ์และตรวจสอบข้อผิดพลาด ฟังก์ชัน OnDeinit จะไม่ทำอะไรในกรณีนี้ ฟังก์ชัน OnTick จะถูกเรียกทุกครั้งที่มี tick ใหม่เข้ามา และจะเรียกฟังก์ชัน CheckTrades ฟังก์ชัน CheckTrades จะวนรอบตรวจสอบตำแหน่งที่เปิดอยู่ทั้งหมด และตรวจสอบว่าตำแหน่งนั้นเป็นของสัญลักษณ์ปัจจุบันหรือไม่ หากใช่ จะคำนวณกำไรปัจจุบันและตรวจสอบว่าถึงจุดกำไรหรือขาดทุนหรือยัง หากถึงแล้วจะปิดตำแหน่ง หากยังไม่ถึงจุดใดจุดหนึ่ง จะตรวจสอบว่าประเภทของคำสั่งเป็น buy หรือ sell และอัปเดตระดับ stop loss ด้วย trailing stop loss หากระดับ stop loss ใหม่ดีกว่าระดับเดิม ตำแหน่งจะถูกปรับเปลี่ยนด้วยระดับ stop loss ใหม่ โค้ดนี้ให้กลยุทธ์การจัดการความเสี่ยงที่ง่ายในการจัดการคำสั่งที่เปิดอยู่ โดยการปรับระดับ stop loss แบบไดนามิกตาม trailing stop loss และปิดคำสั่งเมื่อถึงจุดกำไรหรือขาดทุน

2023.04.28
EA สำหรับการเปิดออร์เดอร์ซื้อและขายหลายรายการใน MetaTrader 5
MetaTrader5
EA สำหรับการเปิดออร์เดอร์ซื้อและขายหลายรายการใน MetaTrader 5

สวัสดีครับเพื่อนนักเทรดทุกคน! วันนี้เรามาพูดถึง Expert Advisor (EA) ตัวหนึ่งที่ออกแบบมาสำหรับ MetaTrader 5 (MT5) ซึ่งช่วยให้เราสามารถเปิดออร์เดอร์ซื้อและขายได้หลายรายการตามที่เราต้องการ EA ตัวนี้มีตัวแปรการตั้งค่าที่เราสามารถปรับได้ เช่น จำนวนออร์เดอร์ซื้อและขาย เปอร์เซ็นต์ความเสี่ยงต่อการเทรด การตั้งค่า Stop Loss และ Take Profit รวมถึงการตั้งค่าความล่าช้า (Slippage) ด้วย นอกจากนี้ยังมีอินเตอร์เฟซที่ใช้งานง่าย มีปุ่ม Buy และ Sell ที่เราสามารถกดเพื่อเปิดออร์เดอร์ได้ทันที EA จะคำนวณขนาดล็อตที่เหมาะสมตามเปอร์เซ็นต์ความเสี่ยงและ Stop Loss ที่เรากำหนดไว้ นอกจากนี้ยังมีการตรวจสอบสเปรดกับค่าความล่าช้าที่กำหนดก่อนที่จะเปิดออร์เดอร์อีกด้วย โดยจะเปิดออร์เดอร์ซื้อเมื่อราคากลางสูงกว่าราคาขอ (Ask Price) และเปิดออร์เดอร์ขายเมื่อราคากลางต่ำกว่าราคาขาย (Bid Price) เมื่อเรากดปุ่ม Buy หรือ Sell EA จะเปิดออร์เดอร์ตามจำนวนที่เราตั้งไว้ โดยใช้ขนาดล็อตที่คำนวณได้ พร้อมด้วย Stop Loss และ Take Profit ที่เรากำหนด อย่างไรก็ตาม ต้องขอแจ้งว่า EA ตัวนี้เป็นตัวอย่างที่ง่าย และอาจจะไม่เหมาะสำหรับการเทรดจริงโดยไม่มีการปรับแต่งและเพิ่มประสิทธิภาพเพิ่มเติม ดังนั้นจึงควรทดสอบอัลกอริธึมการเทรดในสภาพแวดล้อมที่ปลอดภัย เช่น บัญชีทดลอง ก่อนที่จะนำมาใช้กับเงินทุนจริง

2023.04.27
CheckTrades: เครื่องมือจัดการความเสี่ยงสำหรับ MetaTrader 5
MetaTrader5
CheckTrades: เครื่องมือจัดการความเสี่ยงสำหรับ MetaTrader 5

สวัสดีครับเพื่อนนักเทรดทุกคน! วันนี้เรามีเครื่องมือดีๆ ที่จะช่วยให้การจัดการความเสี่ยงของเราในตลาด Forex เป็นเรื่องง่ายขึ้น นั่นคือ CheckTrades ซึ่งเป็น Expert Advisor (EA) ที่พัฒนาขึ้นมาเพื่อปิดตำแหน่งที่เปิดอยู่เมื่อทำกำไรหรือขาดทุนถึงระดับที่กำหนดโดยผู้ใช้ ใน EA นี้จะไม่มีสัญญาณการเข้าเทรดหรือกฎการจับจังหวะตลาด เพราะจุดประสงค์หลักคือการบริหารความเสี่ยงจากตำแหน่งที่เปิดอยู่ โดยการปิดตำแหน่งเมื่อถึงจุดที่ตั้งไว้ ตัวแปรภายนอกที่ใช้ในโค้ด: RiskPercentage: ตัวแปรนี้แสดงถึงขนาดการขาดทุนสูงสุดที่อนุญาตต่อการเทรดในรูปแบบเปอร์เซ็นต์ของยอดเงินในบัญชี เมื่อการขาดทุนของตำแหน่งที่เปิดอยู่ถึงเปอร์เซ็นต์นี้ ตำแหน่งนั้นจะถูกปิดเพื่อจำกัดความเสี่ยง ProfitPercentage: ตัวแปรนี้แสดงถึงกำไรที่ต้องการต่อการเทรดในรูปแบบเปอร์เซ็นต์ของยอดเงินในบัญชี เมื่อกำไรของตำแหน่งที่เปิดอยู่ถึงเปอร์เซ็นต์นี้ ตำแหน่งนั้นจะถูกปิดเพื่อรักษากำไร เนื่องจาก EA นี้เน้นไปที่การจัดการความเสี่ยงและไม่ขึ้นอยู่กับตัวบ่งชี้ตลาดใดๆ จึงสามารถนำไปใช้กับสัญลักษณ์หรือกรอบเวลาอะไรก็ได้ แต่ต้องย้ำว่า EA นี้ควรใช้ร่วมกับกลยุทธ์การเทรดที่มีสัญญาณการเข้าและกฎการจัดการการเทรด เพื่อให้เป็นระบบการเทรดที่ครบถ้วน หากคุณต้องการใช้โค้ดนี้เป็นไฟล์ที่รวม (โดยการวางไว้ในโฟลเดอร์ MQL5\Include) จุดประสงค์หลักจะเป็นการบริหารความเสี่ยงโดยการปิดตำแหน่งตามเกณฑ์กำไรและขาดทุนที่ผู้ใช้กำหนด คุณสามารถรวมไฟล์นี้กับไฟล์รวมอื่นๆ ที่มีวัตถุประสงค์เฉพาะ เช่น การคำนวณขนาดตำแหน่งตามความเสี่ยงของบัญชี, การตั้งค่า Trailing Stop-Loss และอื่นๆ โดยการใช้คำสั่ง #include ในไฟล์ EA หลักของคุณ เพื่อรวมไฟล์นี้และเรียกใช้ฟังก์ชัน CheckTrades() เมื่อต้องการจัดการตำแหน่งที่เปิดอยู่

2023.04.25
สร้างปุ่มบนกราฟใน MT5 ด้วย ChartButton Class
MetaTrader5
สร้างปุ่มบนกราฟใน MT5 ด้วย ChartButton Class

สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึง ChartButton Class สำหรับ MetaTrader 5 ที่จะช่วยให้เราสามารถสร้างปุ่มบนกราฟได้เหมือนกับว่ามันเป็นวัตถุในกราฟ (มีพิกัดเวลาและราคา) ซึ่งปุ่มเหล่านี้สามารถลากไปที่ไหนก็ได้บนกราฟ และเมื่อเราสกอลล์กราฟ ปุ่มก็ยังคงอยู่ในตำแหน่งที่เราต้องการ หากคุณสนใจที่จะเรียนรู้เกี่ยวกับ Object Oriented Programming หรืออยากเข้าใจว่า chart events ทำงานอย่างไร หรือแม้กระทั่งการสร้าง Graphical Interfaces คุณจะได้เรียนรู้มากมายจากสิ่งนี้ครับ แนวคิดหลักของมันคือ มันจะตอบสนองต่อการเปลี่ยนแปลงของกราฟและการเคลื่อนไหวของเมาส์ ถ้าเมาส์ตรงตามเงื่อนไขที่กำหนด ปุ่มจะถูกเลือกและสามารถลากได้ ผมจะติดตามการลากด้วย custom chart event: EVENT_DRAG ฟังก์ชัน onChartEvent ของปุ่มจะถูกเรียกใช้ตลอดในฟังก์ชัน OnChartEvent ที่มีอยู่แล้ว และข้อมูลจะถูกส่งต่อไปยังฟังก์ชันการจัดการต่างๆ สำหรับเพื่อนๆ ที่สนใจ สามารถดู วิดีโอสอน ที่ทำไว้เกี่ยวกับแนวคิดนี้ได้ที่นี่ครับ:

2023.04.24
แรก ก่อนหน้า 1 2 3 4 5 6 7 8 9 10 11 ถัดไป สุดท้าย