MetaTrader 5 - Examples. Creating Multi-Currency Multi-System Expert Advisor ผมเชื่อว่ามีผู้ค้าไม่มากนักที่ค้าสัญลักษณ์ทางการค้ามากกว่าหนึ่งและใช้กลยุทธ์หลายวิธีวิธีนี้ไม่เพียง แต่ช่วยให้คุณสามารถเพิ่มผลกำไรของคุณได้ ลดความเสี่ยงในการเบิกถอนอย่างมีนัยสำคัญเมื่อมีการจัดการเงินที่มีประสิทธิภาพเมื่อสร้าง Expert Advisor ขั้นตอนแรกที่เป็นธรรมชาติในการตรวจสอบประสิทธิภาพของกลยุทธ์ของโปรแกรมคือการเพิ่มประสิทธิภาพเพื่อกำหนดพารามิเตอร์การป้อนข้อมูลที่ดีที่สุดโดยกำหนดค่าพารามิเตอร์ Expert Advisors จะพร้อมใช้งานทางเทคนิค สำหรับการซื้อขายอย่างไรก็ตามคำถามนี้จะให้คำตอบที่สำคัญไม่ว่าจะเป็นอะไรคำถามที่ว่าผลการทดสอบน่าจะเป็นอย่างไรหากผู้ประกอบการค้ารายย่อยสามารถใส่กลยุทธ์ทั้งหมดของเขาเข้าด้วยกันในที่ปรึกษาผู้เชี่ยวชาญเฉพาะรายได้ตระหนักว่าการลดลงของสัญลักษณ์หรือกลยุทธ์ต่างๆอาจทับซ้อนกันและทำให้เกิดผลรวมที่น่ากลัว การเบิกใช้หรือแม้กระทั่งการเรียกมาร์จินบางครั้งอาจมาเป็นความประหลาดใจที่น่ารังเกียจบทความนี้นำเสนอแนวคิด การสร้างที่ปรึกษาผู้เชี่ยวชาญหลายสกุลเงินหลายระบบซึ่งจะช่วยให้เราสามารถหาคำตอบสำหรับคำถามที่สำคัญนี้ได้ 1 โครงสร้างของที่ปรึกษาผู้เชี่ยวชาญโดยทั่วไปแล้วโครงสร้างของที่ปรึกษาผู้เชี่ยวชาญมีดังต่อไปนี้ 1 โครงสร้างของ multi-system Expert Advisor ซึ่งคุณสามารถดูได้โปรแกรมจะขึ้นอยู่กับ for loop กลยุทธ์แต่ละตัวจะถูกจัดเรียงไว้ในลูปที่แต่ละ iteration มีหน้าที่ในการซื้อขายสัญลักษณ์แต่ละตัวแยกกันที่นี่คุณสามารถจัดเรียง loops ได้ไม่ จำกัด จำนวนกลยุทธ์ สิ่งสำคัญคือเพื่อให้คอมพิวเตอร์ของคุณมีทรัพยากรเพียงพอในการประมวลผลโปรแกรมดังกล่าวคุณควรระลึกไว้เสมอว่าอาจมีตำแหน่งเดียวสำหรับสัญลักษณ์ซื้อขายใน MetaTrader 5 ตำแหน่งดังกล่าวหมายถึงผลรวมของจำนวนที่ซื้อและขายก่อนหน้านี้ ผลของการทดสอบหลายกลยุทธ์สำหรับหนึ่งสัญลักษณ์จะไม่เหมือนกันกับผลรวมของการทดสอบแยกกันของกลยุทธ์เดียวกันสำหรับสัญลักษณ์เดียวกันสำหรับการพิจารณาอย่างใกล้ชิดของโครงสร้างของผู้เชี่ยวชาญ เราจะใช้กลยุทธ์ 2 แบบซึ่งแต่ละ Trading มีสัญลักษณ์ 2 ตัวขอให้ถามราคาถึงแถบล่างของตัวบ่งชี้ Bollinger Bands ที่คำนวณจากราคาปิดราคาเสนอราคาต่ำสุดถึงแถบล่างของตัวบ่งชี้ Bollinger Bands ที่คำนวณจากราคาเสนอสูงราคาเสนอขาย ราคามาถึงแถบด้านบนของตัวบ่งชี้ Bollinger Bands ที่คำนวณจากราคาปิดสูงราคา Ask ถึงแถบด้านบนของตัวบ่งชี้ Bollinger Bands ที่คำนวณจากราคาต่ำการ จำกัด การเรียกใช้งานทำได้เพียงข้อตกลงเดียวเท่านั้นที่สามารถทำงานบนแถบใดก็ได้ ปิดการทำกำไรและปิดการซื้อขายก่อนหน้านี้ใกล้เคียงกับราคาปิดก่อนหน้านี้ใกล้เคียงกับราคาตลาดล่าสุดปิดด้วย Stop Loss หรือ Take Profit ปิดการซื้อขายก่อนหน้านี้ใกล้เคียงราคาปิดถึงระดับต่ำสุดก่อนปิดท้ายด้วย Stop Loss หรือ Take Profit ลดลงเพียงข้อตกลงเดียวเท่านั้น จะถูกดำเนินการในแถบใดก็ได้รับเป็นอิสระจากเห็บใหม่สำหรับสัญลักษณ์ที่ปรึกษาผู้เชี่ยวชาญจะได้รับการทดสอบหรือที่จะค้าก็จะแนะนำให้ใช้ความสนุกสนาน OnTimer ction สำหรับการซื้อขายในโหมดหลายสกุลเงินสำหรับวัตถุประสงค์นี้เมื่อ Initializing Expert Advisor เราระบุความถี่ของการสร้างเหตุการณ์สำหรับการเรียกโปรแกรมคำนวณโดยใช้ฟังก์ชัน EventSetTimer และเมื่อ deinitialization เราใช้ฟังก์ชัน EventKillTimer เพื่อบอก terminal เพื่อหยุดการสร้าง ของ events. Instead ของ EventSetTimer คุณยังสามารถใช้ EventSetMillisecondTimer ที่ความถี่มีการตั้งค่าที่ถูกต้องเพื่อมิลลิวินาที แต่คุณไม่ควรใช้ในทางที่ผิดโดยการเรียกใช้โปรแกรมบ่อยเกินไปการเข้าถึงบัญชีการตั้งค่าตำแหน่งและสัญลักษณ์รวมทั้งฟังก์ชันการซื้อขายเราจะใช้ CAccountInfo CPositionInfo CSymbolInfo และคลาส CTrade ตามลำดับให้ s รวมไว้ใน Expert Advisor เนื่องจาก Expert Advisor ใช้สำหรับลูปเราจำเป็นต้องสร้างอาร์เรย์สำหรับพารามิเตอร์ภายนอก Let s สร้าง constants เท่ากับจำนวนของสัญลักษณ์แต่ละตัว จากนั้นเราจะสร้างพารามิเตอร์ภายนอกโดยใช้ค่าคงที่เราจะกำหนดขนาดของอาร์เรย์ที่จะใช้ร่วมกัน pied นอกจากนี้เรายังสร้างตัวบ่งชี้การจัดการและตัวแปรอื่น ๆ ทั่วโลกตัวอย่างเช่นสำหรับสัญลักษณ์ของกลยุทธ์ด้านล่างนี้มีความเป็นไปได้ในการปิดการซื้อขายสัญลักษณ์บางอย่างเราได้สร้างตัวแปรบูลีน IsTradeA0 ซึ่งจะถูกวางไว้ตั้งแต่ต้น of for loops.2 การเริ่มต้นของ Expert Advisor ก่อนอื่นให้ค่าที่จำเป็นสำหรับกลยุทธ์ทั้งหมดเช่น leverage เนื่องจาก leverage ใช้กับบัญชีการค้าและไม่มีอะไรเกี่ยวข้องกับกลยุทธ์หรือสัญลักษณ์ไม่จำเป็นต้องมี คัดลอกค่าไปยังอาร์เรย์แล้วเราจะคัดลอกตัวแปรภายนอกไปยังอาร์เรย์หากพารามิเตอร์ภายนอกใด ๆ ถูกกำหนดโดยชนิดที่จะต้องมีการแปลงไปใช้อีกอันหนึ่งซึ่งสามารถทำได้ในวิธีที่สะดวกกว่าเมื่อคัดลอกไปยังอาร์เรย์ในกรณีนี้ เราจะเห็นว่า BBPeriodA0 ถูกสร้างขึ้นเป็น uint เพื่อป้องกันไม่ให้ผู้ใช้ตั้งค่าเป็นค่าลบที่นี่เราแปลงเป็น int และคัดลอกไปยังอาร์เรย์ที่ถูกสร้างขึ้นเป็น int มิฉะนั้นคอมไพเลอร์จะให้คำเตือนถ้าคุณพยายามที่ แทรกพารามิเตอร์ประเภท uint ในตัวบ่งชี้ตัวชี้ให้ดูเพิ่มเติมว่าสัญลักษณ์ที่มีการซื้อขายมีอยู่ใน Market Watch หรือไม่และมีการใช้งานมากกว่าหนึ่งครั้งภายในหนึ่งกลยุทธ์หากเลือกสัญลักษณ์ถูกต้องให้ตรวจสอบข้อผิดพลาดของพารามิเตอร์อินพุท แต่ละตัวสร้างตัวบ่งชี้จับรับข้อมูลที่จำเป็นสำหรับการคำนวณจำนวนมากและถ้าจำเป็นให้ทำสิ่งอื่นตามที่กำหนดโดยกลยุทธ์ที่กำหนดเราจะใช้การดำเนินการดังกล่าวข้างต้นภายในห่วงแล้วตั้งค่าพารามิเตอร์สำหรับ การดำเนินการซื้อขายของกลยุทธ์ A โดยใช้วัตถุ TradeA ของคลาส CTrade ขั้นตอนเดียวกันจะถูกทำซ้ำสำหรับแต่ละยุทธศาสตร์ i e. Copy ตัวแปรภายนอกไปยังอาร์เรย์ตรวจสอบว่ามีการเลือกสัญลักษณ์อย่างถูกต้องหรือไม่ตรวจสอบข้อผิดพลาด, ตัวบ่งชี้ที่ตั้งไว้, คำนวณข้อมูลสำหรับ มากและสำหรับทุกอย่างที่จำเป็นสำหรับการกำหนดกลยุทธ์กำหนดพารามิเตอร์สำหรับการดำเนินงานการซื้อขายสุดท้ายมันจะดีเพื่อตรวจสอบว่าหนึ่งและสัญลักษณ์เดียวกันจะใช้ในหลายกลยุทธ์ตัวอย่างสำหรับ มีสองยุทธศาสตร์ด้านล่างนี้ 3 Trading For Loops กรอบการทำงานของลูปภายในฟังก์ชัน OnTimer มีดังต่อไปนี้หากที่ปรึกษาผู้เชี่ยวชาญด้านสัญลักษณ์เดียวที่ใช้กลยุทธ์เดียวมีเงื่อนไขที่จำเป็นต้องหยุดการคำนวณทั้งหมดในภายหลัง โอเปอเรเตอร์คืนในกรณีของเราเราจำเป็นต้องยกเลิกการทำซ้ำในปัจจุบันและดำเนินการต่อไปซ้ำสัญลักษณ์ถัดไปสำหรับวัตถุประสงค์นี้ดีที่สุดคือใช้ตัวดำเนินการต่อถ้าคุณต้องการเพิ่มผู้เชี่ยวชาญด้านกลยุทธ์หลายกลยุทธ์โดยการเพิ่มกลยุทธ์ กับลูปสำหรับที่มีเงื่อนไขสำหรับการสิ้นสุดของการคำนวณที่ตามมาทั้งหมดคุณสามารถใช้รูปแบบต่อไปนี้หลังจากสร้างกรอบการทำงานของลูปสำหรับเราจะแทรกรหัสดังกล่าวจาก EAs อื่น ๆ และแทนที่ตัวแปรบางอย่างด้วยองค์ประกอบอาร์เรย์ ตัวอย่างเช่นเราเปลี่ยนตัวแปรที่กำหนดไว้ล่วงหน้า Symbol เป็น SymbolA i หรือ Point to Point i i ค่าของตัวแปรเหล่านี้เป็นลักษณะของสัญลักษณ์ที่กำหนดและถูกคัดลอกไปยังอาร์เรย์เมื่อเริ่มต้นสำหรับ instanc e ให้ s หาค่าตัวบ่งชี้เพื่อดำเนินการปิดตำแหน่งซื้อเราจะเขียนโค้ดต่อไปนี้การเปิดใช้ตำแหน่งซื้อโปรดจำไว้ว่าให้ยุติการสร้างเหตุการณ์ตัวตั้งเวลาและลบตัวบ่งชี้ที่จัดการที่ deinitialization.4 ผลการทดสอบเมื่อผู้เชี่ยวชาญ ที่ปรึกษามีความพร้อมเราทดสอบแต่ละกลยุทธ์และสัญลักษณ์แต่ละตัวแยกกันและเปรียบเทียบผลการทดสอบกับผลการทดสอบที่ได้จากการทดสอบกลยุทธ์และสัญลักษณ์ทั้งหมดพร้อม ๆ กันสันนิษฐานว่าผู้ใช้ระบุค่าที่เหมาะสมของพารามิเตอร์การป้อนค่าแล้ว คือการตั้งค่าของ Strategy Tester. Fig 2 การตั้งค่า Tester ของยุทธศาสตร์ผลลัพธ์สำหรับกลยุทธ์ A, EURUSD. Fig 3 ผลการทดสอบสำหรับกลยุทธ์ A, EURUSD. Results สำหรับกลยุทธ์ A, GBPUSD. Fig 4 ผลการทดสอบสำหรับกลยุทธ์ A, GBPUSD. ผลสำหรับ กลยุทธ์ B, AUDUSD. Fig 5 ผลการทดสอบสำหรับกลยุทธ์, AUDUSD. ผลลัพธ์สำหรับกลยุทธ์ B, EURJPY. Fig 6 ผลการทดสอบสำหรับกลยุทธ์ EURJPY ผลการทดสอบสำหรับกลยุทธ์และสัญลักษณ์ทั้งหมด Fig 7 ผลการทดสอบสำหรับกลยุทธ์และสัญลักษณ์ทั้งหมด ดังนั้นเราจึงมีโครงสร้างที่สะดวกและเรียบง่ายของที่ปรึกษาผู้เชี่ยวชาญหลายสกุลเงินซึ่งคุณสามารถวางแทบทุกกลยุทธ์ของคุณได้เช่นที่ปรึกษาผู้เชี่ยวชาญช่วยให้คุณสามารถประเมินประสิทธิภาพของการซื้อขายได้ดีขึ้นโดยใช้กลยุทธ์ทั้งหมดของคุณ นอกจากนี้ยังอาจเป็นประโยชน์ในกรณีที่มีเพียงหนึ่งที่ปรึกษาผู้เชี่ยวชาญเท่านั้นที่ได้รับอนุญาตให้ทำงานในบัญชีที่กำหนดรหัสที่มาของที่ปรึกษาผู้เชี่ยวชาญจะแนบมากับบทความเพื่อช่วยในการศึกษาข้อมูลข้างต้น 14 ตุลาคม 2554 เพิ่มขึ้นเมื่อวันที่ 29 กุมภาพันธ์ 2555 เพิ่มเติม จุดที่ต้องพิจารณา 1 ระบบนี้ขึ้นอยู่กับการเติมเงินให้ถูกต้องในราคาเปิดเพื่อให้ได้การเติมดังกล่าวต้องใช้ฟีดข้อมูลความล่าช้าขั้นต่ำที่มีคุณภาพและทักษะการเขียนโปรแกรมขั้นสูงเพื่อใช้ระบบอัตโนมัติทางการค้า 2 เมื่อตั้งราคาเริ่มต้นที่ต่ำกว่าราคาเปิดที่พยายาม เพื่อปรับปรุงประสิทธิภาพของระบบล้มเหลวอย่างน่าสังเวชแม้การปรับปรุงราคาโดยเพียงร้อยละฆ่าระบบนี้แสดงให้เห็นว่าส่วนใหญ่ของกำไรมาจากวันที่เปิดราคาเท่ากับ t o รายวันต่ำคือราคาเคลื่อนขึ้นจากการเปิดและไม่เคยลดลงด้านล่างนี้แน่นอนเป็นที่ชัดเจนเพื่อยืนยันนี้ฉันเพิ่มเงื่อนไขการทดสอบนี้จะมองไปข้างหน้าเพื่อไม่รวมวันที่เปิด Low. Buy ซื้อและไม่ O L นี้ฆ่าระบบและพิสูจน์ให้เห็นว่าส่วนใหญ่ของกำไรมาจากวันที่ OL เพื่อยืนยันเพิ่มเติมนี้ฉันเพิ่มสภาพตรงข้ามซื้อและ O L. This ให้กำไรเกือบอนันต์และพิสูจน์ให้เห็นว่ากำไรมากที่สุดมาจากวันที่ราคา ย้ายขึ้นทันทีจากการเปิดและไม่เคยส่งกลับด้านล่างมันพยายามที่จะปรับปรุงราคารายการเป็นข้อผิดพลาดอย่างใดอย่างหนึ่งควรใส่ในชุดหยุด 1-2 ct เหนือราคาเปิดนี้จะขจัดวันเมื่อราคาลดลงและไม่เคยกลับมาปรับปรุงนี้ ประสิทธิภาพการทำงานอย่างมีนัยสำคัญ 3 ระบบนี้มีการซื้อขายรูปแบบการตอบสนองของพ่อค้าหัวเข่ารูปแบบดังกล่าวมักจะจมน้ำตายโดยการซื้อขายปริมาณมากดังนั้นระบบนี้จะทำงานได้ดีขึ้นเมื่อคุณเลือก tickers ที่มีปริมาณระหว่าง 500,000 ถึง 5,000,000 หุ้นวันนี้ยังช่วยเพิ่มต่อ อย่างมีนัยสำคัญการเพิ่มองค์ประกอบสองข้อดังกล่าวส่งผลให้เส้นโค้งส่วนได้เสียดีกว่าที่แสดงไว้ด้านล่างขออภัยฉันไม่มีเวลาเตรียมเอกสารด้านบนในรายละเอียดยิ่งขึ้นโชคดีโพสต์นี้แสดงแนวคิดการซื้อขายแบบ Long-only ที่ง่ายมากที่ซื้อที่ ร้อยละต่ำกว่าต่ำสุดเมื่อวานนี้ s และออกในวันถัดไปเปิด s ในขณะที่บางครั้งมันอาจจะยากที่จะได้รับราคาที่แน่นอนเปิดการทำกำไรสูงของระบบนี้จะทำให้ผู้สมัครที่ดีสำหรับการทดลองเพิ่มเติมระบบทำงานได้ดีกับ Watchlists เช่น N100, SP500, SP1500, Russel 1000 ฯลฯ ประสิทธิภาพการทำงานของ Russel 1000 โดยมีตำแหน่งเปิดสูงสุดที่ตั้งไว้ที่ 1 สำหรับช่วง 12 10 2003 ถึง 12 10 2011 ดูเหมือนว่านี้บางส่วนของ Watchlists อื่น ๆ ให้ผลกำไรน้อยกว่า แต่นี้ มาพร้อมกับลด DDs ค่าคอมมิชชั่นถูกตั้งค่าเป็น 0 005 ต่อหุ้นไม่มี margin ใช้ไม่มีการจัดอันดับที่ชัดเจนคือใช้ tickers มีการซื้อขายตามลำดับตัวอักษรใน Watchlist นี้อาจดูแปลก แต่มีนัยสำคัญย้อนกลับการเรียงลำดับระบบนี้ ล้มเหลวนี้อาจหมายความว่าเนื่องจากปัญหาการสแกนตามเวลาจริงสัญลักษณ์ที่ระบุไว้ที่ด้านบนของประเภทนี้อาจมีการซื้อขายที่แตกต่างจากที่ระบุไว้ด้านล่างโปรดให้ความสนใจกับสภาพคล่องที่คุณอาจต้องการซื้อขายมากกว่าหนึ่งตำแหน่งและรายการหลุดออก ค่อนข้างเสี่ยงฟรี แต่ออกอาจ DDs ปัญหามีความสำคัญ แต่อาจจะชดเชยกับรายการเรียลไทม์ที่ดีขึ้นและออกเมื่อการซื้อขายโดยอัตโนมัติก็อาจเป็นไปได้ที่จะวางใบสั่งซื้อ OCA DAY-LMT สำหรับสัญญาณทั้งหมดและเพียงแค่รอดูสิ่งที่ เติมเงินตั้งแต่ออกจะยากกว่ารายการที่คุณอาจต้องการสำรวจกลยุทธ์ทางออกอื่น ๆ ค่าเริ่มต้นของค่าความสม่ำเสมอจะถูกเลือกเพียงจากหมวกเกือบแน่นอนคุณสามารถเพิ่มประสิทธิภาพหรือปรับพวกเขาแบบไดนามิกสำหรับแต่ละ tickers ผมสั้นทดสอบระบบนี้ในโหมดเดินไปข้างหน้า และผลที่ได้ทำกำไรได้สำหรับทุกปีที่ผ่านการทดสอบยกเว้นตัวเลขของหุ้นซื้อขายพารามิเตอร์ปรากฏไม่สำคัญมากเกินไปเพิ่มประสิทธิภาพ doesn t ดูเหมือนปัญหาในกรณีนี้รหัสด้านล่าง i s ง่ายมากและต้องการคำอธิบายไม่กี่อย่างไรก็ตามสิ่งสำคัญคือต้องเข้าใจว่าระบบนี้มีขนาดเล็กขอบโดยการซื้อขายที่เปิดและโดยการคำนวณ TrendMA ใช้ราคาเปิดเดียวกันบางคนอาจตีความนี้เป็นอนาคตรั่วไหล แต่ถ้าคุณค้าระบบนี้ ในเวลาจริงไม่ใช่หลายคนไม่ทราบว่าถ้าคุณค้าที่เปิดคุณยังสามารถใช้ราคานี้ในการคำนวณของคุณตราบเท่าที่คุณทำพวกเขาในเวลาจริงนี่คือที่ AmiBroker และเทคโนโลยีสามารถให้ขอบ หากคุณ Ref กลับ TrendMA โดยหนึ่งแถบระบบยังคงทำกำไรได้มาก แต่ DDs เพิ่มขึ้นสำหรับบาง Watchlists ถ้าคุณใช้เงินลงทุนคงที่แตกต่างกันเล็กน้อยกระบวนการซื้อขายจะเริ่มสแกนก่อนที่ตลาดเปิดและลบ tickers ที่มีราคาดังนั้น ระยะไกลที่พวกเขาไม่น่าจะตอบสนอง OpenThresh ดังนั้นคุณอาจเริ่มสแกน 1000 สัญลักษณ์ แต่อย่างรวดเร็วจำนวนสแกนจะหดไปเพียงโหลหรือมากกว่า tickers เมื่อคุณเข้าใกล้ 9 30am จริงของคุณ t ime scan จะเร็วมากและคุณจะสามารถสั่งซื้อ LMT ของคุณได้อย่างใกล้ชิดกับ Open ซึ่งคุณอาจจะสามารถปรับปรุงราคา Open แม้ว่าจะมีบางคนดูรหัสด้านล่างและพบว่าไม่มีอะไรผิดพลาดผลกำไร ดูเหมือนว่าค่อนข้างสูงสำหรับเช่นระบบที่เรียบง่ายกรุณารายงานข้อผิดพลาดที่คุณอาจเห็น. Filed โดยเฮอร์แมนที่ 7 03:00 ภายใต้ไอเดียความคิดเห็นการทดลองใช้ปิดระบบ Eap Gap-Trading Portfolio 1 กันยายน 2011 ความคิดนี้ถูกโพสต์ 161332 ในรายการ AmiBroker หลัก เมื่อวันที่ 3 กรกฎาคม 2011 มีความคิดเห็นที่ยอดเยี่ยมมากมายในรายการและถ้าคุณสนใจในการทำงานในระบบนี้คุณทำดีเพื่ออ่านพวกเขาทั้งหมดก่อนที่จะเริ่มต้นหลังจากโพสต์ฉันพบจำนวนโพสต์บนเว็บคุยความคิดการค้านี้บางอ้าง ที่จะซื้อขายระบบที่คล้ายกันกับความสำเร็จที่ดีฉันเรียกระบบนี้เป็นระบบ Gap Trading แต่อาจเป็นบิตของการเรียกชื่อผิดหมายถึงการพลิกกลับอาจจะมีการจัดหมวดหมู่ที่ดีกว่า Googling เพราะจะทำให้คุณได้รับความนิยมมากขึ้นในระบบที่คล้ายกันต่อไปนี้ กี่ li nks. It ดูเหมือนจะเป็นความคิดการค้าอย่างเป็นธรรมพูดกันอย่างแพร่หลายและฉันขอแนะนำให้คุณจะทำบาง Googling ด้วยตัวคุณเองเพื่อเรียนรู้ล่าสุดเป็นผู้ใช้ Amibroker คุณมีเครื่องมือที่ดีกว่าผู้ค้ามากที่สุดและคุณมีโอกาสที่ดีกว่ามากที่สุดมากับ รูปแบบที่ทำงานอาจมีผลกำไรน้อยมากและมีจำนวนมากของรหัสเพิ่มเติมได้รับรางวัล t เป็นโครงการ quicky บางคนเห็นว่าระบบนี้จะไม่ทำงานในการซื้อขายจริงในขณะที่พวกเขาอาจจะเหมาะสมคนอื่นบอกแผนการเช่นนี้ งานที่ฉันไม่ได้เสร็จสิ้นระบบและสามารถเรียกร้องให้ทราบว่าจะสามารถซื้อขายได้หรือไม่ระบบซื้อในอัตราร้อยละต่ำกว่าเมื่อวานนี้ต่ำในการสั่งซื้อ LMT และออกในวันเดียวกันที่ Close. Filed โดยเฮอร์แมน เวลา 6 โมงเย็นน. ตามไอเดียความคิดเห็นเกี่ยวกับการทดลองใช้งานบนไอเดียการซื้อขายช่องว่าง EOD ยาวเพียงอย่างเดียวใช้เกณฑ์การตั้งค่าขนาดเล็กเพื่อสแกนหาค่าสต็อคของฉันค่าเริ่มต้นของ MICD ฉันต้องการค้นหาฮิสโตแกรม 4 และบาร์ที่ 1 สำหรับการซื้อสัญญาณที่ฉันมี ฮิสโตแกรมตั้งค่าเป็นสีแดงสำหรับสีน้ำเงินและสีน้ำเงินขึ้นฉัน c เห็นได้ชัดว่า MACD อยู่เหนือ Zero Line RSI เหนือ 30 ระบบนี้อยู่บนพื้นฐานของเทรนด์เทรดการซื้อเมื่อ pullback เมื่อตลาดยังคงมีแนวโน้มเพิ่มขึ้นหากต้องการสแกนหา MACD Trend setups.1 แทรกสูตรต่อไปนี้ลงในแผนภูมิ 2 เรียกใช้งาน Scan in AA ใช้ SMACDTrend ด้วยสัญลักษณ์ทั้งหมด n วันสุดท้าย n 1 และซิงค์แผนภูมิในการเลือกเป็นการตั้งค่าสต็อคที่ตรงตามเกณฑ์จะมีการรายงานในรายการผลลัพธ์หมายเหตุบางรูปแบบของกฎการตั้งค่าสามารถกำหนดสัญญาณที่ค่อนข้างหายากและในฐานข้อมูลขนาดเล็ก เป็นไปได้ว่าจะไม่มีการตั้งค่าใด ๆ ในวันใดวันหนึ่งดังนั้นจะไม่มีการรายงานหุ้นโดยการสแกน 3 คลิกที่สัญลักษณ์ใด ๆ ในบานหน้าต่างผลลัพธ์เพื่อดูแผนภูมิสำหรับสัญลักษณ์ดังกล่าวในพื้นหลังหมายเหตุในตัวอย่างนี้ a. ฐานข้อมูลการฝึกอบรมที่มีข้อมูลไม่เกิน 5 11 2007 เท่านั้นการใช้ความคิดในการจัดวางโดย protraderincments และสูตรโดย Bill WaveMechanic จัดทำโดย brianz เวลา 11.00 น. ภายใต้ไอเดียความคิดเห็นจากการทดลองบน MACD Trend System ในวันที่ 14 ตุลาคม 2550 จัดทำโดย brianz เวลา 10.43 น. ภายใต้ไอเดีย ความเห็นที่ไม่พึงประสงค์บนระบบการซื้อขายวันที่ 15 สิงหาคมนี้เป็นฉบับแรกในซีรีส์ปิด KISS ทำให้คุณเข้าใจได้ง่ายแนวคิดการซื้อขายโง่ ๆ เพื่อให้คุณเล่นกับแนวคิดระบบทั้งหมดที่นำเสนอนี้ไม่ได้รับการยืนยันยังไม่สมบูรณ์และอาจมีข้อผิดพลาด พวกเขามีวัตถุประสงค์เพื่อแสดงรูปแบบที่เป็นไปได้สำหรับการสำรวจต่อไปเช่นเคยคุณได้รับเชิญให้แสดงความคิดเห็นและหรือเพิ่มความคิดของคุณเองเพื่อ series. I ชอบระบบเรียลไทม์ที่การค้าได้อย่างรวดเร็วโดยอัตโนมัติและปราศจากตัวชี้วัดแบบดั้งเดิม พวกเขาไม่ควรมีพารามิเตอร์ที่ดีที่สุด แต่ฉันอาจจะไม่สามารถบรรลุวัตถุประสงค์นี้ได้ทุกระบบจะง่ายกว่าที่จะมีบางอย่างที่ใช้ค่าเฉลี่ยที่เรียบง่ายหรือฟังก์ชันประเภท HHV LLV ระบบแรกที่แสดงด้านล่างเป็นสำเนาของระบบสาธิต ฉันใช้เพื่อพัฒนา Trade-Automation routines ที่อื่นในเว็บไซต์นี้ Gap-Trading เวลาจริงเพื่อดูวิธีการทำงานนี้คุณควร Backtest มันในข้อมูล 1 นาทีที่มีระยะเวลาในช่วง 5-60 นาที imp แรกของคุณ ภาวะเศรษฐกิจตกต่ำอาจเป็นได้ว่าผลกำไรเหล่านี้เป็นเพียงเพราะตลาดขึ้น แต่ความจริงที่ว่าผลกำไรระยะยาวและระยะสั้นจะประมาณเท่ากันแนะนำให้มีมากขึ้นเพราะ 98 ของการค้าทั้งหมดตกอยู่ระหว่าง 9 30 น. และ 10 30 น., ประเภทนี้ เป็นระบบที่ดีหากคุณเพียงแค่ต้องการทำการค้าในช่วงเวลาสั้น ๆ ในแต่ละวันซึ่งจะช่วยลดความเสี่ยงจากการเปิดรับข่าวสารจากตลาดและช่วยให้คุณมีเวลามากขึ้นในการเพลิดเพลินไปกับกิจกรรมอื่น ๆ การตรวจสอบนี้ในการเฝ้าติดตามของแต่ละ NASDAQ-100 เป็นระยะเวลา 15 นาทีแสดงผลกำไร ด้านล่างสำหรับรอบระยะเวลาตั้งแต่ 1 มีนาคม 2007 ถึง 17 สิงหาคม 2007 ชื่อ Ticker ถูกละเว้นเพื่อให้แผนภูมิมีขนาดกะทัดรัดกราฟแสดงแถบกำไรสุทธิสำหรับแต่ละ ticker ที่ทดสอบค่าเฉลี่ยการเปิดรับแสงสำหรับระบบนี้ประมาณ 15 ดังนั้นคุณอาจสามารถทำการค้าพอร์ตการลงทุนได้ เพื่อเพิ่มผลกำไรและราบรื่นเส้นส่วนได้เสียระวังในรูปแบบดิบ drawdowns เป็นที่ยอมรับไม่ได้และอาจมีข้อ จำกัด ปริมาณสำหรับ tickers หลายเนื่องจากระบบนี้มีการเปิดรับต่ำอาจเป็นผู้สมัครสำหรับ sc ตลาด anning และ RARs การจัดอันดับพอร์ตการลงทุนจะเป็นตัวบ่งชี้ถึงผลกำไรสูงสุดที่อาจเกิดขึ้นหากประสบความสำเร็จในการเพิ่มการเปิดรับใกล้ระดับ 100 อย่างไรก็ตามการเคลื่อนไหวของราคาจาก ticker ต่างๆอาจมีความสัมพันธ์กันและการค้าจาก ticker ต่างๆอาจทับซ้อนกัน ในเวลาเดียวกันจะเป็นการยากที่จะเพิ่มความสามารถในการรับแสงโดย Al Venosa จัดทำโดยเฮอร์แมนเวลา 1 49 น. ภายใต้ไอเดียความคิดเห็นจากการทดลองบน KISS-001 Intraday Gap Trading เมื่อ August 17, 2007.You ได้รับเชิญให้ส่งลิงค์ เพื่อความคิดระบบในความคิดเห็นเพื่อโพสต์นี้กลยุทธ์การซื้อขาย Gap Stockcharts Intraday การย้าย Crossover เฉลี่ยกับตำแหน่ง NeoTicker ความผันผวนของระบบ Breakout-Traders เข้าสู่ระบบเข้าสู่ระบบสิบวันสูงต่ำระบบ StockWeblog Revolving ผู้หาระบบ Alfa Traders Club Trader Club Bulletins. July 16, 2007.This หมวดหมู่สงวนไว้สำหรับระบบการซื้อขายที่ทำงานได้จริงเช่นว่าคุณมีการซื้อขายในบางช่วงเวลาหรือจะพิจารณาการซื้อขายเนื่องจากเกณฑ์สำหรับ tr ความน่าจะเป็นแตกต่างกันไปในแต่ละบุคคลและเนื่องจากระบบอาจทำงานได้หรือไม่ขึ้นอยู่กับว่าพวกเขามีการซื้อขายกันอย่างไรจะเป็นการยากที่จะแสดงผลงานที่นี่ด้วยความเคารพต่อสิ่งที่โพสต์ไว้ที่นี่ให้เปิดใจและพิจารณาว่าผู้ลงโฆษณาเห็นว่าระบบสามารถซื้อขายได้ คุณสามารถมีส่วนร่วมโดยการโพสต์ในฐานะผู้เขียนต้องลงทะเบียนหรือในความคิดเห็นในการโพสต์นี้ Filled โดยเฮอร์แมนที่ 11 14 น. ภายใต้ความเห็นที่เป็นประโยชน์กำไร Off เกี่ยวกับการแนะนำระบบการค้าการปฏิบัตินี่คือที่คุณสามารถแบ่งปันระบบการค้าที่มีกำไรเล็กน้อย นั่นคือสิ่งที่ไม่ควรมีการซื้อขายตาม แต่ศักยภาพในการแสดงศักยภาพโดยปกติแล้วจะเป็นระบบพื้นฐานที่ทำกำไรได้ แต่ประสบการณ์ที่ได้จาก 50 ระบบดังกล่าวมักจะได้รับการปรับปรุงให้ดีขึ้นโดยการเพิ่มจุดเป้าหมายการจัดการเงินเทคนิคการลงทุนเป็นต้น ความจริงก็คือในขณะที่คุณอาจไม่มีความชำนาญในการทำงานให้คนอื่นอาจเกือบทั้งหมดของเราพบความคิดของระบบการซื้อขายในหนังสือและนิตยสารที่เรานำเข้ามา AFL for evaluation ระบบเหล่านี้บางส่วนอาจมีการใช้มานานหลายปีแล้วในขณะที่คนอื่น ๆ เป็นไอเดียใหม่ ๆ หลังจากที่เขียนโค้ดไว้เกือบทุกครั้งเรารู้สึกผิดหวังและออกจากระบบการทำงานแทนการโยนงานออกไปคุณได้รับเชิญให้โพสต์ระบบที่นี่เพื่อ ให้นักพัฒนารายอื่นมีโอกาสที่จะแก้ไขปัญหานี้คุณจะได้รับเชิญให้ร่วมเป็นส่วนหนึ่งในฐานะผู้เขียนต้องลงทะเบียนหรือแสดงความคิดเห็นในบทความนี้โดย Ferman โดย Herman เวลา 11 04 น. ภายใต้ไอเดียความคิดเห็นเกี่ยวกับการทดลองใช้งานเกี่ยวกับแนวคิดระบบการซื้อขายรูปที่ 5 - ตัวอย่าง การเชื่อมต่อเชิงภาพ IV โหมด Multi-Window และระบบลำดับความสำคัญบทที่ 2 บทความแรกการเชื่อมต่อแบบกราฟิก I การจัดเตรียมโครงสร้างห้องสมุดบทที่ 1 อธิบายถึงรายละเอียดว่าห้องสมุดนี้มีไว้เพื่ออะไรคุณจะพบรายการบทความที่มีลิงก์ในตอนท้าย แต่ละบทมีคุณยังสามารถดาวน์โหลดไลบรารีเวอร์ชันสมบูรณ์ได้ในขั้นตอนปัจจุบันของการพัฒนาไฟล์จะต้องอยู่ในไดเร็กทอรีเดียวกันกับที่อยู่ใน archive. I ในบทนี้เราจะขยายการใช้ไลบรารีเพื่อสร้างอินเทอร์เฟซแบบ multi-window สำหรับแอพพลิเคชั่น MQL นอกจากนั้นเราจะพัฒนา ระบบของลำดับความสำคัญสำหรับการคลิกเมาส์ปุ่มซ้ายบนวัตถุกราฟิกโดยที่มันอาจเกิดขึ้นที่ตัวควบคุมไม่ตอบสนองต่อการกระทำของผู้ใช้โหมด Multi - Window ให้เราพิจารณาโหมดหลายหน้าต่างของส่วนติดต่อแบบกราฟิกของห้องสมุด ภายใต้การพัฒนาจนถึงตอนนี้การแจงนับ ENUMWINDOWTYPE ระบุสองตัวระบุสำหรับ WMAIN หลักและหน้าต่างโต้ตอบ WDIALOG โหมดหน้าต่างแบบเดียวเป็นโหมดใช้งานเฉพาะหลังจากที่เราแนะนำการเพิ่มบางอย่างการเปิดใช้งานโหมดหลายหน้าต่างจะเกี่ยวข้องกับการสร้างและการเพิ่ม ของจำนวนรูปแบบการควบคุมที่ต้องการไปยังฐานในคลาสหลักสำหรับการจัดการเหตุการณ์ CWndEvents สร้างเขตข้อมูลสำหรับจัดเก็บดัชนีของการใช้งานปัจจุบัน window. Let ให้เราดูว่ามีการระบุดัชนีของหน้าต่างที่ใช้งานอยู่ตัวอย่างเช่นผู้ใช้กำหนดการเปิดหน้าต่างโต้ตอบ WDIALOG ไปยังปุ่มบางปุ่มเมื่อกดปุ่มเหตุการณ์ที่กำหนดเอง ONCLICKBUTTON จะถูกสร้างขึ้นเหตุการณ์นี้สามารถติดตามได้ ในตัวจัดการเหตุการณ์ CProgram OnEvent ของคลาสที่กำหนดเองนอกจากนี้เราจะใช้วิธี CWindow Show ของแบบฟอร์มที่จะแสดงในไลบรารีนี้ไม่เพียงพอในการใช้ไลบรารีและเราจะแนะนำการเพิ่มเติมที่จำเป็นเหตุการณ์ที่กำหนดเองจะต้อง ถูกส่งจากวิธีการแสดง CWindow ที่จะระบุว่ามีการเปิดหน้าต่างเพื่อให้ค่าพารามิเตอร์ของระบบอินเทอร์เฟซแบบกราฟิกต้องได้รับการอัปเดตเหตุการณ์ดังกล่าวต้องใช้ตัวระบุแยกต่างหากให้เราเรียกว่า ONOPENDIALOGBOX และวางไว้ในไฟล์ที่มีตัวระบุห้องสมุดอื่น ๆ located. Add บรรทัดที่ส่วนท้ายสุดของวิธีการแสดง CWindow ตามที่แสดงในรหัสด้านล่างนี้เป็นรุ่นที่สั้นลงของวิธีการสำหรับบัตรประจำตัวที่ชัดเจนของการได้ t initiator ตัวระบุองค์ประกอบและชื่อโปรแกรมต้องถูกส่งนอกเหนือไปจากตัวระบุเหตุการณ์เหตุการณ์นี้จะได้รับการจัดการในคลาส CWndEvents ก่อนที่จะใช้วิธีการในการจัดการเราจำเป็นต้องสร้างอีกสามวิธีในคลาส CWindow นี่คือ สองวิธีในการจัดเก็บและรับดัชนีของฟอร์มซึ่งจะเปิดหน้าต่างโต้ตอบรวมถึงวิธีการจัดการสถานะของฟอร์มดัชนีของหน้าต่างที่ใช้งานก่อนหน้านี้จะต้องถูกเก็บไว้ในขณะที่หลายหน้าต่างอาจเปิดพร้อมกัน ทำไมเมื่อปิดหน้าต่างโต้ตอบสิ่งสำคัญคือต้องทราบว่าจะต้องกลับไปที่สถานะที่ใช้งานอยู่สำหรับการจัดการสถานะของฟอร์มฟอร์มที่ปิดการใช้งานจะมีสีส่วนหัวที่ต่างกันซึ่งสามารถเปลี่ยนแปลงได้โดย ผู้ใช้สีขององค์ประกอบจะไม่เปลี่ยนเมื่อเคอร์เซอร์เมาส์โฉบเหนือรูปแบบจะถูกบล็อกเพิ่มไปที่ในขณะที่การปิดใช้งานฟอร์มจะมีการสร้างเหตุการณ์ที่กำหนดขึ้น mmunicate ว่าแบบฟอร์มถูกบล็อกและโฟกัสและสีขององค์ประกอบต้องเป็นศูนย์เมื่อแบบฟอร์มถูกบล็อคโฟกัสบนองค์ประกอบไม่ถูกติดตามในขณะเปิดหน้าต่างโต้ตอบสีขององค์ประกอบที่นำขึ้นหน้าต่าง จะเหมือนกับว่าเคอร์เซอร์ของเมาส์ยังคงโฉบอยู่เหนือมันตัวระบุ ONRESETWINDOWCOLORS จะถูกสร้างขึ้นในไฟล์สำหรับเหตุการณ์ดังกล่าววิธีการจัดการสถานะของแบบฟอร์มจะแสดงอยู่ในโค้ดด้านล่างให้เรากลับไปจัดการกับ เหตุการณ์ ONOPENDIALOGBOX ในคลาสหลักสำหรับการจัดการเหตุการณ์ของอินเทอร์เฟซแบบกราฟิก CWndEvents สร้างวิธีการ OnOpenDialogBox CWndEvents ซึ่งจะเรียกว่าใน CWndEvents ChartEventCustom ทั่วไปวิธีการสำหรับการจัดการเหตุการณ์ที่กำหนดเองทั้งหมด CWndEvents OnOpenDialogBox วิธีการเริ่มต้นด้วยการตรวจสอบที่สองสำหรับตัวระบุเหตุการณ์ และหนึ่งสำหรับชื่อโปรแกรมถ้าพวกเขาได้รับการส่งผ่านแล้วย้ำผ่านหน้าต่างทั้งหมดเพื่อหาสิ่งที่หน้าต่างที่สร้างขึ้นเหตุการณ์ตัวระบุองค์ประกอบที่เป็น c ที่ได้รับในข้อความนี้ lparam จะอำนวยความสะดวกนี้รูปแบบที่ไม่มีตัวระบุที่ตรงกันจะถูกบล็อกพร้อมกับองค์ประกอบทั้งหมดที่แนบมากับพวกเขาลำดับความสำคัญของวัตถุทั้งหมดจะถูก zeroed ด้วยความช่วยเหลือของเมธอด ResetZorders และจะไม่ตอบสนองต่อการคลิกเมาส์ซ้าย จัดเก็บดัชนีของหน้าต่างที่ใช้งานอยู่ขณะนี้เป็นดัชนีของหน้าต่างที่ใช้งานก่อนหน้านี้เปิดใช้งานฟอร์มนี้และเรียกคืนลำดับความสำคัญของการคลิกเมาส์ซ้ายเพื่อวัตถุทั้งหมดเก็บดัชนีของหน้าต่างนี้เป็น ใช้งานอยู่ในปัจจุบันแล้วทำให้องค์ประกอบทั้งหมดของฟอร์มนี้สามารถมองเห็นได้และเรียกคืนลำดับความสำคัญของการคลิกเมาส์ซ้ายละเว้นส่วนของฟอร์มเนื่องจากเป็นองค์ประกอบที่มองเห็นได้และแบบหล่นลงหน้าต่างโต้ตอบจะเปิดขึ้นเมื่อสามารถมองเห็นทิปเครื่องมือได้ เคล็ดลับเครื่องมือต้องซ่อนไว้จะไม่หายไปเองเนื่องจากรูปแบบที่แนบมาถูกบล็อกแล้วอาร์เรย์ส่วนตัวสำหรับคำแนะนำเครื่องมือถูกสร้างขึ้นก่อนหน้านี้เพื่อรองรับกรณีดังกล่าว ccess กับวิธีการขององค์ประกอบใด ๆ ในฐานสามารถได้รับในคลาสหลัก CWndEvents สำหรับการจัดการเหตุการณ์ตอนนี้เราจะไปยังที่อยู่ ONRESETWINDOWCOLORS ตัวระบุซึ่งถูกสร้างขึ้นก่อนหน้าในบทความนี้ก่อนที่จะเขียนวิธีการจัดการเหตุการณ์นี้หนึ่งมาตรฐานเพิ่มเติม วิธีเสมือนต้องถูกเพิ่มลงในคลาสพื้นฐานของซีเมนต์ขององค์ประกอบทั้งหมดซึ่งจะกำหนดไว้สำหรับ zeroing color ให้เราตั้งชื่อว่า CElement ResetColors วิธีการ ResetColors ที่มีลักษณะเฉพาะสำหรับแต่ละองค์ประกอบต้องสร้างขึ้นในคลาสที่ได้รับทั้งหมดโค้ดด้านล่างแสดงตัวอย่าง สำหรับองค์ประกอบของปุ่มไอคอน CIconButton วิธีการ ResetColors สำหรับองค์ประกอบอื่น ๆ ทั้งหมดสามารถพบได้ในไฟล์ที่แนบมากับบทความนี้ดังนั้นวิธีเสมือนในคลาสพื้นฐานขององค์ประกอบและเวอร์ชันของตัวเองในคลาสที่ได้รับจึงมีความเป็นไปได้ที่จะไม่มีสี องค์ประกอบทั้งหมดในลูปจากตัวจัดการเหตุการณ์ของไลบรารีหลักของไลบรารี CWndEvents ระบุเมธอด CWndEvents OnResetWindowColors สำหรับการจัดการ ing เหตุการณ์ ONRESETWINDOWCOLORS ค่อนข้างง่ายมองหาแบบฟอร์มที่เพิ่งถูกปิดใช้งานโดยตัวระบุองค์ประกอบที่เพิ่งได้รับในข้อความหากมีเก็บดัชนีถ้าดัชนีถูกเก็บไว้เป็นศูนย์สีขององค์ประกอบทั้งหมดในนี้ ฟอร์มรายละเอียดของวิธีการนี้สามารถพบได้ในรหัสด้านล่างเราได้ชี้แจงการเปิดหน้าต่างตอนนี้เราต้องใช้วิธีการปิดและเรียกคืนหน้าต่างที่ใช้งานก่อนหน้านี้เพื่อจัดการกับเหตุการณ์นี้เราต้องสร้างตัวระบุ ONCLOSEDIALOGBOX ใน ไฟล์ในคลาส CWindow เราใช้วิธี CWindow CloseWindow ในการปิดฟอร์มและโปรแกรมร่วมกับในวิธีนี้ส่วนที่ปิดหน้าต่างโต้ตอบ WDIALOG ไม่ได้ถูกใช้งานยังให้เราเขียนวิธีการเพิ่มเติมที่จะสร้างเหตุการณ์สำหรับ ปิดหน้าต่างโต้ตอบนอกจาก 1 ตัวระบุเหตุการณ์ข้อความจะมี 2 ตัวระบุองค์ประกอบ 3 ดัชนีของหน้าต่างที่ใช้งานก่อนหน้านี้และ 4 ข้อความของ h eader แจ้งให้เราเรียกวิธีนี้ CWindow CloseDialogBox ต่อมาเราจะใช้ในการควบคุมแบบซับซ้อนซึ่งการปิดหน้าต่างจะดำเนินการโดยองค์ประกอบอื่นที่ไม่ใช่ปุ่มปิดในคลาส CWindow วิธี CWindow CloseDialogBox จะถูกเรียกใช้ วิธี CWindow CloseWindow ดังแสดงในรูปแบบย่อของโค้ดด้านล่างเวอร์ชันสมบูรณ์สามารถพบได้ในไฟล์ที่แนบมากับบทความนี้หลังจากข้อความที่มีการระบุ ONCLOSEDIALOGBOX ถูกส่งไปแล้วจะต้องมีการติดตามและจัดการในตัวจัดการของ คลา CWndEvents สำหรับที่ให้เราเขียน CWndEvents OnCloseDialogBox วิธีการ Iterate ผ่านหน้าต่างทั้งหมดในฐานและมองหาหนึ่งที่มีตัวระบุที่ตรงกับตัวระบุในข้อความถ้าเช่นหน้าต่างพบก็จะต้องปิดการใช้งานแล้วซ่อนมัน พร้อมกับองค์ประกอบทั้งหมดที่แนบมาและเปิดใช้งานฟอร์มโดยดัชนีที่ส่งผ่านไปในข้อความหลังจากนั้นเก็บดัชนีของหน้าต่างที่ใช้งานอยู่ในปัจจุบันและเรียกคืนลำดับความสำคัญของ คลิกเมาส์ซ้ายสำหรับ elements. Now ทุกอย่างพร้อมสำหรับการทดสอบโหมดหน้าต่างหลายทดสอบ Test Mode Multi - Window สร้างสองกรณีของชั้น CWindow ใน EA ที่เราใช้สำหรับการทดสอบองค์ประกอบอินเตอร์เฟสข้อมูล ผลจะเป็นรูปแบบสามแบบในส่วนติดต่อแบบกราฟิกของ EA รูปแบบแรกจะเป็น WMAIN หลักและอีกสองคนจะมีบทบาทของหน้าต่างโต้ตอบ WDIALOG แนบหน้าต่างโต้ตอบแรกกับปุ่มใดปุ่มหนึ่งบนฟอร์มหลักสร้างปุ่มสามปุ่ม ในหน้าต่างโต้ตอบแรกและแนบหน้าต่างโต้ตอบที่สองกับหนึ่งในปุ่มที่สร้างขึ้นใหม่วิธีนี้เราจะมีสามรูปแบบเปิดพร้อมกันและมีเพียงหนึ่งในนั้นเท่านั้นที่สามารถใช้งานได้โค้ดต่อไปนี้แสดงสิ่งที่ต้องเพิ่มลงในแบบกำหนดเองของ CProgram class ของโปรแกรมประยุกต์ในขั้นตอนปัจจุบันของการพัฒนาเรียกหาวิธีการเหล่านี้ในวิธีหลักของการสร้างส่วนติดต่อแบบกราฟิกของโปรแกรมประยุกต์ภายใต้การพัฒนาต่อไปนี้เป็นรุ่นสั้นของ meth นี้ od. We จะพิจารณาวิธีการเฉพาะสำหรับหน้าต่างโต้ตอบแรกแบบฟอร์มที่สองตามที่คุณจำคุณต้องใช้วิธี CWndContainer AddWindow สำหรับการเพิ่มฟอร์มลงฐานโปรดทราบว่าพิกัดฟอร์มถูกกำหนดไว้ในโค้ดด้านล่างเป็นพิกัดเริ่มต้นคือ ศูนย์เมื่อโปรแกรมถูกโหลดลงในแผนภูมิพิกัดที่คุณพิจารณาว่าเหมาะสมจะถูกตั้งค่าในตัวอย่างนี้ค่าคือ x 1, y 20 หลังจากนั้นรูปแบบจะถูกย้ายไปแล้วระยะเวลาหรือสัญลักษณ์ของแผนภูมิสามารถ เปลี่ยนรหัสด้านล่างแสดงให้เห็นว่าแบบฟอร์มจะอยู่ที่ซึ่งเป็นครั้งสุดท้ายหากคุณต้องการให้แบบฟอร์มอยู่ในตำแหน่งที่โหลดโปรแกรมแรกในแผนภูมิจากนั้นให้นำเงื่อนไขดังกล่าวออกในตัวอย่างนี้ทั้งสามรูปแบบ the graphical interface of the program will have the same conditions. Let us arrange that the dialog forms can be moved over the chart The window type should be set as dialog WDIALOG , otherwise you will encounter incorrect work of the graphical interface Th e window icon can be redefined using the CWindow IconFile method In case of dialog windows, same icon can be used as the one of the element that brings up this window. Let me remind you about some details of how to attach controls to a certain dialog window As an example, let us consider one of the button methods designated for this form I would like to highlight only two things. You need to remember that. The element must be passed the pointer to the form to which it is to be attached. When the element pointer is saved in the base, specify the index of the form to which the element is to be attached In this case it is index 1.It is up to the developer of the application to manage the display of windows Track the pressing on any control in the event handler of the CProgram custom class and show the relevant window Assign the call of the first dialog window to the button on the main window of the EA second form , and the call of the second dialog window to the button on the first dialog win dow third form. Desired result is shown in the screenshot below Please note the ellipsis in the button names Icon Button 1 and Icon Button 6 This is a usual way of letting the user know that pressing of this element will open a dialog window. Fig 1 Testing of the multi-window mode. If you switch the symbol or the timeframe of the chart when several forms are open, you will encounter a problem Dialog windows will disappear as they are supposed to but the management will not be passed over to the main window The form will not respond to the user s actions The solution to this is simple As you remember, the CWndEvents Destroy method is called in the CProgram OnDeinitEvent method for uninitialization of the custom class The graphical interface of the application is deleted in this method The management has to be given to the main window at the moment of deleting the graphical interface Therefore, some additions must be introduced to the CWndEvents Destroy method. Set the index of the main wind ow as active. Activate the main window and deactivate the rest. Below is the code of the current version of the CWndEvents Destroy method. The first version of the multi-window mode is implemented Everything turned out to be less complicated than it could have seemed initially. Enhancement of the System of Priorities of the Left Mouse Button. Up until now, the management of priorities of the left mouse click on the interface elements has been carried out by the events with the ONOPENDIALOGBOX and ONCLOSEDIALOGBOX identifiers The reason for that was that when the next drop-down element was developed, it was up to the user to assign the priority value for each object of this element Priorities of other elements that could happen to be beneath it were taken into account However, when it came to creating complex compound controls, this system was awkward and easy to confuse To make things easier, let us create two more identifiers for such events. ONZEROPRIORITIES zeroing priorities. ONSETPRIORIT IES restoring priorities. Add them to the file. Generation of events with these identifiers must be located in the classes of the elements that are or can be drop-down ones At the current stage of development, in the present interface set, context menu is such an element Therefore, add the code to the Show and Hide methods of the CContextMenu class as shown below in the shortened versions of the code. We will receive these messages in the main class for handling all messages CWndEvents For that, we will write a separate handling method for each identifier These methods will be called in the main method for handling custom events CWndEvents ChartEventCustom. In the CWndEvents OnZeroPriorities method, iterate over all elements of the active window and zero priorities of all of them except the one with the element identifier contained in the message lparam - parameter as well as except menu items and context menus The reason why we exclude menu items and context menus is that several context m enus can be opened at the same time one from another. If the received message contains the ONSETPRIORITIES event identifier, then restore priorities of the left mouse button click for all the elements of the active window. The library for creating graphical interfaces at the current stage of development looks like in the schematic below. Fig 2 Library structure at the current stage of development. This is the final article of the fourth part of the series about graphical interfaces In the first chapter of this part, the status bar and tooltip informational interface elements were realized In the second chapter, the multi-window mode and a priority system of the left mouse click were discussed. You can find and download all the material of the first part or the series in the attached files so you can test how it works If you have questions on using the material presented in those files, you can refer to the detailed description of the library development in one of the articles from the list below or ask your question in the comments of this article. List of the articles chapters of the fourth part.
No comments:
Post a Comment