Metatrader 5 - ระบบการซื้อขาย




สำรวจเทรดดิ้งชั้นเรียนกลยุทธ์ของห้องสมุดมาตรฐาน - กลยุทธ์การปรับแต่ง สำรวจเทรดดิ้งชั้นเรียนกลยุทธ์ของห้องสมุดมาตรฐาน - กลยุทธ์การปรับแต่ง ในบทความนี้เราจะแสดงให้เห็นว่าในการสำรวจห้องสมุดมาตรฐานการเรียนการสอนการซื้อขายกลยุทธ์และวิธีการเพิ่มกลยุทธ์ที่กำหนดเองและตัวกรอง / สัญญาณโดยใช้รูปแบบและรุ่นตรรกะของ MQL5 Wizard ในท้ายที่สุดคุณจะสามารถได้อย่างง่ายดายเพิ่มกลยุทธ์ของคุณเองโดยใช้ตัวชี้วัด MetaTrader 5 มาตรฐานและ MQL5 Wizard จะสร้างรหัสที่สะอาดและมีประสิทธิภาพอย่างเต็มที่และที่ปรึกษาผู้เชี่ยวชาญการทำงาน บทนำ บทความนี้มีไว้สำหรับมือใหม่ / ผู้ใช้เริ่มต้นที่ต้องการจะเข้ามาใกล้ชนิดของการปรับแต่งบางอย่างกับการทำงานและไม่มีการเขียน EA จากรอยขีดข่วน ใน MetaTrader 5 เรามีความเป็นไปได้ที่ดีของการซื้อขายผู้เชี่ยวชาญที่มีความรู้น้อยที่สุดหรือศูนย์ (และทักษะ) เกี่ยวกับการเขียนโปรแกรมภาษาและการเข้ารหัสของแหล่งที่มาขอบคุณที่คุณลักษณะ MetaEditor หนึ่ง: MQL5 Wizard พ่อมด (เราจะไม่ได้ไปที่จะอธิบายรายละเอียดของการทำงานที่นี่ในบทความนี้) มีวัตถุประสงค์เพื่อสร้างโปรแกรมสำเร็จรูป (ไฟล์.mq5 และ. ex5) ขั้นตอนวิธีและรหัส มันได้รับประโยชน์จากการใช้ MQL5 มาตรฐานห้องสมุดและเรียนของกลยุทธ์การซื้อขาย (ซึ่งเป็นแหล่งข้อมูลที่ดี) มีจำนวนมากของการเรียนกลยุทธ์การซื้อขายอยู่ในห้องสมุดมาตรฐานจริงบางส่วนของพวกเขามีอยู่แล้วดีมากและมาจากการศึกษามากขึ้นหรือน้อยมีชื่อเสียงเกี่ยวกับตลาดการเงินและการวิเคราะห์ผลกำไรอยู่ มีอย่างน้อยหนึ่งกลยุทธ์ในแต่ละตัวบ่งชี้จากชุดมาตรฐานของตัวชี้วัดที่มาพร้อมกับ MetaTrader 5 เพื่อสร้างสัญญาณซื้อขายจากนี้การเรียนการสอนกลยุทธ์การซื้อขาย MQL5 ตัวช่วยสร้างการใช้กลไกที่เรียกพฤติกรรมของตัวบ่งชี้ที่ทำขึ้นโดยตรรกะเขียนในรูปแบบของ "รูปแบบการค้า" และเฉพาะเจาะจงสร้างทุกอีเอเรียกตัวชี้วัด (ผ่านคำแนะนำ # include) และชุดของพวกเขาในรูปแบบและการตัดสินใจซื้อขายที่มีการนำเข้าแล้วเป็นหลัก EA เพื่อวัตถุประสงค์ในการซื้อขาย MQL5 Wizard ขั้นตอนแรกคือการสร้างที่ปรึกษาผู้เชี่ยวชาญโดยใช้ตัวช่วยสร้าง MQL5 ในการเปิดตัวช่วยสร้าง MQL5 ใน MetaEditor เลือก "ใหม่" จากเมนู "File" หรือกดปุ่ม "ใหม่" แล้วเลือก "ที่ปรึกษาผู้เชี่ยวชาญ (สร้าง) ตัวเลือก" ขอชื่อที่ปรึกษาผู้เชี่ยวชาญของเราสร้างขึ้นในตัวช่วยสร้าง MQL5 เป็น "MyExpert" จากนั้นเราเพิ่มสองตัวชี้วัด / สัญญาณที่จะทำงานกับมัน (คุณสามารถเลือกเงื่อนไขมากเท่าที่คุณต้องการจากตัวชี้วัดที่สามารถใช้ได้) สำหรับตัวอย่างของเราให้เพิ่มตัวชี้วัดที่มีชื่อเสียงสอง: ดัชนีความแข็งแรงญาติ (RSI) และค่าเฉลี่ยเคลื่อนที่ (MA) เพิ่มตัวบ่งชี้ RSI แรกแล้วเพิ่มตัวบ่งชี้ซาชูเซตส์ เราสามารถตั้งค่าพารามิเตอร์บางอย่างที่เราต้องการหรือปล่อยพารามิเตอร์เริ่มต้นสำหรับตัวอย่างของเรา หลังจากคลิก OK และที่เกิดขึ้นกับตัวช่วยสร้างเราจะไม่เลือก (ตอนนี้) ใด ๆ หยุดต่อท้ายในหน้าต่างถัดไป แต่ถ้าคุณต้องการคุณสามารถเพิ่มมันจะไม่ส่งผลกระทบกับหัวข้อของบทความนี้ ในหน้าต่างถัดไปเราจะเลือกเป็นร้อยละ 5.0 ของการซื้อขายและจำนวนมาก 0.1 หรือพารามิเตอร์อื่น ๆ ที่คุณต้องการ: อีกครั้งนี้จะไม่ส่งผลกระทบต่อข้อโต้แย้งของบทความของเรา วิเคราะห์สร้างรหัส หลังจากเสร็จสิ้นการที่คุณจะมี "MyExpert. mq5" ไฟล์ ลองมาวิเคราะห์จุดหลักของรหัสที่สร้างขึ้น ครั้งแรกที่สังเกตเห็นไฟล์ #include เพิ่มลงในรหัสที่สร้างโดยตัวช่วยสร้าง เราสามารถดู: Expert. mqh SignalRSI. mq SignalMA. mqh จากนั้นในส่วนต่อไปนี้รหัส: เป็นชื่อของมันคือ "กรอง" ที่จะนำมาประยุกต์ใช้ให้เข้ากับสภาวะตลาดที่สร้าง EA ที่จะถูกแนบมากับแผนภูมิหรือทดสอบใน Tester กลยุทธ์ filter0 แล้วกรองครั้งแรกกับ "ดัชนี" ของศูนย์และสำหรับตัวกรองนี้เป็นครั้งแรกที่เราได้เลือกอาร์เอสในตัวอย่างของเรา CSignalRSI หมายถึงระดับสัญญาณ RSI ชั้นนี้จะใช้ในการเรียกตัวบ่งชี้ RSI และนำไปใช้มันเงื่อนไขบางอย่างสำหรับการสร้างซื้อหรือขายสัญญาณผ่านการใช้งานรูปแบบตรรกะของตัวช่วยสร้าง อาร์เอสแล้วกรองครั้งแรกของเรา (หมายเลขกรอง 0) ในส่วนของรหัสต่อไปนี้มีค่าตัวกรองบางส่วนแล้วหยุดต่อท้ายมาตรา (เราได้เลือกต่อท้ายไม่มี) และต่อมา - ส่วนหนึ่งของโค้ดที่เป็นเรื่องเกี่ยวกับการจัดการเงิน ที่เกิดขึ้นเรามี: ในส่วนนี้จะเป็นของ Expert. mqh รวมไฟล์ มันเป็นเรื่องเกี่ยวกับการเริ่มต้นของตัวชี้วัดที่จำเป็นสำหรับการดำเนินงานผู้เชี่ยวชาญ และส่วนสุดท้ายของการสร้างรหัสอีเอเป็นเรื่องเกี่ยวกับ deinitialization และเหตุการณ์อื่น ๆ ที่ปรึกษาผู้เชี่ยวชาญปกติ: ที่จริง EA นี้ใช้สองตัวชี้วัด (RSI และ MA) สำหรับการตัดสินใจซื้อขายผ่านห้องสมุดมาตรฐานของการเรียนการซื้อขายที่ใช้ "ฟิลเตอร์" และ "น้ำหนัก" ตรรกะ คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ในโมดูลการค้าของสัญญาณ MQL5 อ้างอิง แต่จุดประสงค์ของเราคือการใช้กลยุทธ์การซื้อขายของเราเองเป็นตัวกรองใหม่ ดังนั้นขั้นตอนแรก (โดยใช้กลยุทธ์การซื้อขายของเราเอง) เราจะปรับเปลี่ยนเล็กน้อย MyExpert. mq5 ของเรา ก่อนอื่นขอเพิ่มตัวกรองอื่น มันจะเป็น filter2 และเราจะวางไว้หลังส่วน filter1 รหัส ลองกลับไปที่ #include ไฟล์ที่มีหลักของตัวกรองและการตัดสินใจตลาด คนแรกคือ #include & lt; ผู้เชี่ยวชาญ \ Expert. mqh & gt; ไฟล์. นี้รวมไฟล์ในทางกลับกันมันรวมถึงไฟล์อื่น ๆ : #include "ExpertBase. mqh" #include "ExpertTrade. mqh" #include "ExpertSignal. mqh" #include "ExpertMoney. mqh" #include "ExpertTrailing. mqh" เหล่านี้รวมถึงไฟล์เป็นโครงสร้างหลักของ EA โครงสร้างการซื้อขายที่สัญญาณเงินและการจัดการหยุดต่อท้ายตามลำดับ เราจะไม่ได้ไปวิเคราะห์อย่างลึกซึ้งไฟล์เหล่านี้หรือแก้ไขได้ จุดประสงค์ของเราคือการมุ่งเน้นการเพิ่มกลยุทธ์ของเราเองโดยใช้ตัวชี้วัดที่มีอยู่จาก MetaTrader 5 ชุดมาตรฐานของตัวชี้วัดและการเพิ่มไฟล์รวมถึงของพวกเขา ในรหัส MyExpert. mq5 ที่เรามีไฟล์ #include ของอาร์เอสและตัวชี้วัดแมสซาชูเซตที่เราใช้ในตัวอย่างนี้เป็นสัญญาณ / กรองสำหรับตลาดการตัดสินใจของการซื้อขาย ณ จุดนี้ขอเพิ่มไฟล์รวมถึงการกำหนดเองของเราเอง เพื่อที่เราจะใช้แก้ไข ("ดีขึ้น") รุ่นที่เป็นสัญญาณบ่งชี้ที่ CCI ไฟล์ SignalCCIxx. mqh ควรจะอยู่ใน \ MQL5 \ รวม \ ผู้เชี่ยวชาญ \ สัญญาณ \ โฟลเดอร์และมันควรจะสอดคล้องกับ integrability ของตัวช่วยสร้างที่สร้าง EA เช่นชั้นเรียนอื่น ๆ ค้า #include ของห้องสมุดมาตรฐาน - ไฟล์สัญญาณอยู่แล้วใน โฟลเดอร์นี้ (SignalRSI. mqh และ SignalMA. mqh) ตัวอย่างนี้เราจะไปคัดลอกแฟ้ม CCI เดิมสร้างอีกคนหนึ่งเรียกว่า CCIxx กับบางรหัสแก้ไขเล็กน้อยและใช้เป็นไฟล์ #include ตอนนี้เพื่อประโยชน์ของความเรียบง่ายเราก็ใช้รุ่นคัดลอกของตัวบ่งชี้ที่ CCI จากห้องสมุดมาตรฐาน สิ่งที่เราต้องทำคือการคัดลอก "\ MQL5 \ รวม \ ผู้เชี่ยวชาญ \ สัญญาณ \ SignalCCI. mqh file" กับ "\ MQL5 \ รวม \ ผู้เชี่ยวชาญ \ สัญญาณ \ SignalCCI XX. mqh" ไฟล์ วิธีที่ง่ายที่สุดที่คุณสามารถทำได้ก็คือการทำสำเนาของไฟล์ในโฟลเดอร์แล้วเปลี่ยนชื่อเป็น ลองดูที่ไฟล์นี้ในขณะนี้ บูรณาการนี​​้กำหนดเอง 'วิธีการในการสร้างตัวช่วยสร้าง MyExpert. mq5 เป็นเพียงงานที่เสร็จสมบูรณ์ เราได้เพิ่มรหัส filter2 เช่นอธิบายข้างต้นและตอนนี้เราจะเสร็จสมบูรณ์ในภายหลังต่อไปนี้ ดังนั้นเราจะไม่ได้ไปให้ความสำคัญกับไฟล์ MyExpert. mq5 อีกต่อไป แต่จากนี้ไปเราจะมุ่งเน้นไปที่ไฟล์ SignalCCIxx. mqh ว่าเป็นหลักที่แท้จริงของ EA เนื่องจากสัญญาณการซื้อขาย filter2 ของตัวบ่งชี้ที่ CCI กลยุทธ์การปรับแต่ง เรากลับไปเพิ่ม 'กึ่งที่กำหนดเอง' กรองกลยุทธ์ที่เราเรียก CCIxx ว่า​​เป็นรุ่นที่แก้ไขของ SignalCCI. mqh ฉันกำหนดมันกึ่งที่กำหนดเองเพราะในความเป็นจริงมันไม่ได้เป็นที่กำหนดเองใหม่ทั้งหมดสัญญาณ แต่เป็นรุ่นที่ออกแบบใหม่ของตัวบ่งชี้ CCI จากชุดมาตรฐานของตัวชี้วัดที่มาพร้อมกับโปรแกรม MetaTrader 5 ด้วยวิธีนี้แม้ผู้ใช้มือใหม่และโปรแกรมเมอร์ เล็กน้อยสามารถปรับเปลี่ยนรูปแบบและตัวกรองของอีเอที่สร้างขึ้นโดยใช้ตัวช่วยสร้าง MQL5 จำนวนมากของตัวชี้วัดที่มีอยู่ดังนั้นในคำอื่น ๆ ที่คุณสามารถสร้างรุ่นของตัวเองของตัวกรองและรูปแบบในการสร้างการซื้อและขายสัญญาณตลาด นี้ยังคงเป็นพื้นฐานที่ดีสำหรับการทำงานกับกลยุทธ์ ลองดูที่ตัวอย่างนี้ มันจะเป็นประโยชน์สำหรับผู้ที่เพียงแค่ต้องคุณลักษณะนี้ (ที่จะเพิ่มรูปแบบที่กำหนดเองบางตัวชี้วัดที่มีอยู่) และสำหรับผู้ที่ต้องการเข้าร่วมในการเทรดดิ้งชิงแชมป์อัตโนมัติเพียงโดยใช้ตัวช่วยสร้างได้อย่างรวดเร็วสร้างการทำงานอย่างเต็มที่ (และถูกต้อง) EAs ที่มี บางชนิดของการปรับแต่ง นี้สามารถทำได้เพียงใน 1 ชั่วโมงของการทำงาน - การสร้างแชมป์มิตร EA ทำงานได้อย่างสมบูรณ์กับหยุดต่อท้าย, การจัดการเงินและทุกอย่างที่จำเป็นสำหรับการซื้อขายในการแข่งขัน มุ่งเน้นอีกครั้งว่า EA จะถูกสร้างโดยตัวช่วยสร้างที่ผมตั้งชื่อมันว่าแชมป์เป็นมิตรนี้จริงหมายความว่ารหัสที่สร้างขึ้นเป็นอิสระจากข้อผิดพลาดเพื่อให้ผู้เข้าร่วมไม่ได้ที่จะแก้ไขอะไรหรือความกลัวของข้อบกพร่องหรือข้อผิดพลาด! อีเอก็จะค้าและจะเป็นที่สมบูรณ์แบบสำหรับการซื้อขายอย่างน้อยสำหรับผู้ที่ต้องการที่จะมีส่วนร่วม แต่ไม่ทราบเกี่ยวกับการเขียนโปรแกรมและไม่ต้องการที่จะสั่งซื้อ EA ในการให้บริการงาน (ทางเลือกที่ดีที่จะมีส่วนร่วมในการแข่งขันชิงแชมป์) . มีจำนวนมากป้อนพารามิเตอร์ที่สามารถกำหนดเพื่อให้มีหุ่นยนต์ซื้อขายของคุณเองใกล้กับกลยุทธ์ที่คุณมีในใจอยู่ แต่คุณจริงสามารถใช้ชุดมาตรฐานของตัวชี้วัดที่มีการกำหนดมาตรฐานของตัวกรอง / รูปแบบที่นำเสนอโดย MetaQuotes ผ่านตัวช่วยสร้างห้องสมุดและมาตรฐานของการเรียนกลยุทธ์การซื้อขาย มันมีจำนวนมากของการรวมกันและเป็นไปได้ของการซื้อขายที่ประสบความสำเร็จเป็นตัวชี้วัดมีปัจจัยหลายประการ (ระยะเวลาที่เป็นสัญลักษณ์) และพารามิเตอร์ทั้งหมดของตัวชี้วัดของตัวเองเช่นระยะเวลาราคาประยุกต์ ฯลฯ ในบทความนี้คุณอย่างรวดเร็วและง่ายดายที่จะเรียนรู้ วิธีการปรับแต่งและเพิ่มรูปแบบ / กรองสำหรับ MetaTrader 5 ตัวชี้วัดมาตรฐาน ขอดำเนินการต่อไฟล์ SignalCCIxx. mqh เพื่อปรับแต่งและปรับเปลี่ยนพฤติกรรมในการที่จะทำให้สัญญาณ CCI รูปแบบของเราเองการซื้อขาย (CCIxx) ครั้งแรกของทั้งหมดในแฟ้ม MyExpert. mq5 ให้เพิ่มตัวแปรใหม่สำหรับรหัสใหม่ในส่วนที่นำเข้าเช่นตัวอย่างต่อไปนี้ (ดูรหัสเน้น): เราเปลี่ยนค่าของตัวแปร Signal_RSI_Weight และ Signal_MA_Weight 1.0-0.7 และ 0.6 ตามลำดับและเราได้เพิ่มสายที่เน้นดังกล่าวข้างต้น เพื่อให้ถูกต้องทำงานร่วมกับป้อนพารามิเตอร์สำหรับ CCIxx การปรับเปลี่ยนรุ่นของรูปแบบที่เป็นตัวบ่งชี้ที่ CCI ในชั้นเรียนกลยุทธ์การซื้อขายในความเป็นจริงที่เราคัดลอก 3 สายรหัสจากแฟ้ม SignalCCI. mqh และเพียงแค่เพิ่ม postfix ว่า​​ "XX" หลังจากที่ "CCI" ใน "การป้องกัน" ของการประกาศคลาสมีองค์ประกอบที่น่าสนใจมากมาย: ลองดูที่ชนิด int ที่เรียกว่า m_pattern ตัวแปรเหล่านี้จะมีความก้าวหน้าหมายเลข 0-3 หนึ่งของพวกเขาแต่ละคนเป็น "รูปแบบ" หรืออีกนัยหนึ่งรูปแบบของการตัดสินใจของตลาดทำให้เงื่อนไขในการซื้อและขายตราสารทางการเงิน พวกเราจะไปเพิ่ม 2 รูปแบบที่กำหนดเอง: m_pattern_4 และ m_pattern_5 จะทำโดยการเพิ่มสองบรรทัดของรหัสสองตัวแปรชนิดจำนวนเต็ม หากคุณยังคงดูรหัสที่คุณจะเข้าใจเหตุผลของการซื้อและการขายและทุกอย่าง แต่เราจะมีสมาธิที่นี่เพียง แต่ในส่วนของวิธีการที่จะเพิ่มรูปแบบของเราเองที่เราจะไม่ได้ไปที่จะอธิบายทีละบรรทัดเหล่านั้นรวมถึงไฟล์ (เพื่อการนี​​้ผู้อ่านสามารถเปิดไฟล์ของตัวเองและการศึกษาและมี MQL5 อ้างอิง เกินไปที่จะช่วยในการทำความเข้าใจ) นอกจากนี้เรายังต้องการที่จะทำสิ่งนี้ใน CSignalCCIxx. mqh ไฟล์กด CTRL + H, ค้นหา "CCI" และแทนที่ด้วย "CCIxx" คลิก "แทนที่ทั้งหมด" - 41 เกิดขึ้นควรจะพบและแทนที่ ลองไปที่นี่ในด้านบนของแฟ้ม: และการเปลี่ยนแปลงนี้: กับเรื่องนี้เหมือนใน SignalCCI. mqh ต้นฉบับ: เราทำเช่นนี้เพราะ Cicci เรียกว่าจากที่อื่นรวมและถ้าเราเปลี่ยนชื่อจะมีข้อผิดพลาดหลายอย่างเห็นได้ชัด ตอนนี้เราสามารถรวบรวมไฟล์ SignalCCIxx. mqh และควรจะมีข้อผิดพลาดและ 0 0 คำเตือน หากมีบางอย่างที่คุณอาจจะผิดพลาดและควรทำซ้ำขั้นตอน ตอนนี้ขอไปที่หลักของการเพิ่ม patters ของเราเอง เพียงแค่จินตนาการที่บริสุทธิ์สำหรับเราเพิ่ม 2 รูปแบบของพฤติกรรมการซื้อขายในตลาด ทั้งหมดเราจะมีสัญญาณใหม่ 4 (รูปแบบ) 2 ชนิดสำหรับการซื้อและ 2 ของชนิดขาย ส่วนจะมีการเปลี่ยนแปลงคือ: เรากำหนดค่า 90 ไป m_pattern_4 และ m_pattern_5 แต่คุณควร (ต้อง) เปลี่ยนพวกเขากับของคุณเอง: เหล่านี้มีน้ำหนักที่คุณต้องการกำหนดรูปแบบการตลาดใหม่ที่พวกเขามีอิทธิพลต่อทั้งที่ปรึกษาผู้เชี่ยวชาญพฤติกรรมการซื้อขาย สำหรับจินตนาการให้เพิ่มสองรุ่นตลาดใหม่ พวกเขาจะไปได้ง่ายมาก - พวกเขาเป็นเพียงเพื่อการศึกษาและไม่ผ่านการทดสอบสัญญาณการซื้อขายจึงไม่ค้ากับพวกเขา เล็งจะช่วยให้เราระบุค่าของตัวบ่งชี้ที่ CCI ในรูปข้างล่างนี้สำหรับบาร์ที่สอดคล้องกัน รูปแบบเป็นครั้งแรก ข้ามเส้นศูนย์จากด้านล่างข้างต้น นี่คือรูปแบบครั้งแรกของเราคือ: "การออกเสียงลงคะแนนในราคาที่จะเติบโต" รูปที่ 5 แสดงค่า CCI ที่สอดคล้องกับบาร์ที่ 1 (หนึ่งก่อนที่บาร์บาร์ปัจจุบัน) ค่าที่เป็น 45.16 จึง & gt; 0 รูปที่ 6 แสดงค่า CCI ที่สอดคล้องกับบาร์ 2 (สองแท่งก่อนที่บาร์ในปัจจุบัน) ค่าของมันคือ -53.92 จึง & lt; 0 เส้นศูนย์ (มูลค่า 0.00) ของตัวบ่งชี้ที่ CCI ได้รับการข้ามจากด้านล่างข้างต้นภายใน 2 บาร์ ข้ามเส้นศูนย์จากด้านบนด้านล่าง นี่คือรูปแบบครั้งแรกของเราคือ: "การออกเสียงลงคะแนนที่ราคาจะลดลง" รูปที่ 7 แสดงค่า CCI ที่สอดคล้องกับบาร์ที่ 1 (หนึ่งก่อนที่บาร์บาร์ปัจจุบัน) ค่าที่เป็น -28.49 จึง & lt; 0 รูปที่ 8 แสดงค่า CCI ที่สอดคล้องกับบาร์ 2 (สองแท่งก่อนที่บาร์ในปัจจุบัน) ค่าของมันคือ 2.41 จึง & gt; 0 เส้นศูนย์ (มูลค่า 0.00) ของตัวบ่งชี้ที่ CCI ได้รับการข้ามจากด้านบนด้านล่างภายใน 2 บาร์ รูปแบบที่สอง ข้ามเส้นศูนย์จากด้านบนด้านล่างและส่งกลับมาข้างต้น นี่คือรูปแบบที่สองของเราคือ: "การออกเสียงลงคะแนนในราคาที่จะเติบโต" รูปที่ 9 แสดงค่า CCI ที่สอดคล้องกับบาร์ที่ 1 (หนึ่งก่อนที่บาร์บาร์ปัจจุบัน) ค่าที่เป็น 119.06 จึง & gt; 0 รูปที่ 10 แสดงค่า CCI ที่สอดคล้องกับบาร์ 2 (สองแท่งก่อนที่บาร์ในปัจจุบัน) ค่าของมันคือ -20.38 จึง & lt; 0 รูปที่ 11 แสดงค่า CCI ที่สอดคล้องกับบาร์ 3 (สามแท่งก่อนที่บาร์ในปัจจุบัน) ค่าของมันคือ 116.85 จึง & gt; 0 อีกครั้ง เส้นศูนย์ (มูลค่า 0.00) ของตัวบ่งชี้ที่ CCI ได้รับการข้ามจากด้านบนด้านล่าง จากนั้นสายตัวบ่งชี้ CCI กลับมาข้างต้นใหญ่บริเวณเส้นศูนย์ภายใน 3 บาร์ ข้ามเส้นศูนย์จากด้านล่างข้างต้นและส่งกลับมาด้านล่าง นี่คือรูปแบบที่สองของเราคือ: "การออกเสียงลงคะแนนที่ราคาจะลดลง" รูปที่ 12 แสดงค่า CCI ที่สอดคล้องกับบาร์ที่ 1 (หนึ่งก่อนที่บาร์บาร์ปัจจุบัน) ค่าที่เป็น -58.72 จึง & lt; 0 รูปที่ 13 แสดงค่า CCI ที่สอดคล้องกับบาร์ 2 (สองแท่งก่อนที่บาร์ในปัจจุบัน) ค่าของมันคือ 57.65 จึง & gt; 0 รูปที่ 14 แสดงค่า CCI ที่สอดคล้องกับบาร์ 3 (สามแท่งก่อนที่บาร์ในปัจจุบัน) ค่าของมันคือ -85.54 จึง & lt; 0 อีกครั้ง เส้นศูนย์ (มูลค่า 0.00) ของตัวบ่งชี้ที่ CCI ได้รับการข้ามจากด้านล่างข้างต้น จากนั้นสายตัวบ่งชี้ CCI กลับด้านล่างใหญ่บริเวณเส้นศูนย์ภายใน 3 บาร์ รูปแบบการดำเนินการ เพื่อที่จะดำเนินการเหล่านี้แอร์ 4 (สองต่อรูปแบบ) เรามีการปรับเปลี่ยนส่วนรหัสต่อไปนี้ในลักษณะนี้ ในด้านล่างเราได้เพิ่มสายการเน้นของรหัสสำหรับการ "ซื้อ" สภาพ (ดูด้านบนในความคิดเห็นที่: "การออกเสียงลงคะแนน" ราคาที่จะเติบโตไป) ลองปรับเปลี่ยนส่วนที่สอดคล้องกันของรหัสสำหรับ "ขาย" สภาพ ในด้านล่างเราได้เพิ่มสายการเน้นของรหัสสำหรับ "ขาย" สภาพ (ดูด้านบนในความคิดเห็นที่: "การออกเสียงลงคะแนน" ราคาที่จะลดลง) (ที่ IDX + 1) หรือ (IDX + 2) (IDX + n) ของสายที่ผ่านมาเพิ่มเป็นเรื่องง่ายมาก แต่จุดที่สำคัญมากของคำถาม: 1, 2, 3, และอื่น ๆ เป็นเพียงจำนวนของบาร์ก่อนหน้านี้หนึ่งในปัจจุบัน (ปัจจุบันเป็นที่อยู่อาศัยจริง "เทียน" แถบ 0) ดังนั้นมากขึ้น IDX เครื่องหมาย + N, บาร์กลับที่เราจะไป ทุกบาร์ (IDX + n) สอดคล้องกับค่าตัวบ่งชี้ในตำแหน่งเดียวกัน 'แนวตั้ง' ในระยะเวลาเดียวกัน ในรูปนี้ 16 บาร์ข้อที่ศูนย์นี้ (เทียนแรกขวาสุดสอดคล้องกับ IDX หรือ (IDX + 0) ในรหัส) มีค่า CCI ที่เกี่ยวข้องด้านล่าง 0.00 นอกจากนี้ยังมีบาร์ที่สอง (IDX + 1) และแถบสาม (IDX + 2) มีค่าต่ำกว่าเส้น 0.00 เรายังไม่ได้ลงนามในแถบอื่น ๆ ที่มีลูกศรแนวตั้ง แต่ถ้าคุณเลื่อนเมาส์ไปเหนือแถบ 4 หลัง (IDX + 3) คุณจะเห็นว่าค่า CCI ที่สอดคล้องกันอยู่เหนือ 0.00 สำหรับส่วนใหญ่ของผู้ใช้จริงนี้เป็นที่เห็นได้ชัด แต่สำหรับผู้ใช้มือใหม่มันจะดีกว่าที่จะรู้ว่ากราฟิกบาร์ / เทียนของกราฟราคา, มุมมองแบบกราฟิกของตัวบ่งชี้ที่ CCI และตามลำดับ (IDX) ตัวแปรและค่าของตัวบ่งชี้ CCIxx ตรง กับแต่ละอื่น ๆ นี้เป็นสิ่งสำคัญเพื่อดูตัวชี้วัดที่เลือกของคุณในแผนภูมิและพยายามที่จะเป็น "เห็นภาพ" (หรือค้นพบ) จดหมายระหว่างบาร์ราคา / เทียนและพฤติกรรมของตัวบ่งชี้ที่เลือกพยายามที่จะทำให้การคาดคะเนสำหรับกลยุทธ์ที่คุณสามารถรหัสอย่างง่ายดายโดยใช้บาร์ ดัชนี (IDX) และความคุ้มค่าของตัวแปรตัวบ่งชี้ ในการยื่น SignalCCIxx. mqh รหัสต่อไปนี้: เขียนโดยคำหมายถึง: นี่คือตัวอย่างที่เล็กที่สุดของวิธีการเพียงแค่เพิ่มสองรูปแบบที่กำหนดเองเพียงขึ้นอยู่กับค่าตัวบ่งชี้ที่เราเลือก (ในกรณีนี้ - CCI) สภาพของ "ราคาจะเติบโต" หรือ "ราคาจะตก" คือการเขียนและการเพิ่มเข้ามาในรูปแบบในแบบนี้และไม่มีใครห้ามที่จะสร้างเงื่อนไขที่ซับซ้อนมากขึ้น ก่อนที่จะมีการทดสอบขั้นสุดท้ายนี้ขอให้ดูที่กลไกวิธีการที่ตำแหน่งเปิดและปิด กลไกและตรรกะมีการอธิบายเป็นอย่างดีอยู่แล้วในคู่มืออ้างอิง MQL5 ในการเรียนการสอนกลยุทธ์การซื้อขายส่วนของห้องสมุดมาตรฐาน สั้น ๆ ในแฟ้ม MyExpert. mq5 เรามี 2 ป้อนพารามิเตอร์ (สองตัวแปรจำนวนเต็ม): เกณฑ์เหล่านี้สำหรับการเปิดและปิดสองค่าที่จะใช้สำหรับการคำนวณถ้า (ตามรูปแบบการค้าของเรา) การค้าจะเปิดยาวหรือสั้นและปิดแล้ว เกณฑ์ถือว่าเป็นจำนวนชนิดจำนวนเต็มจาก 0 ถึง 100 สิ่งใดที่พารามิเตอร์เหล่านี้หมายความว่าอย่างไร Signal_ThresholdOpen คุ้มค่าที่จะเปิดยาวตำแหน่งหรือสั้น Signal_ThresholdClose เป็นมูลค่าที่จะปิดตำแหน่งที่เปิดก่อนหน้านี้ ค่าเหล่านี้จะถูกคำนวณในบริบทของกลไกที่เรียบง่าย แต่ที่ยอดเยี่ยมที่มีการติดกาวที่ตรรกะทั้งหมดของตัวช่วยสร้างการสร้าง EAs ทุกสัญญาณสัญญาณ __ ไฟล์.mqh (__ ย่อมาจากชื่อของตัวบ่งชี้ที่ใช้ในกรณีของเรา - MA, RSI และ CCIxx) ประกอบด้วยรูปแบบที่เราเคยเห็นมาก่อนในรายละเอียด ลองดูที่พวกเขาอีกครั้งในตัวอย่างของเรา จากไฟล์ SignalMA. mqh ที่เรามี 4 รูปแบบด้วย "น้ำหนัก" ญาติของพวกเขาสำหรับทุกรูปแบบ: และ RSI จากแฟ้ม SignalRSI. mqh ในแบบเดียวกัน: ใน "ของเราเอง" SignalCCIxx. mqh (ที่เกือบจะในทุกสำเนาของ SignalCCI. mqh) เรามีค่าเหล่านี้: เหล่านี้เป็นมาตรฐาน 0, 1, 2, 3 บวกรูปแบบของเราเองที่ 4 และ 5 ที่ผ่านมาสองค่า 80 และ 90 เมื่อเราแนบ MyExpert. ex5 ไปยังแผนภูมิหรือทดสอบใน Tester กลยุทธ์รูปแบบของการทั้งหมด สัญญาณที่เราได้เลือกไว้ (RSI, แมสซาชูเซตและ CCIxx) จะถูกคำนวณอย่างต่อเนื่อง หากหนึ่งหรือมากกว่าเงื่อนไขของรูปแบบที่ประสบความสำเร็จของสัญญาณของรูปแบบที่ถูกเปิดใช้งานสำหรับคอมพิวเตอร์ต่อไป ตัวอย่างเช่นถ้า m_pattern_4 จากไฟล์ SignalCCIxx. mqh ที่เกิดขึ้นจากเงื่อนไขที่: มันจะกลายเป็นสัญญาณการค้าที่มีศักยภาพ ในคำอื่น ๆ ถ้าค่า CCI ที่บาร์ 1 & gt; 0.0 และในเวลาเดียวกันค่าของ CCI ที่บาร์ 2 & lt; 0.0 เช่นเดียวกับในรูปที่ 5 และรูปที่ 6 สภาพที่เกิดขึ้นและ m_pattern_4 (จำนวนสัญญาณ 4) ถูกเปิดใช้งาน ค่าน้ำหนักที่เราตั้งค่าสำหรับสัญญาณของกลยุทธ์ CCIxx ของเรานี้จะมีค่าเท่ากับค่าสัมบูรณ์ของ 80 แต่มันก็จะถือว่า -80 ในกรณีของ "โหวตราคาที่จะตก" กรณีและ 80 สำหรับกรณีที่ "โหวตว่า ราคาจะเติบโต " "การลงคะแนนเสียงที่จะราคาตก" เพียงแค่ใส่เครื่องหมายลบกับค่าเดิมของน้ำหนักของรูปแบบ หากว่าสภาพของ m_pattern_4 ที่จะประสบความสำเร็จการค้าจะเปิดเฉพาะในกรณีที่: จำนวนสัญญาณ 4 (m_pattern_4) เป็นสัญญาณเดียวที่สภาพเป็นจริง (สัญญาณการเปิดใช้งาน) และมันก็มาถึงเป้าหมายของ Signal_ThresholdOpen (ที่ค่าของมันคูณด้วยค่าสัมประสิทธิ์ถึงและแซงค่า Signal_ThresholdOpen) จำนวนสัญญาณ 4 ถึงเป้าหมายของ Signal_ThresholdOpen ในขณะที่การแข่งขันกับสัญญาณอื่น ๆ ของคู่ของตัวเองของกลยุทธ์ CCIxx ("การออกเสียงลงคะแนนในราคาที่จะตก" สัญญาณ / patters ของกลยุทธ์ CCIxx) และการแข่งขันกับสัญญาณอื่น ๆ ทั้งหมดของตัวชี้วัดอื่น ๆ (สัญญาณ RSI และสัญญาณ MA) ทิศทางตรงข้าม (ในกรณีนี้ทิศทางที่ตรงข้ามเป็นทิศทางระยะสั้นเพราะเรากำลังวิเคราะห์ m_pattern_4 เกี่ยวกับ "การออกเสียงลงคะแนนในราคาที่จะเติบโต") ที่ ดังนั้นเราจึงสามารถพิจารณารูปแบบที่เป็นคู่แข่งทุกคนในกลุ่ม 2: วัวสัญญาณและสัญญาณหมี เมื่อรูปแบบเหล่านี้ / สัญญาณของทิศทางเดียวกัน ("โหวตว่าราคาจะเติบโต") ที่ประสบความสำเร็จ (เปิดใช้งาน) พวกเขาจะสรุปกับแต่ละอื่น ๆ และผลรวมที่มีการเปรียบเทียบกับค่า Signal_ThresholdOpen หากไม่มีตำแหน่งที่เปิดหรือผลรวมเปรียบเทียบกับค่า Signal_ThresholdClose ในกรณีที่ตำแหน่งตรงข้ามก่อนหน้านี้ (ในตัวอย่างนี้ตำแหน่งสั้น) m_pattern_4 SignalCCIxx. mqh ของมีค่าของ: 80 ในกรณีของ "ราคาเติบโต" สภาพ -80 ในกรณีของ "ราคาตก" สภาพ สมมติว่าทุกรูปแบบอื่น ๆ ของสัญญาณทั้งหมด (SignalRSI. mqh, SignalMA. mqh และ 0,1,2,3 และ 5 รูปแบบของการ SignalCCIxx. mqh) ได้รับค่าของ 0 ที่เป็นเหมือน "คู่แข่งสัญญาณ" จะออกจาก "เกม" และคู่แข่งเพียงสองคน m_pattern_4 - หนึ่งสำหรับการซื้อและขาย ดังนั้นเราจึงมีเพียงการทำงาน m_pattern_4 เพราะมันมีค่าที่แตกต่างจาก 0, คือ 80 และสำหรับ RSI จากแฟ้ม SignalRSI. mqh ในทางเดียวกัน: ใน "ของเราเอง" SignalCCIxx. mqh (ที่เกือบจะในทุกสำเนาของ SignalCCI. mqh) เรามีค่าเหล่านี้: ในตอนต้นของบทความที่เราได้เพิ่มบรรทัดเหล่านี้: เรามุ่งเน้นตัวแปร Signal_CCIxx_Weight ที่มีค่า 0.8 Signal_ThresholdOpen จะประสบความสำเร็จ (เรียก) เมื่อค่าเกณฑ์ถึง ค่าที่คำนวณด้วยวิธีนี้: มันเป็น "โหวตราคาที่จะเติบโต" เพราะขั้นตอนวิธีจับ "ราคาที่เพิ่มขึ้น" สัญญาณ (m_pattern_4 ของ SignalCCIxx) และมีค่าเป็น 80 ถ้าสมมติมันจับ "โหวตว่าราคาจะลดลง" (m_pattern_4 ของ SignalCCIxx) มีค่าเป็น -80 สำหรับ "ล้มราคา" อัลกอริทึมเพียงแค่ใส่เครื่องหมายลบกับค่ารูปแบบ เผื่อว่ากรณีของ "โหวตราคาที่จะตก" การคำนวณเป็นเหมือนต่อไปนี้: -64 - & gt; 64 (มูลค่าที่แน่นอน) เป็นความแรงของสัญญาณสำหรับ "โหวตราคาที่จะตก" ความแรงของสัญญาณจะแสดงเสมอในค่าสัมบูรณ์ในขณะที่ค่าของตำแหน่งสั้นนำหน้าด้วยเครื่องหมายลบและค่าของตำแหน่งยาว - ด้วยเครื่องหมายบวก ลองกลับไปเป็นตัวอย่างข้างต้นของตำแหน่งยาวที่มีมูลค่า 64 ประสบความสำเร็จและความแรงของสัญญาณ 64 ถ้าไม่มีตรงข้ามอื่น ๆ (มีเครื่องหมายลบ) สัญญาณ (m_pattern_N ของ Signal__) ที่แข่งขันที่ Signal_ThresholdOpen ที่มีค่า 40 จะประสบความสำเร็จเพราะความแรงของสัญญาณยาว 64 และระดับ 40 ของ Signal_ThresholdOpen จะประสบความสำเร็จและทะลุ 24 (40 + 24 = 64) ตั้งแต่ Signal_ThresholdOpen ได้รับถึงตำแหน่งที่เปิดยาว ตัวอย่างเช่นถ้าเราตั้งค่า 0.4 ที่ Signal_CCIxx_Weight ไม่มีระยะยาวจะเปิดเนื่องจาก: และระดับ 40 (Signal_ThresholdOpen) ไม่ถึงเพราะ 32 & lt; 40 จึงไม่มีตำแหน่งที่จะเปิดยาว ตัวอย่างการตั้งค่าของค่าข้างต้น (ค่าทั้งหมด 0 ยกเว้น 80 m_pattern_4 ของ SignalCCIxx. mqh) ถูกนำมาใช้เพียงเพื่อความไร้สาระที่จะให้เราเข้าใจเหตุผลที่ดีที่อยู่เบื้องหลังตัวช่วยสร้างการและระบบการทำงานของน้ำหนักและเกณฑ์ ในการเขียนโปรแกรมปกติท​​ี่คุณจะกำหนดน้ำหนักที่ต้องการให้กับแต่ละ m_pattern_N ของทุก Signal__ หากคุณกำหนดค่า 0 ถึงรูปแบบมันก็หมายความว่ารูปแบบนี้จะไม่ถูกนำมาใช้ ถ้าเราจะเปลี่ยนค่าในตัวอย่างข้างต้นอีก (มีพารามิเตอร์ทั้งหมดตั้งค่าเป็น 0 ยกเว้น m_pattern_4 ของ SignalCCIxx. mqh) กล่าวว่า m_pattern_1 ของ SignalRSI. mqh 100 การเปลี่ยนแปลงการคำนวณเพื่อให้ตอนนี้เรามีคู่แข่งที่ 4: m_pattern_4 (กระทิง) และ m_pattern_4 (หมี) จากไฟล์ SignalCCIxx. mqh ค่าของ 80 -80 ตามลำดับ m_pattern_1 (กระทิง) และ m_pattern_1 (หมี) จากไฟล์ SignalRSI. mqh ค่า 100 และ -100 ตามลำดับ ดังนั้นเราจะมี 4 ชุดเป็นไปได้: ค่าบวกของ 67 ฐานะ Long เปิดเพราะ Signal_ThresholdOpen มีมูลค่า 40 จะประสบความสำเร็จและทะลุ ฐานะ Long ภายหลังปิดให้บริการเมื่อ Signal_ThresholdClose ที่มีค่า 60 จะประสบความสำเร็จและค้นพบโดยค่าสัมบูรณ์ของกรณี D = = -67 | 67 | (ค่าสัมบูรณ์) เพราะความแข็งแรงของกรณีที่ดีในค่าสัมบูรณ์ 67 & gt นั้น 60 (นั่นคือเกณฑ์ของ Signal_ThresholdClose) ที่ ค่าลบ -3 ไม่มีตำแหน่งสั้นจะเปิดเพราะ Signal_ThresholdOpen ด้วยค่าตัว 40 นั้นไม่สามารถทำได้และค้นพบโดยกรณี B คุ้มค่าแน่นอน: -3 กลายเป็น 3 เมื่อเราพิจารณาค่าสัมบูรณ์คู่แข่งเพื่อคำนวณ "ความแรงของสัญญาณ" และ 3 & lt; 40 (ค่าสัญญาณที่จะเปิดตำแหน่ง) ไม่มีการเปิดตำแหน่งสั้นและเห็นได้ชัดว่ามีการคำนวณที่ไม่มีการปิดตำแหน่งสั้น ค่าบวก 3 ไม่มีตำแหน่งที่จะเปิดยาวเพราะ Signal_ThresholdOpen ด้วยค่าตัว 40 นั้นไม่สามารถทำได้และค้นพบโดยมูลค่าของกรณี C ตั้งแต่วันที่ 3 & lt นั้น 40 (ค่าสัญญาณที่จะเปิดตำแหน่ง) ไม่มีการเปิดตำแหน่งที่มีความยาวและเห็นได้ชัดมีการคำนวณที่ไม่มีการปิดระยะยาว ค่าลบ -67 ตำแหน่งสั้นเปิดเพราะ Signal_ThresholdOpen มีมูลค่า 40 จะประสบความสำเร็จและค้นพบโดยความแรงของสัญญาณที่คำนวณเพียงกับค่าสัมบูรณ์ของ -67 ที่ 67 และ 67 & gt; 40 ตำแหน่งสั้น ๆ หลังจากนั้นจะปิดเมื่อ Signal_ThresholdClose ด้วยค่าตัว 60 จะประสบความสำเร็จและค้นพบโดยมูลค่าของกรณี = 67 ตั้งแต่ 67 (ความแข็งแรงของกรณี A) & gt; 60 (นั่นคือเกณฑ์ของ Signal_ThresholdClose) ที่ ในคำอื่น ๆ สำหรับการเปิดตำแหน่งสั้นเป็นครั้งแรกที่เราต้องระบุทิศทางเพราะค่าลบของสัญญาณแล้วค่าลบจะกลายเป็นค่าสัมบูรณ์คู่แข่งเพื่อคำนวณความแรงของสัญญาณที่จะนำมาเปรียบเทียบกับค่า Signal_ThresholdOpen เพื่อดูว่า อดีต & gt; = หลัง ปิดระยะยาวจะดำเนินการในลักษณะคล้ายแรกเราพิจารณาค่าลบที่จะปิดตำแหน่งยาว (ในทางตรงกันข้ามค่าสำหรับการปิดตำแหน่งสั้นเป็นบวก) แล้วนี้ค่าลบจะกลายเป็นค่าสัมบูรณ์ที่จะนำมาเปรียบเทียบกับ Signal_ThresholdClose เพื่อดูว่าอดีต & gt; = หลัง สำหรับการเปิดตำแหน่งที่ยาวและปิดตำแหน่งสั้นการคำนวณที่จะมีขึ้นในตัวเลขบวก (มีสัญญาณใด ๆ กับเครื่องหมายลบ) จึงไม่จำเป็นที่จะต้องพิจารณาค่าที่แน่นอนสำหรับการคำนวณ เปิดสถานะ Long ถูกเรียกโดยเป็นค่าบวกของความแรงของสัญญาณและปิดตำแหน่งสั้นจะถูกเรียกโดยเป็นค่าบวกของความแรงของสัญญาณ ครั้งแรกที่ได้รับการพิจารณาเครื่องหมายบวกและเครื่องหมายลบที่จะเปิดยาวหรือเปิดสถานะ Short และปิดสั้นหรือปิดสถานะ Long ตามลำดับ จากนั้นเราได้คำนวณค่าที่แน่นอนของพวกเขาสำหรับการเปรียบเทียบกับค่าเกณฑ์ของ Signal_ThresholdOpen และ Signal_ThresholdClose ที่คำนวณเสมอกับสัญญาณบวก (ไม่มีสัญญาณเชิงลบสำหรับ Signal_ThresholdOpen และ Signal_ThresholdClose) ตำแหน่งรายละเอียด Let 's ยังคงล้วงลึกลงไปในรายละเอียดของตำแหน่ง: ซื้อขายปกติ ตำแหน่งที่เปิดและปิดแล้ว หลังจากนั้นตำแหน่งที่ไม่ได้เปิดทันที การกลับตำแหน่ง ตำแหน่งที่เปิดแล้วปิดแล้วเปิดอีกครั้งในทิศทางที่ตรงข้าม ฐานะ Long เปิดในกรณีที่: