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

การตั้งค่าขนาดล็อตและจำนวนคำสั่งสำหรับกลยุทธ์กริดและมาร์ติงเกลใน MetaTrader 4
MetaTrader4
การตั้งค่าขนาดล็อตและจำนวนคำสั่งสำหรับกลยุทธ์กริดและมาร์ติงเกลใน MetaTrader 4

การตั้งค่าขนาดล็อตและจำนวนการเทรดสำหรับกลยุทธ์เช่นกริดและมาร์ติงเกลนั้นสำคัญมากครับ เรามักจะถามเกี่ยวกับสิ่งที่เกิดขึ้นในประวัติของสัญลักษณ์ในช่วงโซนราคา และ ราคากระเด้งกี่ครั้ง ระหว่างสองราคาของช่วงโซน!? นี่คือสิ่งที่ผมเรียกว่า "Bounce Number" ซึ่งสามารถคำนวณได้จากการวิเคราะห์สถิติของประวัติสัญลักษณ์ใด ๆ จากตลาด เพื่อให้ชัดเจนมากขึ้น มาดูภาพที่ 1 กันครับ ภาพที่ 1: คำนิยามของ Bounce Number, เป้าหมายและการใช้งาน ภาพแสดงให้เห็นว่าการเคลื่อนไหวของราคาสร้างสถิติของเครื่องมือ Bounce Number อย่างไร นอกจากนี้เพื่อให้เครื่องมือทำงานได้อย่างราบรื่น ผมได้สร้างเป็น Expert Advisor (EA) โดยใช้ฟังก์ชัน Sleep ซึ่งช่วยป้องกันการล่มของกราฟเนื่องจากจำนวนเทียนที่สูงในข้อมูลนำเข้าของเครื่องมือ อีกภาพหนึ่ง (ภาพที่ 2) แสดงโครงสร้างกราฟิกของเครื่องมือและความหมายของวัตถุในนั้น ภาพที่ 2: สถิติ Bounce Number การใช้งานเครื่องมือ: จากภาพที่ 2 หากเราตั้งค่า ความสูงครึ่งช่องกระเด้ง ไว้ที่ 600 จุด: จะมี Bounce Number จำนวน 6 ตั้งแต่ 1 ถึง 6 สำหรับสัญลักษณ์นี้Bounce Number 2 หมายถึงราคาเริ่มจากกลางช่องกระเด้ง (ความสูง 2 * 600 = 1200 จุด) และเคลื่อนไหวขึ้นลงโดยกระทบเส้นสีแดง 1 ครั้งและเส้นสีน้ำเงิน 1 ครั้งก่อนที่จะถึง TP = 1200 จุดสำหรับ Bounce Number 5 หมายถึงราคาเริ่มจากจุดกลางช่องและกระทบเส้นสีแดง 2 ครั้งและเส้นสีน้ำเงิน 3 ครั้ง หรือ 3 ครั้งสีแดงและ 2 ครั้งสีน้ำเงิน แล้วจึงถึง TP = 1200 จุด เราจะไม่มี Bounce Number 7 ซึ่งหมายความว่าไม่มีการกระเด้ง 7 ครั้งระหว่างเส้นสีแดงและสีน้ำเงิน (ด้วยระยะห่าง 1200 จุด) ในประวัติทั้งหมดที่เลือกในข้อมูลนำเข้าของเครื่องมือ หากเลือกข้อมูลประวัติที่มากขึ้น (จำนวนเทียนที่มองย้อนกลับสูงสุด) โอกาสที่จะพบ 7 Bounce จะเพิ่มขึ้น แต่จากที่เห็น โอกาสที่จะได้ 6 Bounce คือ 22 จาก 9020 รายการในราคาที่ถึง TP สิ่งที่อยู่ในข้อมูลนำเข้าของเครื่องมือ: – จำนวนเทียนที่มองย้อนกลับสูงสุด: เช่นเดียวกับเครื่องมือการสแกนอื่น ๆ ให้ระวังจำนวนที่ตั้งค่าสำหรับช่องนี้ อย่าเพิ่มมันอย่างมากเพื่อหลีกเลี่ยงการล่มในหน่วยความจำ– Time-Frame: Time-Frame ของเทียนที่เราต้องการใช้ในการหาการกระเด้งจากขอบของช่องและการสัมผัสของเส้น TP ใช้ Time-Frame ที่ต่ำกว่าสำหรับช่องที่แคบ หากไม่แน่ใจว่าควรตั้งค่าอะไร แนะนำให้ใช้ Time-Frame M1– ความสูงครึ่งช่องกระเด้ง: ระยะห่างของเส้นสีเขียวจากเส้นสีแดงและสีน้ำเงิน เป็นจุด– สีพื้นหลังกราฟ– สีของกราฟแท่ง 1/กราฟแท่ง 2: เพื่อทำให้กราฟสถิติสวยงามขึ้น– สีของเซลล์นับ– สีของเซลล์หมายเลขกระเด้ง– สีของแถบโหลด: ขณะคำนวณ แถบโหลดนี้จะช่วยให้ผู้ใช้ทราบว่าเครื่องมือทำงานอยู่หรือไม่ และความเร็วในการคำนวณเป็นอย่างไร – ปุ่มที่เพิ่มขึ้นเพื่อเริ่มต้นและป้อนจำนวนเทียนประวัติจากหน้าจอ

2024.01.12
SymbolSyncEA - ระบบเทรดที่ช่วยซิงค์สัญลักษณ์ใน MetaTrader 5
MetaTrader5
SymbolSyncEA - ระบบเทรดที่ช่วยซิงค์สัญลักษณ์ใน MetaTrader 5

หากคุณเป็นเทรดเดอร์ที่ใช้ MetaTrader 5 อยู่แล้วล่ะก็ คุณอาจจะเคยเจอกับปัญหาการซิงค์สัญลักษณ์ต่าง ๆ ในกราฟ ซึ่งอาจทำให้การวิเคราะห์หรือการเทรดของคุณไม่ต่อเนื่องและไม่สะดวกเท่าที่ควร วันนี้เราขอแนะนำ SymbolSyncEA ที่จะช่วยให้คุณซิงค์ทุกสัญลักษณ์ในกราฟไปยังสัญลักษณ์ของกราฟที่ EA นี้ติดตั้งอยู่ ไม่ว่าจะมีการเปลี่ยนแปลงสัญลักษณ์ใด ๆ EA จะทำงานโดยอัตโนมัติ ช่วยให้คุณไม่พลาดข้อมูลสำคัญและสามารถตัดสินใจได้อย่างรวดเร็ว เหมาะสำหรับเทรดเดอร์ที่ต้องการความสะดวกสบายและมีประสิทธิภาพในการเทรด ด้วย SymbolSyncEA คุณจะพบว่าการเทรดของคุณมีความเป็นระบบมากยิ่งขึ้น

2024.01.09
การแจ้งเตือนเสียงเชื่อมต่อและตัดการเชื่อมต่อสำหรับ MetaTrader 5
MetaTrader5
การแจ้งเตือนเสียงเชื่อมต่อและตัดการเชื่อมต่อสำหรับ MetaTrader 5

สวัสดีเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึง การแจ้งเตือนเสียงเชื่อมต่อและตัดการเชื่อมต่อ ใน MetaTrader 5 ซึ่งเป็นเครื่องมือที่ช่วยให้เรารู้สถานะการเชื่อมต่อได้ง่ายมากขึ้น การใช้งานก็ง่ายมาก เพียงแค่เพิ่มไฟล์เสียง .wav ลงในโฟลเดอร์ MQL5\Files\Sounds ของคุณ จากนั้นก็สามารถคัดลอกโค้ดและคอมไพล์ EA Utility ได้เลย โดยไฟล์ที่แนบมามีบรรทัดคอมเมนต์อธิบายการใช้งานด้วยนะ //+------------------------------------------------------------------+ //|                               Connect_Disconnect_Sound_Alert.mq5 | //|                                Copyright 2024, Rajesh Kumar Nait | //|                  https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link      "https://www.mql5.com/en/users/rajeshnait/seller" #property version   "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- Sound files #resource "\\Files\\Sounds\\CONNECTED.wav" #resource "\\Files\\Sounds\\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                      Print("Error: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                   Print("Error: ",GetLastError());             } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                      Print("Error: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                   Print("Error: ",GetLastError());             }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+

2024.01.08
เครื่องมือ MQL5 ขั้นสูงสำหรับนักเทรด – ส่วนที่ 7
MetaTrader5
เครื่องมือ MQL5 ขั้นสูงสำหรับนักเทรด – ส่วนที่ 7

ส่วนที่ 7. เครื่องมือ MQL5 ขั้นสูง "ส่วนที่ 7. เครื่องมือ MQL5 ขั้นสูง" ในหนังสือ "โปรแกรม MQL5 สำหรับนักเทรด" จะพูดถึงความสามารถขั้นสูงของ MQL5 API ซึ่งจะมีประโยชน์เมื่อพัฒนาโปรแกรมสำหรับ MetaTrader 5 โดยเฉพาะอย่างยิ่งการใช้งานสัญลักษณ์การเงินที่กำหนดเอง เหตุการณ์จากปฏิทินเศรษฐกิจที่มีอยู่ และเทคโนโลยีทั่วไป เช่น เครือข่าย ฐานข้อมูล และการเข้ารหัส ส่วนนี้จะครอบคลุมถึงไลบรารี - โปรแกรมประเภทพิเศษที่ให้ API ที่พร้อมใช้งานสำหรับเชื่อมต่อกับโปรแกรม MQL อื่น ๆ นอกจากนี้ยังพูดถึงความเป็นไปได้ในการพัฒนาซอฟต์แวร์แพ็กเกจและการรวมโปรแกรมที่เชื่อมโยงกันอย่างมีเหตุผลเข้าเป็นโครงการเดียว สุดท้ายนี้ ส่วนนี้จะนำเสนอการรวมเข้ากับซอฟต์แวร์อื่น ๆ รวมถึง Python เราจะเริ่มต้นด้วยการศึกษาแหล่งข้อมูล ซึ่งเป็นไฟล์ประเภทใดก็ได้ที่สามารถฝังอยู่ในโค้ดโปรแกรม แหล่งข้อมูลอาจประกอบด้วย: องค์ประกอบมัลติมีเดีย การตั้งค่าที่ "ยาก" จากโปรแกรมภายนอก โปรแกรม MQL5 อื่น ๆ ในรูปแบบคอมไพล์ สภาพแวดล้อมการพัฒนา MQL5 อนุญาตให้รวมข้อมูลแอปพลิเคชัน อาร์เรย์ รูปภาพ เสียง และฟอนต์ในไฟล์ต้นฉบับ ทำให้โปรแกรมเป็นผลิตภัณฑ์ที่มีความสมบูรณ์และสะดวกสำหรับผู้ใช้ปลายทาง จะมีการให้ความสำคัญกับทรัพยากรกราฟิกที่มีรูปภาพแบบแรสเตอร์ในรูปแบบ BMP: คุณจะได้เรียนรู้วิธีการสร้าง แก้ไข และแสดงผลอย่างไดนามิกบนกราฟ เราจะสรุปส่วนสุดท้ายของหนังสือโดยการศึกษาเกี่ยวกับการรวม OpenCL ใน MQL5 OpenCL เป็นมาตรฐานเปิดสำหรับการเขียนโปรแกรมขนานในระบบที่มีหลายโปรเซสเซอร์ รวมถึงกราฟิกการ์ด (GPUs) และหน่วยประมวลผลกลาง (CPUs) ซึ่งช่วยเร่งความเร็วในการทำงานที่ต้องใช้การคำนวณมาก หากอัลกอริธึมสามารถทำให้เป็นขนานได้ เช่น การฝึกอบรมเครือข่ายประสาท การแปลงฟูริเยร์ และการแก้ระบบสมการ การใช้ OpenCL ในโปรแกรม MQL ต้องการไดรเวอร์พิเศษจากผู้ผลิตและการสนับสนุนเวอร์ชัน OpenCL 1.1 ขึ้นไป การมีการ์ดกราฟิกไม่จำเป็นต้องมี เนื่องจากหน่วยประมวลผลกลางสามารถใช้สำหรับการคำนวณขนานได้เช่นกัน.

2023.12.16
การเขียนโปรแกรม 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
การตั้ง Take Profit ตามกำไรปัจจุบัน - เทคนิคสำหรับ MetaTrader 4
MetaTrader4
การตั้ง Take Profit ตามกำไรปัจจุบัน - เทคนิคสำหรับ MetaTrader 4

บทนำหลาย ๆ คนที่ใช้ EA มักจะปิดออร์เดอร์เมื่อกำไรถึงระดับที่ตั้งไว้โดยอิงจากระยะห่างในพิปส์จากราคาซื้อ แต่ EA Perceptron มีแนวทางที่แตกต่างออกไป โดยจะปิดออร์เดอร์ตามกำไรปัจจุบัน ซึ่งแนวทางนี้ช่วยให้คุณสามารถจัดการกับการตั้ง Take Profit ได้ง่ายขึ้น แม้จะมีตำแหน่งเปิดอยู่หลายตำแหน่ง โดยสามารถติดตามกำไรปัจจุบันทั้งหมดตามหมายเลข Magic Number ได้ หากคุณใช้บอทหลายตัวหรือ EA ที่แตกต่างกันในเวลาเดียวกัน เพิ่มฉันเป็นเพื่อน และติดตามข่าวสารจากฉันเพื่อไม่พลาดข้อมูลใหม่ ๆ!การใช้โค้ดนี้ยังช่วยให้คุณหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นจากการตั้ง Take Profit ตามพิปส์ เช่น การเปลี่ยนแปลงที่เกิดจากการ slippage ของโบรกเกอร์ ซึ่งอาจทำให้กำไรของคุณลดลงได้ การใช้โค้ดที่อิงจากกำไรปัจจุบันจะช่วยให้คุณมีการควบคุมที่ดีกว่าในการทำเทรดของคุณหากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการตั้งค่า Take Profit ตามกำไรปัจจุบัน สามารถใช้โค้ดของ EA SwingBot เป็นตัวอย่างได้…จำนวนออร์เดอร์ทั้งหมดเริ่มต้นด้วยโค้ดที่คำนวณจำนวนออร์เดอร์ที่เปิดอยู่ทั้งหมดที่มีหมายเลข Magic Number เดียวกันหมายเลข Magic Number เป็นตัวระบุเฉพาะที่ผู้เทรดหรือ EA (ผู้ช่วยผู้เชี่ยวชาญ) ตั้งให้กับออร์เดอร์โค้ดนี้จะเริ่มต้นตัวแปร total_orders เป็นศูนย์ จากนั้นจะวนลูปผ่านออร์เดอร์ที่เปิดอยู่ทั้งหมดโดยใช้ลูป for และเลือกแต่ละออร์เดอร์ด้วยฟังก์ชัน OrderSelect() หากเลือกออร์เดอร์ได้สำเร็จ มันจะเพิ่มค่าตัวแปร total_orders ขึ้นทีละหนึ่ง.//----------------- &nbsp;&nbsp; int total_orders = 0; &nbsp;&nbsp; for(int i = 0; i &lt; OrdersTotal(); i++) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(OrderMagicNumber() == MagicNumber) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total_orders++; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; }…การคำนวณกำไรปัจจุบันโค้ดนี้จะเริ่มต้นตัวแปรสองตัวคือ ProfittoMinimo และ Profit โดยตัวแปร ProfittoMinimo ใช้เพื่อเปิดการทำงานของการตั้ง Take Profit ในระดับนี้ ซึ่งค่านี้จะแสดงในสกุลเงินของบัญชี ตัวแปร Profit ใช้เพื่อสะสมกำไรปัจจุบันจากตำแหน่งที่เปิดอยู่ทั้งหมดที่มีหมายเลข Magic Number เดียวกัน และตัวแปร StopLoss ใช้สำหรับการตั้ง Stop Loss.โค้ดจะใช้ลูป for เพื่อวนผ่านตำแหน่งที่เปิดอยู่ทั้งหมดโดยใช้ฟังก์ชัน OrdersTotal() สำหรับแต่ละตำแหน่งที่เปิดอยู่ จะเลือกออร์เดอร์ที่เกี่ยวข้องด้วยฟังก์ชัน OrderSelect() หากเลือกออร์เดอร์ได้สำเร็จและมีหมายเลข Magic Number เดียวกัน จะนำกำไรของออร์เดอร์นั้นไปบวกกับ Profit.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double ProfittoMinimo = 3; // กำไรเป้าหมาย &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double Profit = 0; // กำไรปัจจุบัน &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0; i&lt;OrdersTotal(); i++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderMagicNumber() == MagicNumber) // หากใช้หลาย EA สามารถลบเงื่อนไข MagicNumber ได้เพื่อรักษาฟังก์ชันในจำนวนออร์เดอร์ทั้งหมด &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Profit += OrderProfit(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}กำไรขั้นต่ำสามารถตั้งค่าเป็นตัวแปรภายนอกและปรับแต่งในตัวเลือก EA ได้:…ปิดตำแหน่งเมื่อกำไรถึงระดับที่ตั้งไว้โค้ดจะใช้ลูป for เพื่อวนผ่านออร์เดอร์ที่เปิดอยู่ทั้งหมดโดยใช้ฟังก์ชัน OrdersTotal() โดยเริ่มจากออร์เดอร์ล่าสุดไปจนถึงออร์เดอร์แรก สำหรับแต่ละออร์เดอร์จะเลือกการเทรดที่เกี่ยวข้องด้วยฟังก์ชัน OrderSelect().หากการเทรดที่เลือกมีสัญลักษณ์เดียวกับกราฟปัจจุบัน เป็นประเภท OP_BUY และมีหมายเลข Magic Number เดียวกันตามที่ระบุในโค้ด จะตรวจสอบว่ากำไรของการเทรดนั้นมากกว่าหรือเท่ากับ ProfittoMinimo หากใช่ จะปิดการเทรดที่ราคาบิดโดยใช้ฟังก์ชัน OrderClose() และพิมพ์ข้อความแสดงว่าการซื้อได้ถูกปิดแล้วในทำนองเดียวกัน หากการเทรดที่เลือกมีสัญลักษณ์เดียวกับกราฟปัจจุบัน เป็นประเภท OP_SELL และมีหมายเลข Magic Number เดียวกันตามที่ระบุในโค้ด จะตรวจสอบว่ากำไรของการเทรดนั้นมากกว่าหรือเท่ากับ ProfittoMinimo หากใช่ จะปิดการเทรดที่ราคา Ask โดยใช้ฟังก์ชัน OrderClose() และพิมพ์ข้อความแสดงว่าการขายได้ถูกปิดแล้ว&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int e = OrdersTotal() - 1; e &gt;= 0; e--) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderSymbol() == Symbol() &amp;&amp; OrderType() == OP_BUY &amp;&amp; OrderMagicNumber() == MagicNumber) // ออร์เดอร์จะถูกแก้ไขเฉพาะเมื่อ Magic Number ตรงกับออร์เดอร์ที่กำลังดำเนินการอยู่ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Profit &gt;= ProfittoMinimo) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // ราคาบิด &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("Buy order closed", Profit, " - Stoploss minimum: ",MarketInfo(Symbol(), MODE_STOPLEVEL)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderSymbol() == Symbol() &amp;&amp; OrderType() == OP_SELL &amp;&amp; OrderMagicNumber() == MagicNumber) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(Profit &gt;= ProfittoMinimo) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // ราคาขาย &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("Sell order closed", Profit, " - Stoploss minimum: ",MarketInfo(Symbol(), MODE_STOPLEVEL)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}…บทสรุปโค้ดนี้สามารถเป็นประโยชน์สำหรับกลยุทธ์การปิดตำแหน่งที่อิงจาก Take Profit แต่ยังสามารถรวมกับการตั้ง Trailing Stop ที่อิงจากการเพิ่มขึ้นของกำไรปัจจุบันได้อีกด้วย ระบบนี้ยังมีประโยชน์ในกรณีที่มีผู้ช่วยผู้เชี่ยวชาญหลายตัว หากคุณไม่ต้องการใช้เงื่อนไข if ที่เกี่ยวกับ Magic Number สามารถกำหนดระดับ Take Profit ทั่วไปเพื่อควบคุมตำแหน่งที่เปิดอยู่ทั้งหมดจาก EA ที่ทำงานอยู่ได้พร้อมกัน

2023.10.27
กลยุทธ์ Scalping ด้วย Donchian Channel EA สำหรับ MetaTrader 4
MetaTrader4
กลยุทธ์ Scalping ด้วย Donchian Channel EA สำหรับ MetaTrader 4

แจ้งเตือน: อัปเดตเป็นเวอร์ชัน 2 พร้อมการตั้งค่าใหม่อีกเล็กน้อย วิธีการคำนวณขนาดล็อต ความสามารถในการเปิดใช้งานกลยุทธ์ Trailing Stop ที่แตกต่างกัน เพื่อให้เหมาะสมกับความต้องการเฉพาะของคุณ บัญชี และกลยุทธ์การเทรดของคุณ เป็น EA ที่ใช้กลยุทธ์ Donchian Channel ในการทำการเทรดแบบ Breakout โดยให้ผลลัพธ์ที่ดีที่สุดในกรอบเวลา H1 กลยุทธ์และพารามิเตอร์ต่าง ๆ ได้รับการอธิบายอย่างละเอียดในวิดีโอด้านล่างนี้ จนถึงตอนนี้สามารถใช้ได้กับหลายคู่เงิน ฉันขอแนะนำให้ทำตามนี้: 1. ทำการปรับแต่ง (Optimization) ในคู่เงินที่หลากหลายภายใน 6 เดือนที่ผ่านมา 2. ทำการปรับแต่งซ้ำทุกเดือน 3. แนบชุดที่ทำกำไรได้ทั้งหมดไปยังกราฟเพื่อเพิ่มกำไรและลดความเสี่ยง ในขณะนี้ฉันกำลังใช้ชุดเหล่านี้ใน บัญชีที่มีเงินทุน 500€ ในการทำการปรับแต่ง ฉันทำตามแนวทางที่แสดงในวิดีโอนี้ (แจ้งให้ฉันทราบหากคุณต้องการให้ฉันสร้างวิดีโอที่ละเอียดหรือเฉพาะเจาะจงมากขึ้น)

2023.10.09
กลยุทธ์ Double Bollinger Band สำหรับ MT4: วิธีการทำกำไรในตลาด Forex
MetaTrader4
กลยุทธ์ Double Bollinger Band สำหรับ MT4: วิธีการทำกำไรในตลาด Forex

1. ภาพรวม กลยุทธ์ Double Bollinger Band ใช้ Bollinger Band สองชุดในการกรองจุดเข้าซื้อและขายในตลาด Forex โดยกลยุทธ์นี้มีจุดมุ่งหมายที่จะเข้าซื้อ (หรือขาย) เมื่อราคาข้ามไปด้านบน (หรือด้านล่าง) ของ 3σ (ค่าเบี่ยงเบนมาตรฐาน 2) และยังพิจารณาระดับ 2σ (ค่าเบี่ยงเบนมาตรฐาน 2) ของ Bollinger Bands ในการตัดสินใจซื้อขาย ค่าตั้งต้น: - 2σ Bollinger Bands (20,2): ค่าเฉลี่ยเคลื่อนที่แบบง่าย (20) และจำนวนค่าเบี่ยงเบนมาตรฐาน (2) - 3σ Bollinger Bands (20,3): ค่าเฉลี่ยเคลื่อนที่แบบง่าย (20) และจำนวนค่าเบี่ยงเบนมาตรฐาน (3) 2. การเข้าซื้อ (Long Entry) เปิดคำสั่งซื้อ (Buy) เมื่อเงื่อนไข 2 ข้อถูกต้อง: เงื่อนไข 1: ราคาขาย (Ask price) ข้ามไปด้านบนของ Bollinger Band 3σ (BB3UP) เงื่อนไข 2: หากเงื่อนไข 1 เป็นจริง ตรวจสอบว่าราคาในปัจจุบันอยู่ภายในช่วงระหว่าง Bollinger Band 2σ ด้านบน (BB2UP) และด้านล่าง (BB2LO) 3. การขาย (Sell Entry) เปิดคำสั่งขาย (Sell) เมื่อเงื่อนไข 2 ข้อถูกต้อง: เงื่อนไข 1: ราคาซื้อ (Bid price) ข้ามไปด้านล่างของ Bollinger Band 3σ (BB3LO) เงื่อนไข 2: หากเงื่อนไข 1 เป็นจริง ตรวจสอบว่าราคาในปัจจุบันอยู่ภายในช่วงระหว่าง Bollinger Band 2σ ด้านล่าง (BB2LO) และด้านบน (BB2UP) 4. การออกคำสั่ง (Exit Orders) ใช้คำสั่งแบบ OCO (One Cancels Other) โดยตั้งค่า Stop-loss และ Take-profit ที่ N pips ※N: ค่าที่ตั้งไว้ในพารามิเตอร์

2023.10.02
กลยุทธ์ Martin Gale Breakout: EA ที่สุดของเทรด Forex ใน MetaTrader 4
MetaTrader4
กลยุทธ์ Martin Gale Breakout: EA ที่สุดของเทรด Forex ใน MetaTrader 4

สวัสดีครับเพื่อนๆ นักเทรดทุกคน! วันนี้เราจะมาพูดถึงกลยุทธ์ที่น่าสนใจมากๆ อย่าง 'Martin Gale Breakout' ซึ่งเป็น EA (ที่หลายๆ คนเรียกว่า 'หุ่นยนต์เทรด') ที่ออกแบบมาเพื่อการเทรดในตลาด Forex โดยเฉพาะEA นี้ผสมผสานแนวทางการเทรดแบบ Breakout กับระบบการจัดการเงินแบบ 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 points เพื่อให้มีความยืดหยุ่นในการเก็บกำไรMagicNumber: หมายเลขเฉพาะที่ใช้กับ EA นี้ เพื่อให้สามารถจัดการการเทรดของตัวเองได้อย่างอิสระจุดเด่นของกลยุทธ์:การเทรดแบบ Breakout: EA นี้เชี่ยวชาญในการค้นหาโอกาสในการ Breakout ในตลาด ซึ่งเป็นจุดที่ราคาผ่านระดับสำคัญการปรับขนาดล็อตแบบพลศาสตร์: ขนาดล็อตจะปรับเปลี่ยนตามยอดเงินในบัญชีและความเสี่ยงที่เราต้องการ ตามหลักการจัดการเงินแบบ Martin Galeการฟื้นฟูการขาดทุน: EA นี้มีระบบฟื้นฟูที่มีประสิทธิภาพ เพื่อกู้คืนการขาดทุนโดยการปรับพารามิเตอร์การเทรดเมื่อจำเป็นฟังก์ชันหลักที่ใช้ใน EA นี้คือ CalcLotWithTP() ซึ่งมีพารามิเตอร์นำเข้า 3 ตัวคือ Takeprofit, Startprice, Endprice โดยมันจะคำนวณปริมาณที่ต้องการสำหรับการเทรดเพื่อให้ได้กำไรตามเป้าหมายเมื่อเข้าเทรดที่ Startprice และออกที่ Endpriceโค้ดทั้งหมดมีการแสดงความคิดเห็นเพื่อให้เข้าใจได้ง่ายขึ้นสำหรับใครที่สนใจ ผมทำวีดีโออธิบายเกี่ยวกับมันไว้ด้วยนะ!

2023.09.26
กลยุทธ์การเทรด 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
กลยุทธ์การเทรด Super Scalper EMAs สำหรับ MetaTrader 4
MetaTrader4
กลยุทธ์การเทรด Super Scalper EMAs สำหรับ MetaTrader 4

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

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