ก่อนอื่นเลยครับอย่าเพิ่งตกใจว่าเอ๊ะ ทำไมของผมมันชื่อ Bucket of Trade & Order น้า ??? คืองี้ครับ 5555 ถ้าเราทำ Project แบบ MT5 เค้าจะใช้คำว่า Position แทนคำว่า Trade ครับ เช่น No Trade กลายเป็น To Position แบบนี้นั่นเองครับ พูดง่าย ๆ แบบนี้ครับ
- Trade -> MT4
- Position -> MT5
ผมขอเกริ่นเลยละกันครับ Bucket หรือเรียกสั้น ๆ ง่าย ๆ ว่า “ถัง” เนี่ย เป็นบล็อกที่ใช้เก็บข้อมูลของหลาย ๆ ไม้ในคราวเดียวครับ และแน่นอนว่าเราสามารถดึงข้อมูลนั้นมาใช้งานต่อได้อีกด้วย เช่น ผมอาจจะเก็บข้อมูลของไม้ Buy Group 1 EURUSD เอาไว้ใน Bucket ผมก็จะสามารถดึงข้อมูลของไม้ Buy Group 1 EURUSD มาใช้งานได้นั่นเองครับ
ทำความรู้จักกับ Parameter ของ Bucket of Position & Order กัน
Bucket ID
ตัวนี้อารมณ์เดียวกับ Group เลยครับ ซึ่งเราใช้ในการแบ่งว่า Bucket นี้ที่เก็บข้อมูลนี้ไว้คือ Bucket สีไหน ซึ่งเวลาเราจะดึงข้อมูลเนี่ย เราก็จะชี้ไปที่สีของถังเพื่อดึงข้อมูลนั่นเองครับ (ไม่งั้นเค้าไม่รู้ครับ ว่าเราหมายถึง Bucket ไหน)
และถ้าสมมติเนี่ยเราเราใช้ Bucket จนสีไม่พอให้เราเลือกแล้ว เราก็สามารถกำหนดสีของถังให้เป็น Variable ได้เลยครับ โดยกำหนดให้เป็นเลขก็ได้ครับ เช่น 1 2 3 เพราะว่าเหตุผลจริง ๆ แล้วคือการใช้แบ่ง Bucket ให้แยกออกจากกันนั่นเองครับ
Group Mode
สำหรับ Group Mode มีให้เราเลือกกลุ่มการทำงาน 3 แบบซึ่งขอสรุปง่าย ๆ ตามตารางด้านล่างนี้ครับ
ชื่อพารามิเตอร์ |
คำอธิบาย |
Group | เลือกกลุ่มการทำงาน แบ่งโดยใช้เลข Group เช่น 1 |
Manually opened | เลือกไม้ที่เปิดด้วยแบบแมนนวล หรือเปิดด้วยมือของตัวเอง (ไม่ใช้ EA เท่านั้น) |
All (automate and manually opened) | เลือกทุกไม้ ไม่ได้สนว่าจะเป็นไม้ที่เปิดด้วยมือหรือ EA และไม่ได้สนว่าเป็น Group ไหนด้วย |
Group #
เอาไว้ใส่เลขกลุ่มการทำงานที่ต้องการ เช่น 1 หรือจะใส่หลายกลุ่มการทำงานก็ได้ โดยจะใช้ comma ในการเขียน Group ต่อกัน เช่น 1, 2, 3
Symbol Mode
ในส่วนของ Symbol Mode จะมีให้เราเลือกกลุ่มการทำงาน 2 แบบ ดังนี้ครับ
- Specified: เลือก Symbol แบบเฉพาะเจาะจง แต่ก็สามารถใส่หลาย Symbol ได้เช่นกันครับ เช่น ใส่แบบตัวเดียว EURUSD หรือใส่แบบหลายตัว EURUSD, USDJPY, GBPUSD โดยเราจะสังเกตได้ว่าเค้าจะใช้คอมม่าในการแบ่งชื่อ Symbol แต่ละตัวครับ
- Any Symbol: หรือพูดง่าย ๆ ก็คือ Symbol ไหนก็ได้ เค้าไม่ได้สนใจ Symbol ครับ
บล็อก Bucket ทั้ง 3 ประเภท
บล็อก Bucket ไม่ว่าจะเป็นการเขียน EA สำหรับ mt4 ก็ดี mt5 ก็ดี จะมีอยู่เพียง 3 ประเภทเท่านั้นครับ
- Bucket of Position
- Bucket of Pending Order
- และ Bucket of Closed Positions
1. Bucket of Position
เป็น Bucket ที่ใช้เก็บข้อมูลของไม้เทรดที่กำลังเปิดอยู่ได้เท่านั้นครับ (Buy Sell ปกติ ที่ไม่ใช่ Pending Order)
เพราะฉะนั้นนั่นก็หมายความว่า เวลาเราใช้ Bucket เราต้องใช้ให้ถูกกับไม้ที่เรากำลังจะดึงข้อมูลด้วยครับ ไม่งั้นเราจะดึงข้อมูลไม่ได้ หรือดึงข้อมูลไม่เจอนั่นเองครับ
2. Bucket of Pending Orders
เป็น Bucket ที่ใช้เก็บข้อมูลของไม้เพนดิ้งออเดอร์ที่เราเปิดอยู่ ณ ขณะนี้ครับ
3. Bucket of Closed Positions
เป็น Bucket ที่ใช้เก็บข้อมูลของไม้เทรดที่ปิดไปแล้วครับ
Only trades after & before
บล็อกนี้เค้าจะพิเศษกว่าชาวบ้านหน่อยครับ 5555 ตรงที่ว่าอันนี้เราจะเลือกกรองได้อีกชั้นนึงครับ ว่าเราเนี่ยจะเอาไม้ที่ปิดก่อนเวลานี้มั้ย (before) หรือจะเอาไม้เฉพาะที่ปิดหลังเวลานี้เท่านั้น (after) ซึ่งตรงนี้เราก็สามารถปรับแต่ง และเล่นลูกเล่นได้ตามใจชอบเลยครับ
ยกตัวอย่างเช่น ผมอยากได้ข้อมูลไม้ที่ปิดไปแล้วหลัง 1 วัน ก่อนหน้าเท่านั้น ผมสามารถตั้ง Bucket แบบนี้ได้เลยครับ
ซึ่งเราจะสังเกตได้ว่าผมมีการ Shift Back ไป 1 วันด้วยกันครับ โดย
- Shift Back คือ การถอยเวลากลับ
- Shift Forward คือ การดันเวลาไปข้างหน้า
Concept ตรงนี้จะเป็นแบบเดียวกันกับ Candle ID เลยครับ ที่เมื่อเราอยากได้แท่งเทียนก่อนหน้า เราจะใส่ Candle ID เป็น 1
Not more than trades
หรือพูดง่าย ๆ ก็คือ ท่านจะเอาค่าของไม้ใน Bucket of Closed Position ไม่เกินกี่ไม้นั่นเองครับ
ค่าที่มีให้เราดึงใน Bucket ทั้งหมด
ผมจะขอเริ่มต้นที่ Attribute นะครับ
Attribute
ชื่อพารามิเตอร์ |
คำอธิบาย |
Count | จำนวนไม้ใน Bucket |
Profit | กำไรใน Bucket |
Lot | ค่าล็อตใน Bucket |
Lot (initial) | แอดลองไปเทสดูแล้วครับ ตัวนี้ไม่เห็นต่างจากตัวข้างบนเลยครับ เอาเป็นว่าตอนนี้ใช้ตัว Lot กันเป็นหลักกันไปก่อนดีกว่าครับ🤣 |
Stop-Loss | ค่า SL ของไม้ใน Bucket |
Take-Profit | ค่า TP ของไม้ใน Bucket |
Price Open | ค่าราคาเปิดของไม้ใน Bucket |
Price Close | ค่าราคาปิดของไม้ใน Bucket |
ในตัวของ Price Close ผมเองก็ได้ลองแบบ Total Sum ดูครับ ปรากฏว่าถ้าท่านใช้ Bucket of Position (ตัวเดียวกันกับ Bucket of Trades) ในการดึง ค่าตรงนี้ท่านจะได้เป็นราคาปัจจุบันมาบวกกันครับ
Value to get
หรือพูดง่าย ๆ ก็คือ เราจะเอาค่าอะไรนั่นเองครับ เช่น Attribute = Count (จำนวนไม้ใน Bucket) และเราเลือก Value to get = Total Sum เราก็จำได้เป็นจำนวนไม้รวมทุกไม้ใน Bucket นั่นเองค้าบ
ชื่อพารามิเตอร์ |
คำอธิบาย |
Average value | ค่าเฉลี่ยของ Attribute ที่เราเลือก |
Max. value | ค่าที่มากที่สุดของ Attribute ที่เราเลือก |
Min. value | ค่าที่น้อยที่สุดของ Attribute ที่เราเลือก |
Total sum | ค่าผลรวมของ Attribute ที่เราเลือก |
สรุป
ดึงค่าแค่ไม้เดียว หรือไม่กี่ไม้ แบบเอาเจาะจง = ใช้ Loop For Each ตอบโจทย์กว่าครับ.. ดึงค่าหลายไม้พร้อมกัน ไม่หนักเครื่อง = ใช้ Bucket ครับ เฟี้ยวกว่าเยอะ เช่น สมมติว่าผมเนี่ยต้องการเก็บค่า Lot ของไม้ 100 ไม้ บล็อคที่ผมควรใช้เก็บค่า Lot ในที่นี้ ผมควรใช้เป็น Bucket ครับ เพราะว่าจะทำให้ไม่หนักเครื่อง และคำนวณได้เร็วนั่นเองค้าบ
กลับสู่สารบัญเพื่อเลือกเรียนบทอื่น ๆ
"เริ่มต้นอย่างช้าๆ แต่ชัดเจน"
ให้เราได้ดูแลคุณ...
eaforexcenter.com