คุณสมบัติกลยุทธ์

กลยุทธ์ Pine แต่ละอันมีคุณสมบัติหลายอย่างที่กำหนดพฤติกรรม:

  1. ทุนเริ่มต้น
  2. สกุลเงินหลัก
  3. ขนาดออร์เดอร์
  4. พีระมิด
  5. คอมมิชชั่น
  6. ตรวจสอบราคาสำหรับลิมิตออร์เดอร์
  7. สลิปเพจ
  8. มาร์จิ้น
  9. คำนวณใหม่
  10. เติมออร์เดอร์

มีอยู่ในการตั้งค่ากลยุทธ์ในแท็บคุณสมบัติ:

พารามิเตอร์แต่ละตัวที่ระบุในคุณสมบัติของกลยุทธ์สามารถเปลี่ยนแปลงได้โดยการแก้ไขอาร์กิวเมนต์ของการเรียกใช้ฟังก์ชัน strategy() ในสคริปต์ Pine ที่เกี่ยวข้อง:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick)

มาดูพารามิเตอร์อินพุตแต่ละรายการในเมนูคุณสมบัติและพารามิเตอร์ที่เกี่ยวข้องกันในภาษาไพน์:

1 - ทุนเริ่มต้น (พารามิเตอร์: initial_capital) หมายถึงจำนวนเงินเริ่มต้นสำหรับกลยุทธ์ในการซื้อขาย ในสกุลเงินที่กำหนดไว้ในสกุลเงินหลัก โดยค่าเริ่มต้น ค่านี้จะเท่ากับ 1,000,000 คุณอาจต้องเพิ่มมูลค่านี้เพื่อให้การซื้อขายเกิดขึ้นกับบางสัญลักษณ์

2 - สกุลเงินหลัก (พารามิเตอร์: currency) ระบุสกุลเงินที่ใช้สำหรับการคำนวณ ผลลัพธ์ที่ปรากฏในแท็บผู้ทดสอบกลยุทธ์ (กำไร ขาดทุน ขาดทุน ฯลฯ) จะแสดงเป็นสกุลเงินนี้ ทางเลือกที่มีอยู่คือ:

ค่าเริ่มต้น USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR หากเลือกตัวเลือกเริ่มต้น กลยุทธ์จะใช้สกุลเงินเริ่มต้นสำหรับสัญลักษณ์นี้และจะไม่มีการแปลงสกุลเงิน

3 - ขนาดออร์เดอร์ (พารามิเตอร์: default_qty_value, default_qty_type). This requires a value and a calculation mode. Note that the calculated values can be subject to constraints due to the minimum tradable quantities for the symbol:

  • Contracts (อากิวเมต์: strategy.fixed) - กลยุทธ์จะเข้าสู่ด้วยจำนวนสัญญา/หุ้น/ล็อตที่กำหนด
  • จำนวนเงินในสกุลเงิน (อาร์กิวเมนต์: Strategy.cash) - กลยุทธ์จะป้อนจำนวนเงินที่ระบุในสกุลเงินหลัก
  • เปอร์เซ็นต์ของอิควิตี้ (อาร์กิวเมนต์: Strategy.percent_of_equity) - ขนาดตำแหน่งจะคำนวณเป็นเปอร์เซ็นต์ของอิควิตี้ที่มีอยู่เมื่อเปิดการซื้อขาย

4 - พีระมิด (พารามิเตอร์: pyramiding) ระบุจำนวนสูงสุดของรายการต่อเนื่องที่อนุญาตในทิศทางเดียวกัน เมื่อปิดใช้พีระมิด กลยุทธ์สามารถเปิดสถานะซื้อหรือขายได้เพียงตำแหน่งเดียว แม้ว่าจะตรงตามเงื่อนไขการเข้า พีระมิดมีผลกับรายการที่สร้างโดยใช้ฟังก์ชัน Strategy.entry() เท่านั้น ไม่มีผลกับคำสั่งที่สร้างโดยใช้ Strategy.order()

5 - คอมมิชชั่น (พารามิเตอร์: commission_typecommission_value). เป็นจำนวนเงินที่จ่ายในค่าธรรมเนียมการซื้อขายสำหรับการซื้อขายแต่ละครั้ง ต้องระบุค่าและโหมดการคำนวณ โปรดทราบว่าจะมีการคิดค่าคอมมิชชันกับทั้งการเข้าและออก และเมื่อใช้เปอร์เซ็นต์ ค่าคอมมิชชันที่คำนวณจะแตกต่างกันไปตามมูลค่าของธุรกรรม:

  • เปอร์เซ็นต์ของมูลค่าธุรกรรม (อากิวเมต์: strategy.commission.percent) - กำหนดค่าคอมมิชชั่นในแต่ละคำสั่งเท่ากับเปอร์เซ็นต์ที่ระบุ
  • สกุลเงินต่อสัญญา (อากิวเมต์: strategy.commission.cash_per_contract) - เรียกเก็บค่าคอมมิชชั่นในแต่ละสัญญา
  • สกุลเงินต่อออร์เดอร์ (อากิวเมต์: strategy.commission.cash_per_order) - กำหนดค่าคอมมิชชั่นในแต่ละคำสั่ง

6 - ตรวจสอบราคาสำหรับลิมิตออร์เดอร์ (พารามิเตอร์: backtest_fill_limits_assumption) ทำให้เงื่อนไขในการเข้าสู่ตำแหน่งโดยใช้คำสั่งจำกัดที่เข้มงวดมากขึ้น โดยค่าเริ่มต้น ค่านี้คือ 0 กล่าวคือ คำสั่งจำกัดจะถูกกรอกในข้อมูลย้อนหลังทันทีที่ราคาที่ระบุในคำสั่งนั้นถึง หากพารามิเตอร์ไม่ใช่ศูนย์ คำสั่งจำกัดสามารถเข้าสู่ตำแหน่งภายในแถบได้ก็ต่อเมื่อราคาตลาดเกินระดับของคำสั่งจำกัดตามจำนวนขีดที่ระบุ

7 - สลิปเพจ (พารามิเตอร์: slippage) ระบุค่าในทิกที่จะเพิ่มไปยังราคาเติมของตลาดหรือสต๊อปออร์เดอร์ สามารถใช้บัญชีสำหรับสเปรด

8 - มาร์จินสำหรับโพสิชั่น Long/Short (พารามิเตอร์: margin_long, margin_short) ระบุมาร์จิ้นสำหรับการซื้อขายแต่ละครั้ง กล่าวคือ เปอร์เซ็นต์ของโพซิชั่นที่ผู้ค้าต้องลงทุน ตัวอย่างเช่น หากมาร์จิ้นสำหรับโพซิชั่น long ตั้งไว้ที่ 25% เทรดเดอร์จะต้องมีเงินทุนเพียงพอที่จะครอบคลุม 25% ของการเทรดที่เปิดอยู่ และอาจใช้จ่ายสูงถึง 400% ของอิควิตี้ของพวกเขาในทุกการเทรด

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

9 - คำนวณตัวเลือกใหม่ ระบุว่าควรคำนวณกลยุทธ์ใหม่บ่อยเพียงใด โดยค่าเริ่มต้น กลยุทธ์จะได้รับการคำนวณใหม่ที่ส่วนท้ายของแต่ละแท่ง แต่ด้วยการใช้ตัวเลือกด้านล่าง ก็สามารถคำนวณใหม่ได้เช่นกัน:

  • หลังจากสั่งซื้อเต็มแล้ว (พารามิเตอร์: calc_on_order_fills) - อนุญาตให้กลยุทธ์ดำเนินการคำนวณคำสั่งซื้อภายในแถบเพิ่มเติมทันทีหลังจากเติมคำสั่งซื้อ การคำนวณพิเศษนั้นเกิดขึ้นบนแถบประวัติและเรียลไทม์
  • ในทุกๆ ทิก (พารามิเตอร์: calc_on_every_tick). โดยค่าเริ่มต้น กลยุทธ์จะคำนวณเฉพาะเมื่อปิดแท่งเรียลไทม์ พารามิเตอร์นี้ช่วยให้กลยุทธ์คำนวณในการอัพเดทแต่ละครั้งของแท่งกราฟแบบเรียลไทม์ เช่นเดียวกับอินดิเคเตอร์ โปรดทราบว่าข้อมูลทิกจะหายไปเมื่อชาร์ตถูกรีเฟรช ดังนั้นกลยุทธ์ที่ใช้ตัวเลือกนี้จะทำการรีเพนต์ใหม่ พารามิเตอร์นี้ไม่ส่งผลต่อพฤติกรรมของกลยุทธ์ในแท่งอดีต นอกจากนี้ โปรดทราบด้วยว่ากลยุทธ์ที่ใช้คุณสมบัตินี้จะไม่แสดงผลลัพธ์ที่เหมือนจริงในแท่งอดีต์ เนื่องจากไม่มีข้อมูลทิก

10 - เติมออร์เดอร์:

  • ใช้ bar magnifier (พารามิเตอร์: use_bar_magnifier) - สั่งให้ Broker Emulator ใช้ราคากรอบเวลาที่ต่ำกว่าและแม่นยำยิ่งขึ้นในระหว่างการทดสอบย้อนหลังเพื่อให้ได้ผลลัพธ์ที่สมจริงยิ่งขึ้น อ่านเพิ่มเติมเกี่ยวกับคุณสมบัตินี้ใน ศูนย์ช่วยเหลือ.
  • เมื่อ bar close (พารามิเตอร์: process_orders_on_close). หากเป็นจริง กลยุทธ์จะสร้างความพยายามเพิ่มเติมในการดำเนินการตามออร์เดอร์หลังจากที่แท่งปิดและการคำนวณกลยุทธ์เสร็จสิ้น หากออร์เดอร์เป็นออร์เดอร์ราคาตลาด Broker Emulato จะดำเนินการก่อนที่แท่งถัดไปจะเปิด หากออร์เดอร์ขึ้นอยู่กับราคา ออร์เดอร์เหล่านั้นจะถูกเติมเต็มเมื่อตรงตามเงื่อนไขราคาเท่านั้น ตัวเลือกนี้มีประโยชน์หากคุณต้องการดำเนินการออร์เดอร์ในเวลาเดียวกันกับที่ถูกสร้างขึ้น: โดยค่าเริ่มต้น คำสั่งซื้อจะถูกสร้างขึ้นที่ปิดของแท่งปัจจุบันและดำเนินการเมื่อเปิดของแแท่งถัดไป เมื่อเปิดการตั้งค่านี้ การดำเนินการดังกล่าวจะถูกดำเนินการในการปิดเดียวกันกับที่สร้างออร์เดอร์ โปรดทราบว่าการเข้าสู่สถานะด้วยทิกเดียวกับที่สร้างออร์เดอร์อาจทำให้เข้าใจผิดได้ เนื่องจากไม่สามารถทำได้ในการเทรดจริง 
  • ใช้ standard OHLC (พารามิเตอร์: fill_orders_on_standard_ohlc) บังคับให้กลยุทธ์ดำเนินการบนชาร์ต Heikin Ashi เพื่อกรอกออร์เดอร์โดยใช้ราคา OHLC จริงเพื่อผลลัพธ์ที่สมจริงยิ่งขึ้น ตามค่าเริ่มต้น สคริปต์กลยุทธ์จะเติมออร์เดอร์โดยใช้ราคาของชาร์ต โดยไม่คำนึงถึงประเภทของชาร์ต สำหรับชาร์ต Heikin Ashi การตั้งค่านี้จะป้องกันการใช้ราคาเสมือนซึ่งอาจไม่สอดคล้องกับความเป็นจริง ตัวอย่างเช่น กลยุทธ์นี้เราได้นำไปใช้กับชาร์ต NASDAQ:AAPL Heikin Ashi รายวันที่ส่งออร์เดอร์ในวันที่ 25-09-2023 ในราคาเสมือนที่ 175.61 USD อย่างไรก็ตาม หลังจากเปิดใช้งานตัวเลือก "การใช้ OHLC มาตรฐาน" แล้ว ออร์เดอร์เดียวกันก็ถูกเติมเต็มที่ราคามาตรฐานบนชาร์ตที่ 174.20 USD