วันเสาร์ที่ 15 สิงหาคม พ.ศ. 2558

การเขียนอีเอตรวจสอบแท่งเทียน Hammer

การเขียน EA ตรวจสอบแท่งเทียน Hammer


Hammer คือรูปแบบแท่งเทียนที่บอกถึงสัญญาณการกลับตัวขึ้น (Bullish Reversal) โดยแท่งเทียนจะมีลักษณะคล้ายรูปค้อน เงื่อนไขที่จะทำให้เกิดเป็นแท่งเทียนแฮมเมอร์ก็คือ
            1. ตัวแท่งเทียนต้องมีความยาวน้อยกว่าไส้เทียนด้านล่าง 2-3 เท่า
            2.ไส้เทียนด้านบนจะต้องมีความยาวน้อยมากถ้าไม่มีเลยจะยึ่งดี
            3.ถ้าจะใช้เป็นตัวยืนยันการเข้าออร์เดอร์ต้องเป็น Down Trend ก่อนเกิดแท่งเทียน Hammer

เขียนอีเอตรวจสอบแท่งเทียน Hammer ได้อย่างไร
นำเงื่อนไขการเกิดแท่งเทียน Hammer มาเขียนเป็น Logic
            1. fabs(ราคาเปิด - ราคาปิด) * 3 น้อยกว่า ราคาสูงสุด - ราคาต่ำสุด
            2.กำหนดความยาวของไส้เทียนด้านบน Max_Upper_Wick = 10;
                - ถ้าราคาเปิดมากกว่าราคาปิด (ราคาสูงสุด - ราคาเปิด) / Point ต้องน้อยกว่าหรือเท่ากับ Max_Upper_Wick
                - ถ้าราคาเปิดน้อยกว่าราคาปิด (ราคาสูงสุด - ราคาปิด) / Point ต้องน้อยกว่าหรือเท่ากับ Max_Upper_Wick
            3.การเช็ค downtrend อาจเช็คจากแท่งเทียนสามแท่งก่อนหน้า Hammer โดยขณะที่เราเช็ครูปแบบแท่งเทียน Hammer นั้นที่แท่งปัจจุบันจะเป็นแท่งที่ 0 แท่งที่เกิด Hammer จะเป็นแท่งที่ 1 ส่วนแท่งถัดไปที่เราจะเช็ค downtrend จะเป็นแท่งที่ 2,3 และ 4 จะได้เงื่อนไขการเช็ค downtrend คือ
                ราคาเปิดแท่งที่2 < ราคาปิดแท่งที่2 และ ราคาเปิดแท่งที่3 < ราคาปิดแท่งที่3 และราคาเปิดแท่งที่4 < ราคาปิดแท่งที่4


การเขียนโค๊ด เพื่อตรวจสอบแท่งเทียน Hammer
1. การตรวจสอบการเกิดแท่งเทียน Hammer จะทำเมื่อเปิดแท่งเทียนแท่งใหม่ คือตรวจสอบแท่งเทียนก่อนหน้า ซึ่งคือตำแหน่งแท่งที่ 1 เพราะแท่งปัจจุบันคือแท่งที่ 0
    if(!(fabs(iOpen(Symbol(),TimeFrame,1)-iClose(Symbol(),TimeFrame,1))* 3 <         iHigh(Symbol(),TimeFrame,1)-iLow(Symbol(),TimeFrame,1))) {         return;     }
2. ไส้แท่งเทียนบนต้องไม่เกินที่กำหนด
    if((iOpen(Symbol(),TimeFrame,1) > iClose(Symbol(),TimeFrame,1))         if(!((iHigh(Symbol(),TimeFrame,1)-iOpen(Symbol(),TimeFrame,1)) / Point <= Max_Upper_Wick)) {             return;         }     }else if((iOpen(Symbol(),TimeFrame,1) < iClose(Symbol(),TimeFrame,1))         if(!((iHigh(Symbol(),TimeFrame,1)-iClose(Symbol(),TimeFrame,1)) / Point <= Max_Upper_Wick)) {             return;         }     }
3. ตรวจสอบ downtrend
    if(!(iOpen(Symbol(),TimeFrame,2) > iClose(Symbol(),TimeFrame,2) &&     iOpen(Symbol(),TimeFrame,3) > iClose(Symbol(),TimeFrame,3) &&     iOpen(Symbol(),TimeFrame,4) > iClose(Symbol(),TimeFrame,4))) {         return;     } 

***หากอ่านแล้วรู้สึกว่าบทความเป็นประโยชน์ รบกวนแชร์ให้ด้วยนะครับ เพื่อเป็นกำลังใจในการเขียนบทความต่อไป