เขียน EA ตรวจสอบ Candlestick Pattern
The Bearish Engulfing pattern
รูปแบบของ Bearish Engulfing คือ รุปแบบที่เป็นสัญญาณของการกลับตัวจากภาวะตลาดกระทิง(Up Trend) ไปสู่ภาวะตลาดหมี(Down Trend) จะเกิดแท่งเทียนทึบ(หมายเลข1)ครอบ แท่งเทียนโปร่ง(หมายเลข2) โดยที่ราคาเปิดและราคาปิดของแท่งเทียนโปร่งจะต้องอยู่ระหว่างราคาเปิดและราคาปิดของแท่งเทียนทึบ ดูภาพประกอบเพื่อความเข้าใจ
ก่อนที่เราจะทำการเขียน EA เพื่อตรวจสอบว่า รูปแบบของกราฟแท่งเทียนที่เกิดขึ้นนั้น ใช่รูปแบบของ Bearish Engulfing Pattern รึปล่าวนั้น เราต้องทำการกำหนดเงื่อนไขของรูปแบบนี้ก่อนด้วยภาษาพูดและค่อยแปลงให้เป็นภาษา MQL
ลงมือเขียน Code
Candlestick Pattern ยังมีอีกหลายรูปแบบ แล้วผมจะมาเขียนต่อในคราวหน้าครับ
รูปแบบของ Bearish Engulfing คือ รุปแบบที่เป็นสัญญาณของการกลับตัวจากภาวะตลาดกระทิง(Up Trend) ไปสู่ภาวะตลาดหมี(Down Trend) จะเกิดแท่งเทียนทึบ(หมายเลข1)ครอบ แท่งเทียนโปร่ง(หมายเลข2) โดยที่ราคาเปิดและราคาปิดของแท่งเทียนโปร่งจะต้องอยู่ระหว่างราคาเปิดและราคาปิดของแท่งเทียนทึบ ดูภาพประกอบเพื่อความเข้าใจ
ก่อนที่เราจะทำการเขียน EA เพื่อตรวจสอบว่า รูปแบบของกราฟแท่งเทียนที่เกิดขึ้นนั้น ใช่รูปแบบของ Bearish Engulfing Pattern รึปล่าวนั้น เราต้องทำการกำหนดเงื่อนไขของรูปแบบนี้ก่อนด้วยภาษาพูดและค่อยแปลงให้เป็นภาษา MQL
- เงื่อนไขของ Bearish Engulfing Pattern
- เราจะทำการตรวจสอบเมื่อเกิดแท่งเทียนแท่งใหม่ ใช้รูปประกอบ คือเมื่อเกิดแท่งเทียนหมายเลข 0
- ราคาเปิดของแท่งเทียนหมายเลข1 ต้องมากกว่าราคาปิดของแท่งเทียนหมายเลข1 ใช้เพื่อตรวจสอบว่าเป็นแท่งเทียนทึบ
- ราคาเปิดของแท่งเที่ยนหมายเลข2 ต้องน้อยกว่าราคาปิดของแท่งเทียนหมายเลข2 ใช้ตรวจสอบว่าเป็นแท่งเทียนโปร่ง
- ราคาเปิดของแท่งเทียนหมายเลข2 ต้องมากกว่าราคาปิดของแท่งเทียนหมายเลข1 และ ราคาปิดของแท่งเทียนหมายเลข2 ต้องน้อยกว่าราคาเปิดของแท่งเทียนหมายเลข1 ใช้เพื่อตรวจสอบว่าเป็น Bearish Engulfing Pattern
- ราคาเปิดของแท่งเทียนหมายเลข3 ต้องน้อยกว่าราคาปิดของแท่งเทียนหมายเลข3 ใช้ตรวจสอบว่าเป็นแท่งเทียนโปร่ง
- ส่วนต่างของราคาปิดกับราคาเปิดของแท่งเทียนหมายเลข3 ต้องมากกว่า ส่วนต่างของราคาปิดกับราคาเปิดของแท่งเทียนหมายเลข2 ใช้เพื่อเป็นการยืนยันว่าเป็น Up Trend
- ทุกเงื่อนไขเป็นจริงก็ให้ทำการเปิด Order Sell
ลงมือเขียน Code
/* กำหนด Timeframe = 5 นาที */ int TF = PERIOD_M5; /* กำหนดตัวแปรเพื่อใช้เก็บค่าของจำนวน Bar ใน Chart */ int pbl_Bars=0; int start() { /* ในครั้งแรกที่เริ่มรัน EA เราจะยังไม่ทำการตรวจสอบ Candlestick Parttern */ if(pbl_Bars==0) { //เก็บค่าจำนวนของ Bar ที่มีใน Chart pbl_Bars = Bars; //กำหนด Bar ที่จะทำการตรวจสอบ pbl_Bars++; //ออกจากฟังก์ชั้น return (0); } /* 1. เราจะทำการตรวจสอบเมื่อเกิดแท่งเทียนแท่งใหม่ */ if(pbl_Bars==Bars) { /* แยกเป็นฟังก์ชั่นย่อย ถ้าตรวจสอบแล้วว่าเป็น Bearish Engulfing Pattern จะคืนค่ากลับมาเป็น true */ if(isBearish_Engulfing()) { /* 7.ทุกเงื่อนไขเป็นจริงก็ให้ทำการเปิด Order Sell */ /* OpenOrder เป็นฟังก์ชันย่อย ใช้ในการเปิด Order */ OpenOrder(OP_SELL); } /* เมื่อเข้ามาตรวจสอบแล้ว ถ้ายังไม่เปลี่ยนเป็นแท่งใหม่ก็จะไม่เข้ามาอีก */ pbl_Bars--; } return (0); } bool isBearish_Engulfing() { /* 2.ราคาเปิดของแท่งเทียนหมายเลข1 ต้องมากกว่าราคาปิดของแท่งเทียนหมายเลข1 */ if(!(iOpen(Symbol(),TF,1) > iClose(Symbol(),TF,1))) { /* ถ้าไม่ต้องตามเงื่อนไขทีี่ 2 ก็ออกจากฟังก์ชัน */ return (false); } /* 3.ราคาเปิดของแท่งเที่ยนหมายเลข2 ต้องน้อยกว่าราคาปิดของแท่งเทียนหมายเลข2 */ if(!(iOpen(Symbol(),TF,2) < iClose(Symbol(),TF,2))) { /* ถ้าไม่ต้องตามเงื่อนไขทีี่ 3 ก็ออกจากฟังก์ชัน */ return (false); } /* 4.ราคาเปิดของแท่งเทียนหมายเลข2 ต้องมากกว่าราคาปิดของแท่งเทียนหมายเลข1 และ ราคาปิดของแท่งเทียนหมายเลข2 ต้องน้อยกว่าราคาเปิดของแท่งเทียนหมายเลข1 */ if(!((iOpen(Symbol(),TF,2) > iClose(Symbol(),TF,1)) && (iClose(Symbol(),TF,2) < iOpen(Symbol(),TF,1)))) { /* ถ้าไม่ต้องตามเงื่อนไขทีี่ 4 ก็ออกจากฟังก์ชัน */ return (false); } /* 5.ราคาเปิดของแท่งเทียนหมายเลข3 ต้องน้อยกว่าราคาปิดของแท่งเทียนหมายเลข3 */ if(!((iOpen(Symbol(),TF,3) < iClose(Symbol(),TF,3))) { /* ถ้าไม่ต้องตามเงื่อนไขทีี่ 5 ก็ออกจากฟังก์ชัน */ return (false); } /* 6.ส่วนต่างของราคาปิดกับราคาเปิดของแท่งเทียนหมายเลข3 ต้องมากกว่า ส่วนต่างของราคาปิดกับราคาเปิดของแท่งเทียนหมายเลข2 */ if(! ((iClose(Symbol(),TF,3) - iOpen(Symbol(),TF,3)) > (iClose(Symbol(),TF,2) - iOpen(Symbol(),TF,2)))) { /* ถ้าไม่ต้องตามเงื่อนไขทีี่ 6 ก็ออกจากฟังก์ชัน */ return (false); } /* เข้าเงื่อนไขของ Bearish Engulfing Pattern */ return (true); } bool OpenOrder(int cmd) { /* คำสั่งในการเปิด Order จะมาอัพเดตทีหลังครับ }
ที่มา http://onlinemakeemoney.blogspot.com
VdestceAryora Alexis Thomas https://wakelet.com/wake/UbhiNGYhGAOinFlLQWaFU
ตอบลบxinpytingscob
Ydemptisin-i Patty Morgan https://colab.research.google.com/drive/1cEg76N3UrrijUQQi-GxGXCmpEDRp3bys
ตอบลบclick
click
click here
sinotipi
Mzensumte_i Lynda Rodriguez Autodesk AutoCAD
ตอบลบDriver Genius
Adobe Acrobat Pro DC
portsorfover