การใช้ sigCrossover
แม้ว่าการมี long filter จะเป็นสิ่งจำเป็น แต่ก็ยังไม่เพียงพอสำหรับการเปิดสถานะในกลยุทธ์นี้ อย่างไรก็ตาม ทันทีที่เงื่อนไขดังกล่าวไม่เป็นจริง กลยุทธ์ควรออกจากสถานะทั้งหมดทันที ในแบบฝึกหัดนี้ คุณจะนำฟังก์ชัน sigCrossover() มาใช้เพื่อสร้างกฎที่ตรงข้ามกับที่ระบุไว้ข้างต้น
ต่างจาก sigComparison() ที่จะแสดงสถานะของเงื่อนไขตลอดเวลา sigCrossover() จะให้สัญญาณบวกเฉพาะครั้งแรกที่สัญญาณเกิดขึ้นเท่านั้น ไม่ใช่ซ้ำๆ ซึ่งมีประโยชน์สำหรับสัญญาณที่ใช้เริ่มต้นธุรกรรม เนื่องจากในกรณีส่วนใหญ่ต้องการธุรกรรมเพียงครั้งเดียว ไม่ใช่ให้เกิดธุรกรรมซ้ำอยู่เรื่อยๆ
ในกรณีนี้ คุณจะใช้ฟังก์ชัน sigCrossover() โดยระบุว่า SMA50 ตัดลงต่ำกว่า SMA200 และตั้งชื่อสัญญาณนี้ว่า filterexit เนื่องจากสัญญาณนี้จะออกจากสถานะเมื่อ moving average filter บ่งชี้ว่าสภาวะตลาดไม่เอื้อต่อการถือสถานะของกลยุทธ์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเทรดหุ้นด้วย R
คำแนะนำการฝึกหัด
- ใช้
add.signal()เพื่อเพิ่มสัญญาณsigCrossoverโดยระบุว่าSMA50ตัดลงต่ำกว่าSMA200 - ตั้งชื่อสัญญาณนี้ว่า
filterexit
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
# We're interested in the relationship between the SMA50 and the SMA200
arguments = list(columns = c("___", "___"),
# The relationship is that the SMA50 crosses under the SMA200
relationship = "___"),
# Label it filterexit
label = "___")