การรวม Signal เข้าด้วยกัน - II
ในแบบฝึกหัดที่แล้ว คุณได้ประมาณค่า signal แบบ sigFormula โดยการเปรียบเทียบค่าของ signal อื่นสองตัว ในแบบฝึกหัดสุดท้ายนี้ จะก้าวไปอีกขั้นด้วยการใช้ฟังก์ชัน sigFormula() เพื่อสร้าง sigFormula signal โดยตรง
เป้าหมายของแบบฝึกหัดนี้ไม่ซับซ้อน นั่นคือต้องการเข้าสู่ตำแหน่งเมื่อ longfilter และ longthreshold เป็น true พร้อมกัน แนวคิดคือ ไม่ต้องการเข้าตำแหน่งซ้ำตลอดเวลาที่เงื่อนไขยังเป็นจริง แต่ ต้องการ ถือตำแหน่งไว้เมื่อราคาย่อตัวในช่วงที่ตลาดอยู่ในแนวโน้มขาขึ้น
การเขียนฟังก์ชัน sigFormula ทำได้ง่ายเหมือนการเขียนอาร์กิวเมนต์ของ "if statement" ใน base R ภายในฟังก์ชัน formula() ในกรณีนี้ ต้องการสร้าง signal ที่มีชื่อว่า longentry ซึ่งจะเป็น true เมื่อทั้ง longfilter และ longthreshold ข้ามมาเป็น true ในเวลาเดียวกัน
เมื่อทำแบบฝึกหัดนี้เสร็จ คุณจะเข้าใจภาพรวมการทำงานของ signal ใน quantstrat ได้อย่างครบถ้วน!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเทรดหุ้นด้วย R
คำแนะนำการฝึกหัด
- ใช้
add.signal()เพื่อสร้าง signal แบบsigFormulaที่เป็น true เมื่อทั้งlongfilterและlongthresholdเป็น true - ตั้งค่า
crossเป็นTRUE - กำหนดชื่อ signal ใหม่นี้ว่า
longentry
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Add a sigFormula signal to your code specifying that both longfilter and longthreshold must be TRUE, label it longentry
add.signal(strategy.st, name = "___",
# Specify that longfilter and longthreshold must be TRUE
arguments = list(formula = "___ & ___",
# Specify that cross must be TRUE
cross = ___),
# Label it longentry
label = "___")