วิธีสร้างอินดิเคเตอร์ที่กำหนดเองใน cTrader
ในบทความนี้และวิดีโอที่เกี่ยวข้อง เราจะพูดถึงวิธีการสร้างอินดิเคเตอร์ที่กำหนดเองใหม่ใน cTrader เราจะสร้าง Simple Moving Average indicator และแสดงวิธีการปรับแต่งพารามิเตอร์ของอินดิเคเตอร์ได้อย่างรวดเร็ว
ก่อนที่จะทำตามคำแนะนำของเรา โปรดตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดและติดตั้งแอปพลิเคชัน cTrader Windows หรือ cTrader Mac จาก เว็บไซต์อย่างเป็นทางการ เปิดใช้งาน และไปที่ส่วน cTrader Algo ค้นหาแท็บ Algo ในแผงด้านซ้ายและคลิกที่มัน ตอนนี้คุณควรเห็นอินเทอร์เฟซ Algo ของ cTrader
เพิ่มอินดิเคเตอร์ที่กำหนดเองใหม่
เพื่อสร้างอินดิเคเตอร์ที่กำหนดเองใหม่ เราต้องคลิกปุ่ม New และเลือก Blank อินดิเคเตอร์ใหม่จะปรากฏที่ด้านล่างของรายการอินดิเคเตอร์พร้อมกับเทมเพลตโค้ดในแผงด้านขวา
ต่อไป เปลี่ยนชื่อของอินดิเคเตอร์จากชื่อเริ่มต้น ในการทำเช่นนั้น คลิกขวาที่มันและคลิก Rename หรือเลือกมันและกด F2 เราจะพิมพ์ Simple moving average เป็นชื่อใหม่ของอินดิเคเตอร์ของเรา เมื่อเสร็จแล้ว ให้กด Enter ณ จุดนี้ เราพร้อมที่จะเริ่มเขียนโค้ดสำหรับตรรกะและสูตรของอินดิเคเตอร์ที่กำหนดเอง
ดูโครงสร้างของอินดิเคเตอร์
ก่อนที่เราจะเริ่ม เราจะดูโครงสร้างโค้ดของอินดิเคเตอร์ที่แสดงในหน้าต่าง code editor อย่างรวดเร็ว โครงสร้างนี้รวมถึงการตั้งค่าพารามิเตอร์เริ่มต้นและวิธีการคำนวณและแสดงอินดิเคเตอร์บนแผนภูมิ
เริ่มต้น อินดิเคเตอร์ทุกตัวมีส่วนที่ประกอบด้วยแอตทริบิวต์คลาส นี่คือที่ที่คุณสามารถกำหนดสิทธิ์การเข้าถึงที่อินดิเคเตอร์มี ที่ที่อินดิเคเตอร์จะแสดงบนแผนภูมิ โซนเวลาที่ใช้โดยอินดิเคเตอร์ การปรับขนาดของอินดิเคเตอร์ และการตั้งค่าขั้นสูงอื่นๆ
คุณจะสังเกตเห็นว่าเทมเพลตโค้ดของอินดิเคเตอร์ใหม่ทุกตัวกำหนดคลาสที่เรียกว่า NewIndicator ซึ่งประกอบด้วยเหตุการณ์ของอินดิเคเตอร์และเมธอดที่กำหนดเอง การประกาศชื่อคลาสตามด้วย : Indicator นี่หมายความว่าคลาส NewIndicator สืบทอดมาจากคลาสพื้นฐาน Indicator ซึ่งประกอบด้วยวัตถุที่กำหนดไว้ล่วงหน้าทั้งหมดที่เราจะเข้าถึงเมื่อสร้างอินดิเคเตอร์ที่กำหนดเองของเรา
การทบทวนโครงสร้างโค้ดของอินดิเคเตอร์และ หลักการสืบทอด ในการเขียนโปรแกรมเชิงวัตถุที่มีรายละเอียดมากขึ้นมีให้ใน เอกสารทางเทคนิค ของเรา
ในส่วนด้านล่าง คุณจะเห็นบล็อกโค้ดที่ประกอบด้วยการตั้งค่าอินดิเคเตอร์เริ่มต้นทั้งหมด เริ่มต้น ส่วนนี้จะมีโค้ดต่อไปนี้เท่านั้น
1 2 3 4 5 | |
ทันทีที่อยู่ใต้การประกาศพารามิเตอร์ คุณควรเห็นเมธอดของอินดิเคเตอร์ คิดว่าเมธอดเป็นเหตุการณ์บางอย่างที่ถูกดำเนินการเมื่ออินดิเคเตอร์เริ่มต้นและเมื่อมีข้อมูลราคาใหม่ถูกป้อนให้กับอินดิเคเตอร์ ตารางต่อไปนี้นิยามเมธอดหลักสามอย่างของอินดิเคเตอร์
| ชื่อเมธอด | คำจำกัดความ |
|---|---|
Initialize() | เมธอดเหตุการณ์นี้ถูกเรียกเมื่ออินดิเคเตอร์ถูกแนบกับแผนภูมิ ใช้เพื่อเริ่มต้นตัวแปรใดๆ ที่คุณวางแผนจะใช้ในอินดิเคเตอร์ของคุณ คุณยังสามารถกำหนดและอ้างอิงอินดิเคเตอร์เพิ่มเติมเพื่อสร้างอินดิเคเตอร์เดียวโดยใช้สูตรจากอินดิเคเตอร์อื่นๆ |
OnCalculate() | เมธอดนี้ถูกเรียกในแต่ละ tick ของข้อมูลที่เข้ามา ภายในเมธอดนี้ คุณสามารถเขียนตรรกะที่จะประมวลผลข้อมูลที่เข้ามาเพื่อคำนวณเส้นที่พล็อตต่อไปที่อินดิเคเตอร์ควรแสดง |
OnExcepion() | เมธอดนี้ถูกเรียกหากอินดิเคเตอร์ของคุณพบข้อผิดพลาด คุณสามารถใช้มันเพื่อกำหนดว่าอินดิเคเตอร์ของคุณควรทำอะไรเมื่อจับข้อผิดพลาด โปรดทราบว่าเมธอดนี้ไม่มีอยู่ในเทมเพลตโค้ดอินดิเคเตอร์เริ่มต้น |
เขียนโค้ดอินดิเคเตอร์
ตอนนี้เราจะดำเนินการเพิ่มโค้ดที่กำหนดเองให้กับ Simple Moving Average indicator ของเรา อินดิเคเตอร์ของเราจะแสดงบนแผนภูมิการเทรดเป็น overlay เหนือประเภทแผนภูมิปัจจุบัน
ก่อนอื่น เราต้องประกาศแอตทริบิวต์คลาสของอินดิเคเตอร์ตามที่ได้กล่าวไว้ก่อนหน้า เราจะเพิ่มการตั้งค่าแอตทริบิวต์ต่อไปนี้ให้กับอินดิเคเตอร์
1 | |
คุณสามารถตีความโค้ดด้านบนได้ดังนี้:
IsOverlay = true- อินดิเคเตอร์จะพล็อตบนแผนภูมิเหนือแท่งเทียน, แท่งช่วง, อิฐ Renko หรือองค์ประกอบอื่นๆ ขึ้นอยู่กับประเภทแผนภูมิที่เลือกTimeZone = TimeZones.UTC- อินดิเคเตอร์จะใช้เวลาสากลเชิงพิกัดซึ่งเป็นค่าเริ่มต้นสำหรับอินดิเคเตอร์ทั้งหมด การเปลี่ยนค่าของแอตทริบิวต์นี้แนะนำเฉพาะในกรณีที่อินดิเคเตอร์ของคุณใช้คุณลักษณะวันที่และเวลาในการคำนวณAutoRescale = false- แอตทริบิวต์นี้กำหนดว่าอินดิเคเตอร์ควรปรับขนาดแผนภูมิที่แนบมาโดยอัตโนมัติหรือไม่ เนื่องจากค่าของแอตทริบิวต์นี้เท่ากับfalseอินดิเคเตอร์ของเราจะไม่ปรับขนาดแผนภูมิAccessRights = AccessRights.None- อินดิเคเตอร์จะไม่ได้รับอนุญาตให้เข้าถึงอินเทอร์เน็ตหรือจัดการไฟล์บนเครื่องท้องถิ่น
ตอนนี้เราสามารถกำหนดพารามิเตอร์ของอินดิเคเตอร์ของเราได้ เหล่านี้คือการตั้งค่าที่สามารถปรับได้ในแผงตั้งค่าหลังจากเพิ่มอินดิเคเตอร์ลงในแผนภูมิ เราจะเขียนโค้ดพารามิเตอร์ต่อไปนี้:
- แหล่งข้อมูลสำหรับสูตรของอินดิเคเตอร์
- ช่วงเวลาที่ใช้ในสูตร
- เส้นผลลัพธ์ของอินดิเคเตอร์ที่พล็อต
เพิ่มโค้ดต่อไปนี้ลงในอินดิเคเตอร์
1 2 3 4 5 6 7 8 | |
เราจะตั้งค่า 14 เป็นค่าเริ่มต้นของพารามิเตอร์ Periods และ turquoise เป็นสีเส้นเริ่มต้น อย่างไรก็ตาม คุณสามารถตั้งค่าพารามิเตอร์เหล่านี้เป็นค่าเริ่มต้นเกือบทุกค่าที่ cTrader รองรับ
ตอนนี้เราสามารถเพิ่มโค้ดที่จะพล็อตผลลัพธ์ของอินดิเคเตอร์บนแผนภูมิโดยใช้เมธอดเหตุการณ์ Calculate()
1 2 3 4 5 6 7 8 9 | |
โค้ดนี้กำหนดผลลัพธ์ของการคำนวณอินดิเคเตอร์ให้กับพารามิเตอร์ Result ที่เราได้กำหนดไว้ก่อนหน้า
สร้างและทดสอบอินดิเคเตอร์
ทันทีที่เราเขียนโค้ดอินดิเคเตอร์เสร็จสิ้น เราสามารถคลิกปุ่ม Build ที่อยู่บนแถบด้านบนสุดของ UI cTrader หรือคลิกขวาที่อินดิเคเตอร์ของคุณและเลือก Build ในเมนูที่ปรากฏขึ้นใหม่ หรือกด Ctrl + B
หากการ build สำเร็จ คุณจะเห็นข้อความสีเขียวในพื้นที่ Build result ที่ด้านล่างของตัวแก้ไขโค้ด

อย่างไรก็ตาม หากมีปัญหาเกี่ยวกับโค้ดของคุณ คุณจะเห็นข้อความสีแดงและสรุปข้อผิดพลาดทั้งหมดอย่างละเอียด

หลังจากสร้างอินดิเคเตอร์สำเร็จแล้ว เราสามารถดำเนินการสร้างอินสแตนซ์ได้ วิธีที่ง่ายที่สุดคือคลิกขวาที่อินดิเคเตอร์และเลือกตัวเลือก Add an instance

สิ่งนี้จะสร้าง อินสแตนซ์อินดิเคเตอร์ใหม่ สำหรับกราฟ h1 ของ EURUSD อย่างไรก็ตาม คุณสามารถเปลี่ยนประเภทกราฟ ช่วงเวลา และสัญลักษณ์ได้โดยคลิกที่อินสแตนซ์และเปิดเมนูที่เกี่ยวข้อง
แท็บ Parameter ที่ปรากฏขึ้นใหม่ควรแสดงพารามิเตอร์ที่ปรับแต่งได้สามอย่างที่เราได้เขียนโค้ดไว้ก่อนหน้านี้ คุณสามารถปล่อยไว้ตามเดิมหรือเปลี่ยนค่าของพวกเขาได้โดยตรงใน UI cTrader
กราฟการเทรดควรแสดงผลลัพธ์ของอินดิเคเตอร์แล้ว ในกรณีของเรา นี่จะเป็นเส้นสีเทอร์ควอยซ์ที่แสดงค่าเฉลี่ยเคลื่อนที่แบบง่าย

หากคุณคลิกขวาที่เส้น คุณจะเห็นหน้าต่างใหม่ที่อนุญาตให้ปรับแต่งพารามิเตอร์ของอินดิเคเตอร์ ตัวอย่างเช่น เราสามารถเปลี่ยนสีของเส้นผลลัพธ์จากเทอร์ควอยซ์เป็นสีน้ำเงิน เรายังสามารถปรับความหนาของเส้นได้ เพื่อบันทึกการเปลี่ยนแปลงของคุณ คลิก OK

หมายเหตุ
cTrader อนุญาตให้สลับระหว่างผลลัพธ์ของอินสแตนซ์และหน้าต่างตัวแก้ไขโค้ดสำหรับอินดิเคเตอร์ที่กำหนดเองของคุณได้อย่างรวดเร็ว สิ่งนี้ทำให้เป็นเครื่องมือที่เหมาะสำหรับการทดสอบพารามิเตอร์ของอินดิเคเตอร์หรือตรรกะการคำนวณที่กำหนดเองได้อย่างรวดเร็ว
เพิ่มอินดิเคเตอร์ลงในกราฟสด
ตอนนี้เราจะสลับไปที่แท็บ Trade ใน cTrader เพื่อแนบอินดิเคเตอร์ที่กำหนดเองของเราลงในกราฟสด เปิดกราฟสำหรับสัญลักษณ์ที่คุณต้องการวิเคราะห์
ในเมนูด้านบน คลิกไอคอน Indicators เพื่อเปิดส่วนใหม่

หลังจากนั้น เลือก Custom และในเมนูที่ปรากฏขึ้นใหม่ เลือกอินดิเคเตอร์ที่กำหนดเองที่เราได้สร้างขึ้น (Simple moving average)
คุณจะเห็นหน้าต่างใหม่ที่อนุญาตให้คุณปรับแต่งพารามิเตอร์ของอินดิเคเตอร์ หลังจากเลือกค่าที่คุณต้องการ คลิก OK เพื่อเพิ่มอินดิเคเตอร์ลงในกราฟสำหรับสัญลักษณ์ที่เลือก
เพื่อกลับไปยังหน้าต่างการตั้งค่าอินดิเคเตอร์ คลิกขวาที่ผลลัพธ์ของอินดิเคเตอร์ ในกรณีของเรา เราสามารถคลิกขวาที่เส้นสีเทอร์ควอยซ์ หรือคลิกไอคอน Properties ที่ปรากฏขึ้นเมื่อคุณเลื่อนเมาส์ไปเหนือชื่ออินดิเคเตอร์บนกราฟ

หน้าต่างการตั้งค่าอินดิเคเตอร์จะปรากฏขึ้น และคุณจะสามารถเปลี่ยนสีของเส้นที่พล็อตได้ รวมถึงความหนาของเส้น
