Tuesday, 11 July 2017

Ema Trading ระบบ แอฟ


วิธีเพิ่มประสิทธิภาพระบบการซื้อขายหมายเหตุ: นี่เป็นหัวข้อที่ค่อนข้างสูง โปรดอ่านบทแนะนำ AFL ก่อนหน้านี้ แนวคิดเบื้องหลังการเพิ่มประสิทธิภาพทำได้ง่าย อันดับแรกคุณต้องมีระบบการซื้อขายซึ่งอาจเป็นแบบครอสโอเวอร์เฉลี่ยที่เคลื่อนที่อย่างง่ายตัวอย่างเช่น ในเกือบทุกระบบมีพารามิเตอร์บางตัว (เป็นระยะเวลาเฉลี่ย) ที่จะตัดสินว่าระบบทำงานได้ดี (เช่นเหมาะสำหรับระยะยาวและระยะสั้น แต่จะตอบสนองต่อความผันผวนของหุ้น) การเพิ่มประสิทธิภาพเป็นกระบวนการในการค้นหาค่าที่ดีที่สุดของพารามิเตอร์เหล่านั้น (ให้ผลกำไรสูงสุดจากระบบ) สำหรับสัญลักษณ์ที่กำหนด (หรือกลุ่มของสัญลักษณ์) AmiBroker เป็นหนึ่งในไม่กี่โปรแกรมที่ช่วยให้คุณปรับระบบของคุณให้เป็นไปตามสัญลักษณ์หลาย ๆ เพื่อเพิ่มประสิทธิภาพระบบของคุณคุณต้องกำหนดจากพารามิเตอร์ไม่เกินสิบตัวที่จะปรับให้เหมาะสม คุณตัดสินใจว่าอะไรคือค่าที่อนุญาตต่ำสุดและสูงสุดของพารามิเตอร์และในสิ่งที่เพิ่มขึ้นค่านี้ควรได้รับการปรับปรุง จากนั้น AmiBroker จะทำการทดสอบระบบด้วยการใช้ค่าพารามิเตอร์ทั้งหมดที่เป็นไปได้ เมื่อกระบวนการนี้เสร็จสิ้น AmiBroker จะแสดงรายการผลการค้นหาตามกำไรสุทธิ คุณสามารถดูค่าของพารามิเตอร์การเพิ่มประสิทธิภาพที่ให้ผลลัพธ์ที่ดีที่สุด การเขียนสูตร AFL การเพิ่มประสิทธิภาพในการทดสอบหลังได้รับการสนับสนุนผ่านฟังก์ชันใหม่ที่เรียกว่าการเพิ่มประสิทธิภาพ ไวยากรณ์ของฟังก์ชันนี้มีดังนี้: การเพิ่มประสิทธิภาพตัวแปร (คำอธิบาย quot, ค่าเริ่มต้นขั้นต่ำสุดขั้นตอน) ตัวแปร - เป็นตัวแปร AFL ตามปกติที่ได้รับค่าที่ส่งคืนโดยการเพิ่มประสิทธิภาพฟังก์ชัน ด้วยฟังก์ชัน backtesting, scanning, exploration และ comentary ฟังก์ชันการเพิ่มประสิทธิภาพจะส่งกลับค่าดีฟอลต์ดังนั้นการเรียกฟังก์ชันดังกล่าวจะเทียบเท่ากับค่าเริ่มต้นตัวแปรในโหมดการปรับให้เหมาะสมประสิทธิภาพจะส่งกลับค่าต่อเนื่องตั้งแต่นาทีถึงสูงสุด (รวม) ด้วย step steping quot Descriptionquot คือสตริงที่ใช้เพื่อระบุตัวแปรการเพิ่มประสิทธิภาพและแสดงเป็นชื่อคอลัมน์ในรายการผลการเพิ่มประสิทธิภาพ ค่าดีฟอลต์คือค่าดีฟอลต์ที่เพิ่มประสิทธิภาพการทำงานของผลตอบแทนในการสำรวจ, ตัวบ่งชี้, ความเห็น, การสแกนและโหมดการทดสอบหลังปกติ min เป็นค่าต่ำสุดของตัวแปรที่ถูกปรับให้เหมาะสมสูงสุดคือค่าสูงสุดของตัวแปรที่ถูกเพิ่มประสิทธิภาพเป็นช่วงเวลาที่ใช้สำหรับการเพิ่ม ค่าจากนาทีถึงสูงสุด AmiBroker สนับสนุน 64 สายสูงสุดเพื่อเพิ่มประสิทธิภาพการทำงาน (ดังนั้นไม่เกิน 64 ตัวแปรการเพิ่มประสิทธิภาพ) โปรดทราบว่าถ้าคุณใช้การเพิ่มประสิทธิภาพอย่างละเอียดถี่ถ้วนแล้วเป็นความคิดที่ดีจริงๆในการ จำกัด จำนวนตัวแปรการเพิ่มประสิทธิภาพให้เหลือเพียงไม่กี่ การเรียกใช้การเพิ่มประสิทธิภาพสูงสุด (สูงสุด - นาที) ลูปเพิ่มประสิทธิภาพและการเรียกหลายครั้งเพื่อเพิ่มประสิทธิภาพการคูณจำนวนการเรียกใช้ที่ต้องการ ตัวอย่างเช่นการเพิ่มประสิทธิภาพสองพารามิเตอร์โดยใช้ 10 ขั้นตอนจะต้องมีการเพิ่มประสิทธิภาพ 1010 100 ลูป เรียกฟังก์ชันเพิ่มประสิทธิภาพการทำงานเพียงครั้งเดียวต่อตัวแปรที่จุดเริ่มต้นของสูตรของคุณเนื่องจากการโทรแต่ละครั้งสร้างลูปเพิ่มประสิทธิภาพใหม่การเพิ่มประสิทธิภาพของหลายสัญลักษณ์ได้รับการสนับสนุนอย่างเต็มที่โดย AmiBroker Maximum search space คือชุดการค้นหา 2 64 (10 19 10,000,000,000,000,000,000) 1. การเพิ่มประสิทธิภาพตัวแปรเดี่ยว: sigavg Optimize (Signal (12. 26. sigarg), MACD (12. 26)) ขาย Cross (สัญญาณ 12. 26. sigarg) MACD (12.26) 2. การเพิ่มประสิทธิภาพสองตัวแปร (เหมาะสำหรับการสร้างแผนภูมิ 3D) ต่อการเพิ่มประสิทธิภาพ (ต่อ 2. 5 50 1) การเพิ่มประสิทธิภาพระดับ (ระดับ 2. 2. 150. 4) ซื้อ Cross (CCI (ต่อ), - Level) Sell (MACD Slow. 26. 17. 30. 1) sigavg Optimize (Signal) (เพิ่มประสิทธิภาพสูงสุด (MACD Slow. 26. 17. 30. 1) sigavg Optimize โดยเฉลี่ย 9. 2. 20. 1) ซื้อ Cross (MACD (mfast, mslow) สัญญาณ (Mfast, mslow, sigavg)) Sell Cross (สัญญาณ (Mfast, mslow, sigarg), MACD (mfast, mslow)) หลังจากเข้า f ormula เพียงแค่คลิกที่ปุ่มเพิ่มประสิทธิภาพในหน้าต่างการวิเคราะห์ quotAutomatic Analysis AmiBroker จะเริ่มทดสอบตัวแปรผสมผสานที่เป็นไปได้ทั้งหมดและรายงานผลในรายการ หลังจากการเพิ่มประสิทธิภาพเสร็จสิ้นแล้วรายการผลการค้นหาจะเรียงลำดับตามกำไรสุทธิ เมื่อคุณสามารถเรียงลำดับผลการค้นหาตามคอลัมน์ใด ๆ ในรายการผลการค้นหาได้ค่าพารามิเตอร์ที่เหมาะสมที่สุดสำหรับการเบิกเงินกู้ต่ำสุดจำนวนการซื้อขายที่ต่ำที่สุดปัจจัยการทำกำไรที่ใหญ่ที่สุดโอกาสทางการตลาดต่ำสุดและผลตอบแทนรายปีที่มีความเสี่ยงสูงสุด คอลัมน์สุดท้ายของรายการผลลัพธ์แสดงค่าของตัวแปรการเพิ่มประสิทธิภาพสำหรับการทดสอบที่กำหนด เมื่อคุณตัดสินใจว่าชุดพารามิเตอร์ใดเหมาะสมกับความต้องการของคุณสิ่งที่ดีที่สุดที่คุณต้องทำก็คือแทนที่ค่าเริ่มต้นในการเพิ่มประสิทธิภาพการเรียกฟังก์ชันด้วยค่าที่เหมาะสม ในขั้นตอนปัจจุบันคุณต้องพิมพ์ด้วยมือในหน้าต่างแก้ไขสูตร (พารามิเตอร์ที่สองของการเรียกฟังก์ชันเพิ่มประสิทธิภาพ) การแสดงแผนภูมิการเพิ่มประสิทธิภาพแบบ 3 มิติในการแสดงผลกราฟการเพิ่มประสิทธิภาพ 3D คุณต้องใช้การเพิ่มประสิทธิภาพสองตัวแปรก่อน การเพิ่มประสิทธิภาพสองตัวแปรต้องการสูตรที่มี 2 Optimize () function calls ตัวอย่างสูตรการเพิ่มประสิทธิภาพสองตัวแปรมีลักษณะดังนี้: ต่อการเพิ่มประสิทธิภาพ (ต่อ 2. 5 50 1) ระดับการเพิ่มประสิทธิภาพ (ระดับ 2. 2. 150. 4) ซื้อ Cross (CCI (ต่อ), Level) ขาย Cross (ระดับ, CCI (ต่อ)) หลังจากป้อนสูตรคุณต้องคลิกปุ่ม quotedizequot เมื่อการเพิ่มประสิทธิภาพเสร็จสมบูรณ์แล้วคุณควรคลิกที่ลูกศรลงบนปุ่มเพิ่มประสิทธิภาพและเลือกดูกราฟการเพิ่มประสิทธิภาพ 3D ในไม่กี่วินาทีพล็อตพื้นผิวสามมิติที่มีสีสันจะปรากฏในหน้าต่างมุมมองกราฟ 3D ตัวอย่างแผนภูมิ 3D ที่สร้างโดยใช้สูตรข้างต้นแสดงไว้ด้านล่าง แผนภูมิ 3D แสดงค่าของกำไรสุทธิเทียบกับตัวแปรการเพิ่มประสิทธิภาพโดยค่าเริ่มต้น คุณสามารถวางแผนแผนภูมิพื้นผิว 3 มิติสำหรับคอลัมน์ใดก็ได้ในตารางผลการเพิ่มประสิทธิภาพ เพียงคลิกที่ส่วนหัวของคอลัมน์เพื่อจัดเรียง (ลูกศรสีน้ำเงินจะปรากฏขึ้นเพื่อระบุว่าผลการเพิ่มประสิทธิภาพถูกจัดเรียงตามคอลัมน์ที่เลือก) แล้วเลือกดูกราฟการเพิ่มประสิทธิภาพ 3D อีกครั้ง การแสดงผลว่าพารามิเตอร์ระบบของคุณมีผลต่อประสิทธิภาพการทำงานของการซื้อขายอย่างไรคุณสามารถตัดสินใจได้ว่าค่าพารามิเตอร์ใดที่จะสร้างผลกำไรได้อย่างรวดเร็วและทำให้ประสิทธิภาพของระบบเพิ่มขึ้นอย่างมาก การตั้งค่าที่มีประสิทธิภาพคือส่วนต่างๆในกราฟ 3D ที่แสดงการเปลี่ยนแปลงอย่างค่อยเป็นค่อยไปมากกว่าการเปลี่ยนแปลงอย่างฉับพลันในพล็อตพื้นผิว แผนภูมิการเพิ่มประสิทธิภาพ 3D เป็นเครื่องมือที่ยอดเยี่ยมในการป้องกันการโค้งงอ Curve-fitting (หรือ over-optimization) เกิดขึ้นเมื่อระบบมีความซับซ้อนมากกว่าที่ต้องการและความซับซ้อนทั้งหมดนั้นมุ่งเน้นไปที่สภาวะตลาดที่อาจไม่เกิดขึ้นอีก การเปลี่ยนแปลงที่รุนแรง (หรือแหลม) ในแผนภูมิการเพิ่มประสิทธิภาพ 3D แสดงพื้นที่การเพิ่มประสิทธิภาพมากเกินไปอย่างชัดเจน คุณควรเลือกภูมิภาคพารามิเตอร์ที่สร้างที่ราบกว้างและกว้างบนแผนภูมิ 3 มิติสำหรับการซื้อขายในชีวิตจริงของคุณ พารามิเตอร์ที่สร้างกำไรจะไม่สามารถทำงานได้อย่างน่าเชื่อถือในการซื้อขายจริง โปรแกรมดูแผนภูมิ 3 มิติควบคุมโปรแกรมดูกราฟ 3 มิติของ AmiBrokers มีความสามารถในการรับชมทั้งหมดพร้อมกับการหมุนเวียนภาพและภาพเคลื่อนไหวเต็มรูปแบบ ตอนนี้คุณสามารถดูผลลัพธ์ของระบบได้จากมุมมองที่เป็นไปได้ทุกอย่าง คุณสามารถควบคุมตำแหน่งและพารามิเตอร์อื่น ๆ ของแผนภูมิโดยใช้เมาส์แถบเครื่องมือและแป้นพิมพ์ลัดไม่ว่าคุณจะพบอะไรง่ายขึ้น ด้านล่างนี้คุณจะพบรายการ - เพื่อหมุน - กดปุ่มซ้ายเมาส์และย้ายไปในทิศทาง XY - เพื่อซูมเข้าซูมออก - กดปุ่มเมาส์ขวาและย้ายไปในทิศทาง XY - เพื่อย้าย (แปล) - กดปุ่มเมาส์ซ้ายและปุ่ม CTRL และ ย้ายไปในทิศทาง XY - เพื่อ Animate - ค้างไว้ปุ่มเมาส์ซ้ายลากอย่างรวดเร็วและปล่อยปุ่มในขณะที่ลากพื้นที่ - เคลื่อนไหว (หมุนอัตโนมัติ) ซ้าย - ซ้ายปุ่มลูกศร ซ้ายขวาแป้นลูกศร - หมุนสีเขียว ขวาขึ้นแป้นลูกศร - หมุนมุม ขึ้นลงแป้นลูกศร - หมุนมุม ลด NUMPAD (PLUS) - ใกล้ (ซูมเข้า) NUMPAD - (MINUS) - ไกล (ซูมออก) NUMPAD 4 - เลื่อนไปทางซ้าย NUMPAD 6 - เลื่อนไปทางขวา NUMPAD 8 - เลื่อนขึ้น NUMPAD 2 - เลื่อนลง PAGE UP - ระดับน้ำขึ้น PAGE DOWN - ระดับน้ำลดลงการเพิ่มประสิทธิภาพแบบอัจฉริยะ (ไม่ครอบคลุม) AmiBroker มีการเพิ่มประสิทธิภาพอย่างชาญฉลาด (ไม่ใช่ส่วนที่ละเอียดถี่ถ้วน) นอกเหนือจากการค้นหาทั่วไปและละเอียดถี่ถ้วน การค้นหาที่ไม่ครอบคลุมจะมีประโยชน์หากจำนวนชุดพารามิเตอร์ทั้งหมดของระบบการซื้อขายที่ระบุมีขนาดใหญ่เกินไปที่จะเป็นไปได้สำหรับการค้นหาที่ละเอียดถี่ถ้วน การค้นหาอย่างละเอียดสมบูรณ์ดีตราบเท่าที่เหมาะสมกับการใช้งาน สมมติว่าคุณมีพารามิเตอร์ 2 พารามิเตอร์ตั้งแต่ 1 ถึง 100 (ขั้นตอนที่ 1) Thats 10000 ชุด - สมบูรณ์แบบสำหรับการค้นหาที่ละเอียดถี่ถ้วน ตอนนี้มี 3 พารามิเตอร์ที่คุณได้รับ 1 ล้านชุดแล้วยังคงเป็นข้อตกลงสำหรับการค้นหาที่ละเอียดถี่ถ้วน (แต่อาจยาวได้) ด้วยพารามิเตอร์ 4 ตัวคุณมี 100 ล้านชุดและมี 5 พารามิเตอร์ (1..100) คุณมีชุดค่าผสม 10 พันล้านชุด ในกรณีนี้อาจใช้เวลานานเกินไปในการตรวจสอบทั้งหมดและนี่คือพื้นที่ที่วิธีการค้นหาสมาร์ทไม่ครบถ้วนสามารถแก้ปัญหาที่ไม่สามารถแก้ไขได้ในเวลาอันสมควรโดยใช้การค้นหาที่ละเอียดถี่ถ้วน ต่อไปนี้เป็นคำแนะนำที่ง่ายที่สุดในการใช้เครื่องมือเพิ่มประสิทธิภาพแบบไม่ใช้ความระมัดระวังแบบใหม่ (ในกรณีนี้คือ CMA-ES) 1. เปิดสูตรของคุณในตัวแก้ไขสูตร 2. เพิ่มบรรทัดเดียวนี้ที่ด้านบนของสูตร: OptimizerSetEngine (quotcmaequot) คุณสามารถใช้ quotspsoquot หรือ quottribquot ได้ที่นี่ 3. (ไม่บังคับ) เลือกเป้าหมายการเพิ่มประสิทธิภาพของคุณใน Automatic Analysis, Settings, quotWalk - แท็บถัดไปการเพิ่มประสิทธิภาพฟิลด์เป้าหมาย ถ้าคุณข้ามขั้นตอนนี้จะเพิ่มประสิทธิภาพสำหรับ CARMDD (ผลตอบแทนรายปีผสมโดยการเบิกสูงสุด) ตอนนี้ถ้าคุณเรียกใช้การเพิ่มประสิทธิภาพโดยใช้สูตรนี้จะใช้เครื่องมือเพิ่มประสิทธิภาพ CMA-ES ที่มีวิวัฒนาการ (ไม่ถี่ถ้วน) วิธีการทำงานการเพิ่มประสิทธิภาพเป็นกระบวนการในการหาค่าต่ำสุด (หรือสูงสุด) ของฟังก์ชันที่ให้ ระบบการซื้อขายใด ๆ สามารถถือเป็นหน้าที่ของอาร์กิวเมนต์บางจำนวน อินพุทเป็นพารามิเตอร์และข้อมูลใบเสนอราคา ผลลัพธ์คือเป้าหมายการเพิ่มประสิทธิภาพของคุณ (พูด CARMDD) และคุณกำลังมองหาฟังก์ชั่นสูงสุดที่กำหนดไว้ อัลกอริธึมการเพิ่มประสิทธิภาพอัจฉริยะบางส่วนขึ้นอยู่กับลักษณะ (พฤติกรรมของสัตว์) - อัลกอริธึม PSO หรือกระบวนการทางชีววิทยา - อัลกอริทึมทางพันธุกรรมและบางส่วนขึ้นอยู่กับแนวคิดทางคณิตศาสตร์ที่ได้จากมนุษย์ - CMA-ES อัลกอริทึมเหล่านี้ใช้ในหลายพื้นที่รวมถึงการเงิน ใส่คำสั่ง quotPSO financequot หรือ quotCMA-ES financequot ใน Google และคุณจะพบข้อมูลจำนวนมาก วิธีการที่ไม่ครอบคลุม (หรือ quotsmartquot) จะเป็นตัวเลือกที่เหมาะสมที่สุดในระดับโลกหรือระดับท้องถิ่น เป้าหมายก็คือการค้นหาโลกหนึ่ง แต่ถ้ามีจุดยอดที่คมชัดเพียงอย่างเดียวจากการผสมผสานพารามิเตอร์ zillions วิธีการที่ไม่ละเอียดอ่อนอาจไม่สามารถหาจุดยอดเดี่ยวนี้ได้ แต่การสร้างรูปแบบนี้เป็นรูปแบบของผู้ค้าที่มองเห็นเพียงจุดเดียว (เปราะบางเกินไป) และไม่สามารถทำซ้ำได้ในการซื้อขายจริง ในขั้นตอนการเพิ่มประสิทธิภาพเราค่อนข้างจะมองหาที่ราบสูงที่มีค่าคงที่และเป็นพื้นที่ที่มีการใช้วิธีฉลาด เป็นขั้นตอนวิธีที่ใช้โดยการค้นหาที่ไม่ครอบคลุมจะมีลักษณะดังนี้: a) optimizer สร้างกลุ่มเริ่มต้น (โดยปกติจะสุ่ม) บางชุดพารามิเตอร์ b) backtest ดำเนินการโดย AmiBroker สำหรับพารามิเตอร์แต่ละชุดจากประชากร c) ผลการ backtests เป็น ประเมินผลตามลอจิกของอัลกอริทึมและสร้างประชากรใหม่ขึ้นอยู่กับวิวัฒนาการของผลการค้นหา d) ถ้าค้นพบสิ่งใหม่ ๆ ที่ดีที่สุด - บันทึกและไปที่ขั้นตอนข) จนกว่าจะถึงเกณฑ์ที่หยุดได้เกณฑ์การหยุดแบบตัวอย่าง ได้แก่ a) ถึงที่ระบุ การทำซ้ำสูงสุด b) หยุดถ้าช่วงของค่าเป้าหมายที่ดีที่สุดของรุ่น X ล่าสุดเป็นศูนย์ c) หยุดถ้าเพิ่ม 0.1 เวกเตอร์การเบี่ยงเบนมาตรฐานในทิศทางหลักแกนใด ๆ จะไม่เปลี่ยนค่าของมูลค่าเป้าหมาย d) อื่น ๆ ใช้สมาร์ท (non - หมดจด) ใน AmiBroker คุณต้องระบุเครื่องมือเพิ่มประสิทธิภาพที่คุณต้องการใช้ในสูตร AFL โดยใช้ฟังก์ชัน OptimizerSetEngine ฟังก์ชันจะเลือกเครื่องมือเพิ่มประสิทธิภาพภายนอกที่กำหนดโดยชื่อ AmiBroker ปัจจุบันมีเครื่องยนต์ 3 เครื่อง: Standard Particle Swarm Optimizer (quotspsoquot), Tribes (quottribquot) และ CMA-ES (quotcmaequot) - ชื่อในเครื่องหมายวงเล็บจะถูกใช้ในสาย OptimizerSetEngine นอกเหนือจากการเลือกเครื่องมือเพิ่มประสิทธิภาพคุณอาจต้องการตั้งค่าพารามิเตอร์ภายในของพารามิเตอร์เหล่านี้ เมื่อต้องการใช้ฟังก์ชัน OptimizerSetOption ฟังก์ชัน OptimizerSetOption (quotnamequot, value) ฟังก์ชันตั้งค่าพารามิเตอร์เพิ่มเติมสำหรับเครื่องมือเพิ่มประสิทธิภาพภายนอก พารามิเตอร์ขึ้นอยู่กับเครื่องยนต์ เครื่องมือเพิ่มประสิทธิภาพทั้งสามตัวที่มาพร้อมกับ AmiBroker (SPSO, Trib, CMAE) สนับสนุนสองพารามิเตอร์ ได้แก่ quotRunsquot (จำนวนการเรียกใช้) และ quotMaxEvalquot (การประเมินผลสูงสุด (การทดสอบ) ต่อการรันครั้งเดียว) พฤติกรรมของแต่ละพารามิเตอร์ขึ้นอยู่กับเครื่องยนต์ดังนั้นค่าเดียวกันจึงอาจและโดยปกติจะให้ผลต่างกับเครื่องยนต์ที่แตกต่างกันที่ใช้ ความแตกต่างระหว่างรันและ MaxEval มีดังนี้ การประเมินผล (หรือการทดสอบ) คือการทำ backtest แบบเดี่ยว (หรือการประเมินค่าฟังก์ชันวัตถุประสงค์) RUN ทำงานได้เต็มประสิทธิภาพของอัลกอริทึม (หาค่าที่ดีที่สุด) - มักเกี่ยวข้องกับการทดสอบจำนวนมาก (การประเมิน) การเรียกใช้แต่ละครั้งจะเริ่มต้นกระบวนการเพิ่มประสิทธิภาพใหม่ทั้งหมดตั้งแต่เริ่มต้นใหม่ (จำนวนประชากรสุ่มเริ่มต้นใหม่) ดังนั้นการดำเนินการแต่ละครั้งอาจนำไปสู่การหา maxmin ท้องถิ่นที่แตกต่างกัน (ถ้าไม่พบ global หนึ่ง) ดังนั้นพารามิเตอร์ Runs กำหนดจำนวนของอัลกอริธึมที่ตามมาทำงาน MaxEval คือจำนวนการประเมินสูงสุด (bactests) ในการทำงานครั้งเดียว หากปัญหามีความเรียบง่ายและการทดสอบ 1,000 ครั้งสามารถหาค่าสูงสุดได้สูงสุด 5x1000 มีแนวโน้มที่จะหาค่าสูงสุดของโลกได้เนื่องจากมีโอกาสน้อยที่จะติดขัดในค่าสูงสุดของท้องถิ่นเนื่องจากการเริ่มต้นทำงานต่อไปจะเริ่มต้นจากจำนวนประชากรสุ่มเริ่มต้นที่แตกต่างกันการเลือกค่าพารามิเตอร์สามารถ เป็นเรื่องยุ่งยาก ขึ้นอยู่กับปัญหาที่เกิดขึ้นภายใต้การทดสอบความซับซ้อน ฯลฯ ฯลฯ วิธีใดก็ตามที่ไม่ครบถ้วนไม่ได้ทำให้เกิดการสุ่มตัวอย่างไม่ได้ทำให้คุณมั่นใจในการค้นหา maxmin ทั่วโลกโดยไม่คำนึงถึงจำนวนการทดสอบหากมีขนาดเล็กกว่าที่ละเอียดถี่ถ้วน คำตอบที่ง่ายที่สุดคือ ระบุเป็นจำนวนมากของการทดสอบตามที่เหมาะสมสำหรับคุณในแง่ของเวลาที่ต้องกรอก อีกหนึ่งคำแนะนำง่ายๆคือการคูณด้วยจำนวน 10 การทดสอบที่มีการเพิ่มมิติใหม่ ที่อาจนำไปสู่การประเมินค่าเกินจำนวนที่ต้องใช้ แต่ค่อนข้างปลอดภัย เครื่องยนต์ที่จัดส่งได้รับการออกแบบให้ง่ายต่อการใช้งานดังนั้นจึงมีการใช้ค่าเริ่มต้นอัตโนมัติอย่างเหมาะสมเพื่อให้การเพิ่มประสิทธิภาพโดยทั่วไปสามารถทำได้โดยไม่ต้องระบุอะไร (ยอมรับค่าเริ่มต้น) สิ่งสำคัญคือต้องเข้าใจว่าวิธีการเพิ่มประสิทธิภาพแบบสมาร์ททั้งหมดทำงานได้ดีที่สุดในช่องว่างพารามิเตอร์อย่างต่อเนื่องและฟังก์ชั่นวัตถุประสงค์ที่ราบรื่น ถ้าพื้นที่พารามิเตอร์เป็นขั้นตอนวิวัฒนาการแบบไม่ต่อเนื่องอาจมีปัญหาในการหาค่าที่เหมาะสม โดยเฉพาะอย่างยิ่งสำหรับพารามิเตอร์ไบนารี (onoff) - ไม่เหมาะสำหรับวิธีการค้นหาใด ๆ ที่ใช้การเปลี่ยนแปลงจุดประสงค์ในการไล่ระดับสี (เป็นวิธีที่ชาญฉลาดที่สุด) หากระบบการซื้อขายของคุณมีพารามิเตอร์ไบนารีจำนวนมากคุณไม่ควรใช้เครื่องมือเพิ่มประสิทธิภาพอัจฉริยะโดยตรง แทนที่จะพยายามเพิ่มพารามิเตอร์อย่างต่อเนื่องเพียงอย่างเดียวโดยใช้โปรแกรมเพิ่มประสิทธิภาพอัจฉริยะและเปลี่ยนค่าไบนารีด้วยตนเองหรือผ่านทางสคริปต์ภายนอก SPSO - Standard Particle Swarm Optimizer Standard มาตรฐาน Particle Swarm Optimizer ใช้รหัส SPSO2007 ที่ควรจะได้ผลลัพธ์ที่ดีหากมีการระบุพารามิเตอร์ที่ถูกต้อง (เช่น Run, MaxEval) สำหรับปัญหาเฉพาะ การเลือกตัวเลือกที่ถูกต้องสำหรับเครื่องมือเพิ่มประสิทธิภาพ PSO อาจเป็นเรื่องที่ยุ่งยากเพราะฉะนั้นผลลัพธ์อาจแตกต่างกันออกไปในแต่ละกรณี SPSO. dll มาพร้อมกับรหัสแหล่งที่มาเต็มภายในโฟลเดอร์ย่อย quotADKquot ตัวอย่างรหัสสำหรับ Standard Sword Optimizer Swarm: (ค้นหาค่าที่เหมาะสมใน 1000 การทดสอบภายในพื้นที่การค้นหาของชุดค่าผสม 10000) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl เพิ่มประสิทธิภาพ (quotsquot, 26, 1, 100, 1 (MACD (fa, sl)) TRIBES - Adaptive Parameter-less Particle Swarm Optimizer Tribes สามารถปรับตัวได้ , รุ่นพารามิเตอร์น้อยของ PSO (การเพิ่มประสิทธิภาพการจับกลุ่มอนุภาค) เพิ่มประสิทธิภาพไม่ถี่ถ้วน สำหรับเหตุผลทางวิทยาศาสตร์ดูที่: particleswarm. infoTribes2006Cooren. pdf ในทางทฤษฎีควรทำงานได้ดีกว่า PSO ทั่วไปเนื่องจากสามารถปรับขนาดและกลยุทธ์ของอัลกอริทึมให้ตรงกับปัญหาที่กำลังแก้ไขได้โดยอัตโนมัติ การปฏิบัติแสดงให้เห็นว่าประสิทธิภาพการทำงานของมันค่อนข้างคล้ายกับ PSO ปลั๊กอิน Tribes. DLL ใช้ตัวแปร quotTribes-Dquot (i. e. dimensionless) อ้างอิงจาก clerc. maurice. free. frpsoTribesTRIBES-D. zip โดย Maurice Clerc รหัสแหล่งต้นฉบับที่ใช้โดยได้รับอนุญาตจากผู้แต่ง Tribes. DLL มาพร้อมกับรหัสต้นฉบับเต็ม (ภายในโฟลเดอร์ quotADKquot) พารามิเตอร์ที่สนับสนุน: quotMaxEvalquot - จำนวนการประเมินสูงสุด (backtests) ต่อการเรียกใช้ (ค่าเริ่มต้น 1000) คุณควรเพิ่มจำนวนการประเมินด้วยจำนวนที่เพิ่มขึ้นของมิติข้อมูล (จำนวนของพารามิเตอร์การเพิ่มประสิทธิภาพ) ค่าเริ่มต้น 1000 เหมาะสำหรับขนาด 2 หรือ 3 มิติ quotRunsquot - จำนวนการเรียกใช้ (เริ่มระบบใหม่) (เริ่มต้น 5) คุณสามารถปล่อยให้จำนวนของการทำงานที่ค่าเริ่มต้นของ 5 โดยจำนวนเริ่มต้นของการทำงาน (หรือรีสตาร์ท) ถูกกำหนดเป็น 5 เมื่อต้องการใช้เครื่องมือเพิ่มประสิทธิภาพเผ่าคุณเพียงแค่ต้องเพิ่มบรรทัดหนึ่งไปยังรหัสของคุณ: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 การประเมินผลสูงสุด CMA-ES - การปรับเปลี่ยนความแปรปรวนของเมทริกซ์การเพิ่มประสิทธิภาพกลยุทธ์เชิงวิวัฒนาการ CMA-ES (ยุทธศาสตร์วิวัฒนาการของการปรับเปลี่ยนความแปรปรวนร่วม) เป็นเครื่องมือเพิ่มประสิทธิภาพที่ไม่ละเอียดอ่อนขั้นสูง สำหรับพื้นฐานทางวิทยาศาสตร์ดูที่: bionik. tu-berlin. deusernikocmaesintro. html ตามมาตรฐานทางวิทยาศาสตร์มีประสิทธิภาพดีกว่าเก้ากลยุทธ์วิวัฒนาการยอดนิยมอื่น ๆ (เช่น PSO, วิวัฒนาการทางพันธุกรรมและอนุพันธ์) bionik. tu-berlin. deusernikocec2005.html ปลั๊กอิน CMAE. DLL ใช้ตัวแปร quotGlobalquot ของการค้นหาด้วยรีสตาร์ทหลายครั้งพร้อมด้วยจำนวนประชากรที่เพิ่มขึ้น CMAE. DLL มาพร้อมกับรหัสต้นฉบับเต็ม (ภายในโฟลเดอร์ quotADKquot) ตามค่าดีฟอลต์ที่รัน (หรือรีสตาร์ท) ถูกตั้งค่าไว้ เป็น 5 ขอแนะนำให้ปล่อยหมายเลขเริ่มต้นการรีสตาร์ท คุณอาจเปลี่ยนแปลงได้โดยใช้การเรียก OptimizerSetOption (quotRunsquot, N) โดยที่ N ควรอยู่ในช่วง 1..10 ไม่แนะนำให้ระบุการดำเนินการมากกว่า 10 ครั้งแม้ว่าจะเป็นไปได้ก็ตาม โปรดทราบว่าการเรียกใช้แต่ละครั้งจะใช้ TWICE ขนาดของประชากรที่ทำงานก่อนหน้านี้ดังนั้นจึงมีจำนวนเพิ่มขึ้นอย่างมาก ดังนั้นด้วย 10 วิ่งที่คุณจะจบลงด้วยประชากร 210 มากกว่า (1024 ครั้ง) กว่าครั้งแรกที่ทำงาน มีพารามิเตอร์อื่นคือ quotMaxEvalquot ค่าเริ่มต้นคือ ZERO ซึ่งหมายความว่าปลั๊กอินจะคำนวณ MaxEval โดยอัตโนมัติ แนะนำให้อย่ากำหนด MaxEval ด้วยตัวเองเนื่องจากค่าเริ่มต้นทำงานได้ดี อัลกอริธึมฉลาดพอที่จะลดจำนวนของการประเมินที่จำเป็นและทำให้เกิดการรวมตัวกันอย่างรวดเร็วในจุดโซลูชันดังนั้นจึงมักพบโซลูชันเร็วกว่ากลยุทธ์อื่น ๆ เป็นเรื่องปกติที่ปลั๊กอินจะข้ามขั้นตอนการประเมินผลบางส่วนหากตรวจพบโซลูชันดังกล่าวคุณจึงไม่ควรแปลกใจที่แถบความคืบหน้าของการเพิ่มประสิทธิภาพอาจเคลื่อนที่ได้รวดเร็วในบางจุด ปลั๊กอินยังมีความสามารถในการเพิ่มจำนวนขั้นตอนเหนือค่าประมาณเบื้องต้นเมื่อจำเป็นต้องหาวิธีแก้ปัญหา เนื่องจากลักษณะการปรับตัวของมัน leftquot เวลาที่คาดการณ์ไว้และหรือจำนวนตัวเลขของ stepsquot ที่แสดงโดย dialog ความคืบหน้าเป็นเพียง quotbest เดาที่ timequot และอาจแตกต่างกันไปในระหว่างหลักสูตรการเพิ่มประสิทธิภาพ ในการใช้เครื่องมือเพิ่มประสิทธิภาพ CMA-ES คุณจำเป็นต้องเพิ่มบรรทัดเดียวลงในโค้ดของคุณ: การดำเนินการนี้จะเรียกใช้การเพิ่มประสิทธิภาพโดยใช้การตั้งค่าเริ่มต้นซึ่งเหมาะสำหรับกรณีส่วนใหญ่ ควรสังเกตด้วยเช่นกันกับอัลกอริธึมการค้นหาแบบ continouos ซึ่งการลดพารามิเตอร์ quotstepquot ในการเรียกฟังก์ชัน Funciton ของ Optimize () จะไม่ส่งผลต่อเวลาในการเพิ่มประสิทธิภาพมากนัก สิ่งเดียวที่สำคัญคือปัญหา quotdimensionquot คือจำนวนพารามิเตอร์ที่ต่างกัน (จำนวนการเรียกฟังก์ชันเพิ่มประสิทธิภาพ) จำนวน quotstepsquot ต่อพารามิเตอร์สามารถตั้งค่าได้โดยไม่มีผลต่อเวลาการเพิ่มประสิทธิภาพดังนั้นคุณจึงควรใช้ความละเอียดที่ดีที่สุด ในทางทฤษฎีอัลกอริธึมควรจะสามารถหาทางออกได้ในการทดสอบย้อนกลับมากที่สุด 900 (N3) (N3) ที่ quotNquot คือมิติข้อมูล ในทางปฏิบัติ converges LOT ได้เร็วขึ้น ตัวอย่างเช่นการแก้ปัญหาในพื้นที่พารามิเตอร์มิติ 3 (N3) (กล่าวคือ 100100100 ขั้นตอนที่ละเอียดครบถ้วน 1 ล้านขั้นตอน) สามารถพบได้ในไม่กี่ขั้นตอนเพียง 500-900 CMA-ES การเพิ่มประสิทธิภาพแบบมัลติเธรดตั้งแต่เริ่มต้นจาก AmiBroker 5.70 นอกเหนือจาก multithreading หลายรูปแบบ คุณสามารถดำเนินการเพิ่มประสิทธิภาพแบบสัญลักษณ์แบบมัลติเธรด หากต้องการเข้าถึงฟังก์ชันนี้ให้คลิกที่ลูกศรแบบเลื่อนลงถัดจากปุ่ม quotOptimizequot ในหน้าต่างการวิเคราะห์ใหม่และเลือก "เพิ่มประสิทธิภาพส่วนบุคคล" คำสั่ง Optimizequot จะใช้แกนประมวลผลทั้งหมดที่มีอยู่เพื่อทำการเพิ่มประสิทธิภาพของสัญลักษณ์แบบเดียวซึ่งทำให้การเพิ่มประสิทธิภาพเป็นไปอย่างรวดเร็วกว่าปกติ ในโหมดสัญลักษณ์ quotCurrent symbolquot จะทำการเพิ่มประสิทธิภาพในหนึ่งสัญลักษณ์ ในรูปแบบ quotAll symbolsquot และ quotFilterquot จะประมวลผลสัญลักษณ์ทั้งหมดตามลำดับคือการเพิ่มประสิทธิภาพของ first first สำหรับสัญลักษณ์แรกและการเพิ่มประสิทธิภาพของสัญลักษณ์ที่สองเป็นต้นข้อ จำกัด : 1. ไม่รองรับ backtester แบบกำหนดเอง (ยัง) 2. ไม่สนับสนุนเครื่องมือเพิ่มประสิทธิภาพแบบสมาร์ท - เฉพาะการเพิ่มประสิทธิภาพ EXHAUSTIVE ทำงาน ในที่สุดเราอาจกำจัดข้อ จำกัด (1) - เมื่อ AmiBroker มีการเปลี่ยนแปลงดังนั้น backtester แบบกำหนดเองจะไม่ใช้ OLE อีกต่อไป (2) อาจอยู่ที่นี่นาน 10.2a การเลือก Movers Crossovers เฉลี่ยสำรวจสูตรเพิ่มค่าความล่าช้าที่เพิ่มใหม่ที่เพิ่มใหม่ในส่วน 10.5 ต่อไปนี้เป็นช่วงเวลาเฉลี่ยที่ใช้ในการค่อยๆเคลื่อนที่โดยเฉลี่ย - ดัชนีครอสโอเวอร์ MA: 10 งวด - ใช้กันอย่างแพร่หลายสำหรับตัวชี้วัดตามแนวโน้ม หากราคาสูงกว่า 10 EMA แนวโน้มจะดูขึ้นและลงถ้าอยู่ด้านล่าง 15 งวด - ดีดตัวข้ามเส้น MA หรือ EMA ที่ดีสำหรับใช้กับ EMA 10 งวดสำหรับแนวโน้มการซื้อขายตามระบบการซื้อขาย 21 งวด - การเลือก MA หรือ EMA ระยะเวลา 15 และแสดงถึงสถานะของแนวโน้มในระยะปานกลาง 50 งวด - ตัวบ่งชี้แนวโน้มระยะกลาง เมื่อรวมกับค่าเฉลี่ยความคลาดเคลื่อนต่ำจะเป็นตัวเลือกที่ดีสำหรับระบบการซื้อขาย 200 งวด - ใช้โดยผู้ค้าระยะยาวที่จะลงทุนหรือไม่ว่าราคาจะสูงหรือต่ำกว่าค่าเฉลี่ยนี้ ผู้ค้ารายวันและระยะสั้นสามารถรวมค่าเฉลี่ยเหล่านี้เข้าด้วยกันเพื่อสร้างระบบการซื้อขายที่ให้ผลลัพธ์ที่ยอมรับได้ในแนวโน้ม ใช้ EMA สำหรับการสร้างสัญญาณและ MAs เป็นค่าเฉลี่ยขั้นพื้นฐานที่ช้า 10.3 การเปิดขายช่วง Breakout Trading (ORB) ซึ่งแตกต่างจากการซื้อขายเฉลี่ยโดยเฉลี่ยที่มีการเชื่อมโยงกับราคาระหว่างรอบระยะเวลาการซื้อขายโดยปกติวิธีการซื้อขายช่วงเปิดใช้ช่วงต้นของวันเพื่อกำหนดช่วงการซื้อขาย เดิมทีตั้งใจว่าจะเป็นระบบการค้าระหว่างวันไม่มีเหตุผลใดทำไมถึงไม่สามารถนำมาใช้เพื่อการซื้อขายระยะสั้นและระยะยาวได้ด้วยกฎการปรับปรุงที่เหมาะสม สิ่งสำคัญคือต้องทราบถึงคุณลักษณะที่สำคัญ: ในการซื้อขายช่วงเปิดระหว่างวันเราจะสังเกตว่าวันที่สูงหรือต่ำของวันนั้นเป็นวันแรก 5 หรือ 10 หรือ 15 หรือ 20 หรือ 30 นาทีหรือ 1 ชั่วโมงและใช้เวลาทั้งสองอย่าง ระดับต่ำและต่ำเป็นระดับ upside และ downside breakout ระยะเวลาที่คุณเลือกคือช่วงเวลาที่คุณสามารถมาถึงได้โดยการทดลอง คุณจะได้รับผลลัพธ์ที่ดีแม้ว่าคุณจะใช้เวลาเพียง 5,10 หรือ 15 นาทีเมื่อช่วงของคุณแตกออก แนวคิดที่อยู่เบื้องหลังนี้คือช่วงเปิดตลาดกำหนดระดับรั้นและหยาบคายสำหรับการซื้อขาย สูงกว่าระดับสูงตลาดมีการถดถอยและต่ำกว่าระดับต่ำ ในแง่นี้หมายถึงตลาดสำหรับช่วงเวลาการซื้อขาย สำหรับใช้ในการซื้อขายตำแหน่งคุณสามารถใช้ช่วงที่สามารถขยายได้มากถึง 1-2 ชั่วโมงในแผนภูมิรายชั่วโมงและแม้แต่วันสำหรับการซื้อขายตำแหน่งระยะยาวเพื่อคำนวณระดับช่วง การซื้อขายระยะยาวเริ่มต้นที่ระดับสูงในขณะที่การซื้อขายระยะสั้นเริ่มต้นที่ระดับต่ำในช่วงนี้ ดูกราฟด้านล่างที่เราสามารถจับแนวโน้มได้ดี 122 จุดใน 3 เทรด 10.4 ORB พิเศษ - ใช้ระดับเดียวในวิธี ORB ที่อธิบายไว้ในข้อ 8.3 ข้างต้นคุณอาจคิดว่าคุณสูญเสียส่วนหนึ่งของผลกำไรจากการซื้อขายโดยขึ้นอยู่กับความผันผวนที่กำหนดระดับช่วงการเปิดช่วงของคุณ ดีมีคำตอบง่ายๆคือ เปลี่ยนเป็นระดับเดียวซึ่งสามารถเป็นไปตามเงื่อนไขต่อไปนี้โดยการใช้ค่าเฉลี่ยของช่วงสูงและต่ำของช่วงเวลาที่เลือกคุณสามารถทำงานได้ในระดับเดียวซึ่งยาวนานกว่าค่าเฉลี่ยและสั้นอยู่ต่ำกว่าค่าเฉลี่ย . นี่เป็นเหมือนค่าเฉลี่ยของตลาดเพื่อการค้า ระดับ ORB 1 (HighLow) 2 ระดับจาก n นาทีแรก n5,10,15,20,30 นาทีหรือ 1 ชั่วโมงตามทางเลือกของคุณหรือต่อเนื่องตลอดทั้งวัน อ่านข้อคิดเห็นอื่น ๆ ที่มีเกี่ยวกับการขยายแนวความคิดในการซื้อขายตำแหน่งซึ่งค่าเฉลี่ยของคุณสูงและต่ำอาจเป็นได้ 1-2 ชั่วโมงหรือแม้แต่วันและอาจถึงหนึ่งสัปดาห์ในกรณีที่มีระยะเวลานาน เตรียมพร้อมสำหรับ whipsaws รอบ ๆ ระดับ ORB เมื่อตลาดไม่ได้มีทิศทาง ดูแผนภูมิด้านล่างและดู whipsaws ที่อาจเกิดขึ้น เหล่านี้สามารถหลีกเลี่ยงได้ด้วยเทคนิคการยกเลิกเสียงต่างๆที่เราจะพูดถึงในภายหลัง หากคุณมีข้อเสนอแนะหรือข้อเสนอแนะใด ๆ โปรดเขียนถึงฉันที่ abnash1978yahoo. co. uk หรือโพสต์ความคิดเห็นในฟอรัม 10.5 การตอบสนองต่อค่าเฉลี่ยเคลื่อนที่และการกำจัดเสียงแบบดั้งเดิมค่าเฉลี่ยเคลื่อนที่แบบธรรมดาและแบบทึบให้สัญญาณการซื้อขายที่ไม่ตอบสนองต่อผู้ค้า ต้องการนำไปสู่ส่วนสำคัญของการค้าที่ได้รับเมื่อใช้ค่าเฉลี่ยเหล่านี้ แน่นอนว่าเมื่อมีความคืบหน้ายาวนานระบบการซื้อขายเฉลี่ยโดยเฉลี่ยทั้งหมดจะทำงานได้ดี มีข้อมูลจำนวนมากเกี่ยวกับค่าเฉลี่ยเคลื่อนที่ที่ต่ำลงและค่าที่เคลื่อนย้ายได้ง่ายในโดเมนสาธารณะคือค่าเฉลี่ยของค่าเฉลี่ยของฮัลล์ ฉันได้อ่านเกี่ยวกับ Jurik เช่นกัน แต่ไม่แน่ใจว่ามีสูตรที่เหมาะสมหรือไม่ ด้านล่างนี้เป็น AFL ซึ่งมีค่าเฉลี่ยความคล่องตัวในการเคลื่อนที่ต่ำซึ่งรวมกับค่าเฉลี่ยเคลื่อนที่เฉลี่ย 50 รอบเพื่อแสดงว่ามันอาจสร้างสัญญาณซื้อและขายได้อย่างไร และด้านล่างเป็น AFL อันหนึ่งซึ่งช่วยให้คุณสามารถคำนวณค่าเฉลี่ยเคลื่อนที่ที่แตกต่างกันซึ่งอาจเป็นส่วนหนึ่งของคลังการค้าของคุณ ทั้งจากแหล่งข้อมูลสาธารณะบนอินเทอร์เน็ต คุณสามารถสร้างระบบการซื้อขายโดยการใช้ตามที่แสดงด้านล่างด้วย 50MA ข้ามหรือสองระยะเวลาอื่น ๆ กล่าวว่าระยะเวลา 10 และ 15 ระบบการค้าระหว่างประเทศ AFL ฟรีฉันทำนี้ AFL AR TRADING SYSTEM AFL ฟรี i ทำให้ AFL FREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE REFERENCIAL FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREE FREEFREE FREEFREE FREEFREE FREEFREE FREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE ฟรี SK ((C-MA (C, NOL)) MA (C, nol)) 100 Graph0sk Graph0BarColorIIf (skgt0,5,4) SECTIONBEGIN (quotemaquot) Lk EMA (ปิด, 22) พล็อต (lk, quot, colorBrightGreen, styleDots) GfxSelectFont (quottohomaboldquot, สถานะ (quotpxheightquot) 16) GfxSetTextAlign ( 6) GfxSetTextColor (ColorRGB (10,250,250)) GfxSetBkMode (0) GfxTextOut (ชื่อ () สถานะ (quotpxwidthquot) 2 สถานะ (quotpxheightquot) 10) cxParam (quotcxposnquot, 1085,0,1200,1) cyParam (quotcyposnquot, 16,0 , 1000,1) Gfx SetBkColor (ColorRGB (200,50,100)) GfxSelectFont (quottohomaboldquot, 20,98, False) GfxSetTextColor (colorYellow) GfxSetTextColor (ColorHSB (100, 10, 400)) GfxTextOut (quotLTP. (quotCquot, inDaily) gfr TimeFrameGetPrice (quotCquot, inDaily, -1) ปิด Title EncodeColor (colorWhite) quot AR TRADING SYSTEM quotEncodeColor ( ColorRGB (220,10,150)) quot quot Interval (2) quot quot Date () EncodeColor (ColorRGB (200,150,120)) n n การเปิด O quot, High quot H quot, Low quot L EncodeColor (colorGreen) จากวันที่ปิดรอบก่อนหน้า encodeColor (colorGreen) gfr EncodeColor (colorYellow) ระบุวันนี้ ToDay เปิด quotay DDayO สูง quot DHiDay quot (CCI (8) lt-5, colorRed, IIf (CCI (8) gt Ref (CCI (8), - 1), colorBrightGreen, colorDarkRed (CCI (8) gt 5, colorBrightGreen, IIf (CCI (8) ))) HaClose EMA ((OHLLC) 5,3) HaOpen AMA (Ref (HaClose, -1), 0.5) HaHigh Max (H, Max (HaClose, HaOpen)) HaLow Min (L, Min (HaClose, HaOpen)) PlotOHLC (HaOpen, HaHigh, HaLow, HaClose, quotquot. Colcci, styleCandle styleNoLabel) BKswitch ParamToggle (quotBackground Colorquot, quotOn, Offquot) OUTcolor ParamColor (แถบสีช่องสี่เหลี่ยมสีดำ) INUPcolor ParamColor (แผงควบคุมระดับบนสุด colorGrey40) INDNcolor ParamColor (panel quotInner สีของเส้นขอบด้านนอก SetChartBkGradientFill (INUPcolor, INDNcolor, TitleCo lor) สีของแผงด้านใน SECTIONEND () SECTIONBEGIN (quotquot) SetBarsRequired (100000, สีขาว) สีของขอบด้านนอก SetChartBkGradientFill (INUPcolor, INDNcolor, TitleCo lor) 0) GraphXSpace 15 ea EMA (C, 10) eb EMA (C, 20) SetBarFillColor (IIf (ea gt eb, colorGreen, colorRed)) ซื้อ e (ขาย, ขาย) ขาย ExRem (ขาย, ซื้อ) Short ExRem (Short, Cover) ซื้อ ExRem (ซื้อ, ขาย) (HL) 2 (FactorATR (Pd)) Dn (HL) 2- (FactorATR (PdParam, 4,1,10,1) PdParam (quotATR Periodsquot, 10,1,100,1) ขึ้น (HL) 2 (FactorATR (Pd) Pd) iATRATR (Pd) TrendUpTrendDownNull trend01 changeOfTrend0 flagflagh0 สำหรับ (i 1 i ltBarCount i) TrendUpi Null TrendDowni Null ถ้า (CloseigtUpi-1) trendi1 ถ้า (trendi-1 -1) changeOfTrend 1 else ถ้า (CloseiltDni-1) trendi-1 (trendi-1) trend1 เปลี่ยน Intrend 0 else if (trendi-1-1) trendi-1 changeOfTrend 0 ซื้อ trend1 Selltrend-1 BuyExRem (ซื้อ, ขาย) SellExRem (ขาย, ซื้อ) ShortSell CoverBuy BuyPriceValue เมื่อซื้อ (ขาย C) ShortPriceValue เมื่อ (Short, C) CoverPriceValue เมื่อ (Cover, C) PlotShapes (IIf (ซื้อ shapeSquare, shapeNone) colorGreen, 0, L, Offset-40) PlotShapes (IIf. (ซื้อ shapeSquare, shapeNone), colorLime, 0, L, Offset-50) PlotShapes (IIf (ซื้อ shapeUpArrow, shapeNone), colorWhite, 0, L, Offset-45) PlotShapes (IIf (สั้น, รูปร่างรูปร่าง, ไม่มีรูปร่าง) colorRed, 0, H, Offset40) PlotShapes ( IIF (Short, shapeSquare, shapeNone), colorOrange, 0, H, Offset50) PlotShapes (IIf (สั้น, รูปร่างDownArrow, รูปร่างNone), colorWhite, 0, H, Offset-45) สำหรับ (iBarCount-1igt1i--) ถ้า (Buyi 1 ) entry Ci sig quotBUYquot sl รายการ tar2 (รายการ. 0092) tar2 entry (entry .0092) tar3 entry (entry .0179) bars ii 0 ถ้า (Selli 1) sig quotSELLquot entry Ci sl TrendSLi tar1 entry - (entry .0050) รายการ tar2 - (รายการ. 0112) รายการ tar3 - (รายการ 0,212) แถบ ii 0 ออฟเซ็ท 20 Clr IIf (เครื่องหมาย quotBUYquot, colorLime, colorRed) ssl IIf (บาร์ BarCount-1, TrendSLBarCount-1, Ref (TrendSL, -1) ) sl sslBarCount-1 พล็อต (LineArray (bar-offset, tar1, BarCount, tar1,1), quotquot, Clr, styleLinestyleDots, Null, Null, Offset) พล็อต (LineArray (บาร์ - ชดเชย, tar2, BarCount, tar2,1) , quotquot, Clr, styleLinestyleDots, Null, Null, Offset) พล็อต (LineArray (แถบ Offset, tar3, BarCount, tar3,1), quotquot, Clr, styleLinestyleDots, Null, Null, Offset) พล็อต (LineArray (บาร์ - Offset, Sl, BarCount, sl, 1), quotquot, colorDarkRed, styleLinestyleLine, Null, Null, Offset) พล็อต (LineArray (บาร์ - ออฟเซ็ทรายการ BarCount รายการ 1), quotquot, colorGreen, styleLinestyleLine, Null, Null, Offset) สำหรับ (ibars i ltBarCounti) PlotText (quotquotsigquotquotentry, BarCount1 รายการ, Null, colorBlue) PlotText(quotT1quottar1,BarCount3,tar1,Null, Clr)Plot Text(quotT2quottar2,BarCount3,tar2,Null, Clr)PlotText (quotT3quottar3,BarCount3,tar3,Null, Clr) messageboard ParamToggle(quotMessage Boardquot, quotShowHidequot, 1) if (messageboard 1 ) GfxSelectFont( quotTahomaquot, 13, 100 ) GfxSetBkMode( 1 ) GfxSetTextColor( colorWhite ) if ( sig quotBUYquot) GfxSelectSolidBrush( colorGreen ) this is the box background color else GfxSelectSolidBrush( colorRed ) this is the box background color pxHeight Status( quotpxchartheightquot ) xx Status( quotpxchartwidthquot) Lef t 1100 width 310 x 5 x2 290 GfxSelectPen( colorWhite, 4) broader color GfxRoundRect( x, y - 165, x2, y. 160, 90 ) GfxTextOut( ( quot AR TRADING SYSTEM quot),141,y-160) GfxTextOut( (quot quot),130,y-160) GfxTextOut( (quotLast quot sig quot Signal came quot (BarCount-bars-1) Interval()60 quot mins agoquot), 148, y-140) The text format location GfxTextOut( (quotquot WriteIf(sig quotBUYquot, sig quot quot, sig quot quot) quot. quot entry), 130, y-120) GfxTextOut( (quotSTOP LOSS. quot sl quot (quot WriteVal(IIf(sig quotSELLquot, entry-sl, sl-entry), 2.2) quot)quot), 130, y-100) GfxTextOut( (quotTGT:1. quot tar1), 130, y -80) GfxTextOut( (quotTGT:2. quot tar2), 130,y-60) GfxTextOut( (quotTGT:3. quot tar3), 130,y-40) GfxTextOut( (quotCurrent PL . quot WriteVal(IIf(sig quotBUYquot,(C-entry),(entry-C)),2.2)), 130, y-22) Buy ExRem(Buy, Sell) Sell ExRem(Sell, Buy) shape Buy shapeUpArrow Sell shapeDownArrow PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset-40) PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset-50) PlotShapes(IIf(Buy, sha peUpArrow, shapeNone),colorWhite, 0,L, Offset-45) PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset40) PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset50) PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset-45) PlotShapes( shape, IIf( Buy, colorGreen, colorRed ),0, IIf( Buy, Low, High ) ) dist 2.5ATR(5) for( i 0 i lt BarCount i ) if( Buyi ) PlotText( quotBuynquot Closei, i, Lowi - disti, colorWhite ) if( Selli ) PlotText( quotsellnquot Closei, i, Lowi disti, colorWhite ) SECTIONBEGIN(quotemaquot) P ParamField(quotFieldquot) Type ParamList(quotTypequot, quotWeighted, Simple, Exponential, Double Exponential, Tripple Exponential, Wildersquot) Periods89 Param(quotPeriods180quot, 180, 2, 300 ) Displacement2 Param(quotDisplacement2quot, 2, -50, 50 ) Plot( EMA( P, Periods89 ), DEFAULTNAME(), colorWhite, styleDots, 0, 0, Displacement2 ) SECTIONEND() rjlCross(Lk, tar1) golCross(tar1,Lk ) PlotShapes(shapeHollowStarrjl, colorAqua,0,H,- 20) PlotShapes(shapeHollowStargol, colorViolet,0,L,20) SECTIONEND() for( i 0 i lt BarCount i ) if( bvei ) PlotText( quotABnquot. i, L i - disti, colorWhite, colorDarkBlue ) if( rfwi ) PlotText( quotASnquot. i, H i disti, colorWhite, colorRed ) SECTIONBEGIN(quotdayquot) TimeFrameSet( inDaily ) switch now to dayily TimeFrameRestore() restore time frame to original Plot( TimeFrameExpand( Oo, inDaily),quotquot, colorYellow,10304 styleNoLabel) cx Param(quotcxposnquot,476,0,1200,1) cy Param(quotcyposnquot, 500,0,1000,10 ) GfxSelectFont( quot Arial quot, 14, 98, False ) GfxSetTextColor(ColorRGB(10,250,250)) GfxTextOut(quotVolume. quot Volume quotquot, cx 20,cy 50) SECTIONBEGIN(quottomquot) function GetSecondNum() Time Now( 4) Seconds int( Time 100 ) Minutes int( Time 100 100 ) Hours int( Time 10000 100 ) SecondNum int( Hours 60 60 Minutes 60 Seconds ) return SecondNum RequestTimedRefresh( 1 ) TimeFrame Interval() SecNumber GetSecondNum() Newperiod SecNumber TimeFrame 0 SecsLeft SecNumber - int( SecNumber TimeFrame ) TimeFrame SecsToGo TimeFrame - SecsLeft xParam(quotxposnquot,99,0,1000,1) yP aram(quotyposnquot,40,0,1000,1) GfxRoundRect( x615, y530, x738, y499, 0,0 ) GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) ) GfxSelectPen( ColorRGB( 203, 25, 23 ), 3 ) if ( NewPeriod ) GfxSelectSolidBrush( colorYellow ) GfxSelectPen( colorYellow, 2 ) Say( quotNew periodquot ) GfxSetBkMode(1) GfxSelectFont( quotArialquot, 13, 800, False ) GfxSetTextColor(ColorRGB(220,10,150) ) GfxTextOut( quotTimeleftquotquot. quotNumToStr( SecsToGo, 1.0 ), x674, y507 ) GfxSetTextColor(ColorRGB(10,250,250)) GfxTextOut( ( quot Develop By quot),1150,y-45) GfxSetTextColor(ColorRGB(10,250,250)) GfxTextOut( ( quotAR Trading SYSTEM quot),1150,y-25) SECTIONBEGIN(quotRibbonquot) uptrendPDI()gtMDI()AND Signal()ltMACD() downtrendMDI()gtPDI()AND Signal()gtMACD() Plot( 1, efines the height of the ribbon in percent of pane width quotribbonquot, IIf( uptrend, colorLime, IIf( downtrend, colorRed, IIf(Signal()ltMACD(), colorLightGrey, colorLightGrey ))), choose color styleOwnScalestyleAreastyleNoLabel, -.05,50 ) SECTIONEND() Last edited by skumar4545 3rd January 2014 at 11:22 AM. Reason: add img

No comments:

Post a Comment