ฟังก์ชัน Sleep
ความสามารถในการรอจนกว่าจะถึงเวลาที่กำหนดเป็นสิ่งสำคัญสำหรับ cBot โดยเฉพาะอย่างยิ่งสำหรับ cBot ที่ควรถูกกำหนดเวลาหรือเปิดใช้งานเมื่อเกิดเหตุการณ์บางอย่าง (เช่น การประกาศสาธารณะ) เมธอด Sleep() ใน cTrader ช่วยให้สามารถระงับอัลกอริทึมจนกว่าเวลาที่กำหนดจะผ่านไปหรือใกล้เข้ามา
หมายเหตุ
ฟังก์ชัน Sleep มีให้ใช้งานสำหรับ cBot และอินดิเคเตอร์เท่านั้น
คู่มือ API นี้จะแนะนำคุณเกี่ยวกับเมธอด Sleep() และวิธีการใช้งานอย่างถูกต้อง
เมธอด Sleep() ในหนึ่งนาที!
- เมธอด
Sleep()ช่วยให้นักพัฒนาสามารถระงับการทำงานของอัลกอริทึมด้วยพารามิเตอร์เวลาที่ยืดหยุ่นที่กำหนดไว้ - หากคุณทราบวันที่และเวลาของเหตุการณ์เฉพาะที่ cBot ของคุณควรตอบสนองด้วยกลยุทธ์ที่ปรับแต่ง ให้ใช้ฟังก์ชัน Sleep เพื่อเทรดข่าวและตอบสนองต่อเหตุการณ์ที่กำหนดเวลาไว้
- กำหนดช่วงเวลาที่จะผ่านไปสำหรับฟังก์ชัน Sleep ตั้งแต่มิลลิวินาทีไปจนถึงช่วงเวลาใดๆ
- เมธอด
Sleep()มีให้ใช้งานสำหรับอัลกอริทึม .NET 6 เท่านั้นและทำงานตามที่ตั้งใจไว้ใน backtesting
เมธอด sleep() ทำงานอย่างไร
ฟังก์ชัน Sleep มีให้ใช้งานสำหรับอัลกอริทึม .NET 6 เท่านั้น ในขณะที่ cBot อยู่ในโหมด Sleep เหตุการณ์อื่นๆ ทั้งหมดในโค้ดจะถูกละเว้น
ตัวอย่าง
หากเหตุการณ์ BarOpened เกิดขึ้นห้าครั้งในระหว่างโหมด Sleep ตัวจัดการ OnBar() ที่พลาดไปทั้งหมดจะไม่ถูกเรียกใช้หลังจาก cBot ตื่นขึ้น เฉพาะเหตุการณ์ใหม่ที่กำลังจะเกิดขึ้นเท่านั้นที่จะถูกเรียกใช้ในกรณีนี้
อย่างไรก็ตาม cBot ยังคงประมวลผลข้อความข้อมูลทั้งหมดในขณะที่อยู่ในโหมด Sleep (เช่น หากมีการเรียกใช้ RefreshData())
หมายเหตุ
การระบุเวลา Sleep คุณกำหนดช่วงเวลาขั้นต่ำของการระงับอัลกอริทึม เวลา Sleep จริงจะเท่ากับหรือมากกว่าเวลาการระงับที่ร้องขอเสมอ
ในการใช้เมธอด Sleep() นักพัฒนาอัลกอริทึมควรใช้ลายเซ็นต่อไปนี้ขึ้นอยู่กับวัตถุประสงค์ของพวกเขา
เพื่อระงับอัลกอริทึมจนกว่าช่วงเวลาที่ระบุจะผ่านไป:
void Sleep(Timespan timespan)
เพื่อระงับอัลกอริทึมจนกว่าจำนวนมิลลิวินาทีที่ระบุจะผ่านไป:
void Sleep(int milliseconds)
เพื่อระงับอัลกอริทึมจนกว่าเวลาและวันที่ที่ระบุจะใกล้เข้ามา:
void Sleep(DateTime dateTime)
ตัวอย่าง
เราจะสมมติว่าการกล่าวสุนทรพจน์ครั้งต่อไปของประธานธนาคารกลางสหรัฐฯ คนปัจจุบัน Jerome Powell มีกำหนดในวันที่ 11 ธันวาคม 2023 เวลา 11:00 น. คุณคาดหวังการประกาศบางอย่างที่จะส่งผลกระทบต่อแนวโน้มของ EURUSD และได้พัฒนา cBot ที่จะดำเนินกลยุทธ์ที่เกี่ยวข้องทันทีที่เริ่มการกล่าวสุนทรพจน์ ในกรณีนี้ คุณสามารถใช้เมธอด Sleep() ได้ดังนี้
DateTime doomsday = new DateTime(2023, 12, 11, 11, 0, 0);
Sleep(doomsday)
คำเตือน
หากพารามิเตอร์ DateTime ไม่ได้มาจากโซนเวลาของอัลกอริทึม จะเกิด ArgumentException
เมธอด Sleep() ทำงานตามที่ตั้งใจไว้ใน backtesting หากคุณต้องการหยุด cBot ที่กำลัง Sleep จาก UI คุณไม่จำเป็นต้องรอจนกว่ามันจะตื่นขึ้น คลิกปุ่ม หยุด และมันจะหยุดทำงานโดยไม่มีการหมดเวลา
สร้าง cBot ตัวอย่าง
ตัวอย่าง cBot ต่อไปนี้จะ Sleep เป็นเวลา 30 วินาทีหลังจากเปิดใช้งาน โดยมีข้อความที่เกี่ยวข้องพิมพ์ในบันทึก หลังจากนั้น มันจะส่งคำสั่งซื้อแบบ Market สำหรับ USDJPY
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |

สรุป
ฟังก์ชัน Sleep ช่วยให้นักพัฒนาอัลกอริทึมสามารถระงับการทำงานของเมธอดอื่นๆ แม้ว่า cBot จะถูกเปิดใช้งานแล้วก็ตาม การใช้เมธอด Sleep() ด้วยพารามิเตอร์เวลาที่ยืดหยุ่น จะช่วยให้คุณตอบสนองต่อเหตุการณ์ที่กำหนดเวลาไว้ด้วยกลยุทธ์ที่ปรับแต่งของคุณได้ตรงเวลาเสมอ