ประเภทพารามิเตอร์ใน cTrader algo
ในบทความนี้และวิดีโอที่เกี่ยวข้อง เราจะสาธิตวิธีที่คุณสามารถประกาศและใช้พารามิเตอร์ที่ปรับแต่งได้ใน cBots และอินดิเคเตอร์ของคุณ เราจะพัฒนาอินดิเคเตอร์อย่างง่ายและแสดงให้คุณเห็นวิธีการกำหนดค่าพารามิเตอร์จาก UI ของ cTrader เราจะอธิบายด้วยว่าคุณสามารถใช้พารามิเตอร์ประเภทใดใน cBot หรืออินดิเคเตอร์ของ cTrader และแสดงวิธีการประกาศและใช้งานในโค้ดของคุณ
พารามิเตอร์ที่ปรับแต่งได้
พารามิเตอร์ที่ปรับแต่งได้คือค่าที่สามารถกำหนดค่าได้เมื่อเพิ่ม เริ่มต้นหรือใช้อัลกอริทึม พารามิเตอร์ช่วยให้คุณและผู้ใช้อื่นๆ สามารถปรับแต่งพฤติกรรมของ cBot อินดิเคเตอร์ และปลั๊กอินได้โดยไม่ต้องแก้ไขซอร์สโค้ด
การใช้พารามิเตอร์ใน cBots, อินดิเคเตอร์และปลั๊กอิน
- สำหรับ cBots คุณสามารถกำหนดค่าตัวแปรหรือการตั้งค่าที่ส่งผลต่อการดำเนินการ เช่น ระดับ Stop Loss และ Take Profit
- สำหรับอินดิเคเตอร์ คุณสามารถกำหนดค่าตัวแปรที่ส่งผลต่อผลลัพธ์ของอินดิเคเตอร์ เช่น ช่วงเวลาที่พิจารณาหรือแหล่งข้อมูลที่จะใช้
- สำหรับปลั๊กอิน คุณสามารถกำหนดค่าตัวแปร เช่น ตัวเลือก UI หรือคีย์ API ที่กำหนดว่าปลั๊กอินจะโต้ตอบกับอินเทอร์เฟซหรือบริการภายนอกอย่างไร
ตามที่ อธิบาย ไว้ก่อนหน้านี้ cTrader รองรับประเภทพารามิเตอร์เหล่านี้:
intdoublestringboolDataSeriesTimeFrameenumColorDateTimeDateOnlyTimeSpanSymbolSymbol[](multi-symbol)Enum[](multi-enum)TimeFrame[](multi-period)
หมายเหตุ
อัลกอริทึม Python ใช้พารามิเตอร์ที่ปรับแต่งได้ที่ประกาศในไฟล์ .cs ของพวกเขา
สร้างอินดิเคเตอร์อย่างง่ายด้วยพารามิเตอร์
เพื่อสาธิตวิธีการใช้พารามิเตอร์ในอินดิเคเตอร์ที่กำหนดเอง เราจะสร้างอินดิเคเตอร์ใหม่และตั้งชื่อว่า Standard Deviation
ในการคำนวณส่วนเบี่ยงเบนมาตรฐาน เราจำเป็นต้องคำนวณค่าเฉลี่ยเคลื่อนที่ของราคาก่อน หลังจากนั้น เราจะประกาศพารามิเตอร์ที่จำเป็นสำหรับอินดิเคเตอร์ค่าเฉลี่ยเคลื่อนที่ โดยเริ่มจากช่วงเวลาของค่าเฉลี่ยเคลื่อนที่
1 | |
คุณสมบัติสาธารณะใดๆ ที่มีประเภทที่รองรับสามารถกลายเป็นพารามิเตอร์ของอินดิเคเตอร์ได้ ในการแปลงคุณสมบัติ MaPeriod ของเราให้เป็นพารามิเตอร์ สิ่งที่เราต้องทำคือเพิ่มการประกาศที่จำเป็น
1 2 | |
แอตทริบิวต์ Parameter สั่งให้ cTrader แสดงคุณสมบัตินี้เป็นพารามิเตอร์ในแผงพารามิเตอร์ของอินดิเคเตอร์โดยใช้ชื่อที่กำหนด ("MA Period")
ดังที่แสดงด้านล่าง แอตทริบิวต์ Parameter ยังช่วยให้คุณกำหนดคุณสมบัติบางอย่างของพารามิเตอร์ เช่น ชื่อที่แสดง ค่าเริ่มต้น กลุ่มที่พารามิเตอร์นี้จะถูกวางไว้ ค่าสูงสุดและต่ำสุด รวมถึงขั้นตอนที่พารามิเตอร์จะเปลี่ยนแปลงเมื่อกดลูกศรขึ้นและลง (สำหรับค่าตัวเลขเท่านั้น)
1 2 | |
ตอนนี้เราจะเพิ่มพารามิเตอร์ที่เหลือที่จำเป็นสำหรับอินดิเคเตอร์ค่าเฉลี่ยเคลื่อนที่ พารามิเตอร์ MaType จะช่วยให้เรากำหนดประเภทของค่าเฉลี่ยเคลื่อนที่ มันเป็น enum ที่จะปรากฏเป็นเมนูแบบเลื่อนลงในอินเทอร์เฟซผู้ใช้ของ cTrader
1 2 | |
พารามิเตอร์ Source จะให้ตัวเลือกแก่ผู้ใช้ในการระบุแหล่งข้อมูลสำหรับอินดิเคเตอร์ค่าเฉลี่ยเคลื่อนที่ของเรา พารามิเตอร์นี้เป็นประเภท DataSeries
1 2 | |
ตอนนี้พารามิเตอร์ที่จำเป็นได้ถูกประกาศแล้ว เราจะกำหนดและเริ่มต้นค่าเฉลี่ยเคลื่อนที่ของเรา
1 2 3 4 5 6 | |
ณ จุดนี้ เราพร้อมที่จะดำเนินการคำนวณส่วนเบี่ยงเบนมาตรฐานของเรา เทมเพลตโค้ดเริ่มต้นมีคุณสมบัติ Output อยู่แล้ว ซึ่งเราสามารถใช้เพื่อแสดงผลลัพธ์ของการคำนวณได้
1 2 | |
สุดท้ายแต่ไม่ท้ายสุด เราจะดำเนินการคำนวณส่วนเบี่ยงเบนมาตรฐานในเมธอด Calculate()
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
หากเราเพิ่มอินดิเคเตอร์ของเราลงในกราฟ เราควรเห็นพารามิเตอร์ทั้งหมดของเราในหน้าต่าง เพิ่มอินสแตนซ์
เพิ่มพารามิเตอร์เพิ่มเติม
เมื่อเราทำส่วนเบี่ยงเบนมาตรฐานเสร็จแล้ว เราสามารถเพิ่มเส้นแนวนอนที่จะทำหน้าที่เป็นเกณฑ์ที่มองเห็นได้สำหรับอินดิเคเตอร์ เพื่อจุดประสงค์นี้ เราจะต้องเพิ่มพารามิเตอร์เพิ่มเติม
อันแรกจะเป็นพารามิเตอร์บูลีนที่จะกำหนดว่าเส้นของเราจะแสดงหรือไม่
1 2 | |
พารามิเตอร์ LineLevel จะช่วยให้เรากำหนดระดับราคาที่ควรวาดเส้น
1 2 | |
เราจะเพิ่มพารามิเตอร์ที่อนุญาตให้เลือกสีของเส้นด้วย
1 2 | |
เมื่อมีพารามิเตอร์ที่จำเป็นทั้งหมดแล้ว เราสามารถเขียนโค้ดเพื่อวาดเส้นบนกราฟที่อินดิเคเตอร์ของเราถูกแนบ
1 2 3 4 | |
หากเราสร้างอินดิเคเตอร์อีกครั้งและเพิ่มอินสแตนซ์ใหม่ เราจะสามารถซ่อน/แสดงเส้น เลื่อนขึ้นหรือลง และเลือกสีที่เราต้องการเป็นสีของเส้นได้
ดังที่แสดงในตัวอย่างด้านล่าง พารามิเตอร์ยังสามารถใช้เพื่อให้แน่ใจว่าอินดิเคเตอร์ของเราจะแสดงเฉพาะเมื่อเพิ่มลงในกราฟสำหรับกรอบเวลาเฉพาะเท่านั้น
1 2 | |
ในเมธอด Initialize() เราจะตรวจสอบกรอบเวลาของกราฟที่อินดิเคเตอร์ของเราถูกแนบ หากไม่เท่ากับค่าของพารามิเตอร์ TF เราจะป้องกันไม่ให้แสดงอินดิเคเตอร์
1 2 3 4 5 6 7 8 9 10 11 12 | |
เราหวังว่าคู่มือนี้จะเป็นประโยชน์ในการทำความเข้าใจพารามิเตอร์และวิธีการทำงานในการเทรดด้วย Algo ของ cTrader