ผู้เขียนแนวคิด — John Smith, ผู้เขียนโค้ด MQL5 — barabashkakvn.
Expert Advisor นี้ถูกตั้งค่าให้เทรดคู่เงิน USDJPY ในกรอบเวลา H1 ครับ
EA นี้ใช้ Moving Average สองตัว, MACD หนึ่งตัว และ CCI หนึ่งตัว โดยใช้ฟังก์ชัน OnTradeTransaction เพื่อรับเวลาที่เปิดตำแหน่ง
ค่าต่างๆ ของอินดิเคเตอร์จะถูกใช้จากแท่งที่มีดัชนี 1.
//--- การตั้งค่าอินดิเคเตอร์ CAMELHIGHP1=iMAGet(handle_iMA_PRICE_HIGH,1); CAMELLOWP1=iMAGet(handle_iMA_PRICE_LOW,1); // MACDSP1=iMACDGet(SIGNAL_LINE,1); MACDSP2=iMACDGet(SIGNAL_LINE,2); // MACDHP1=iMACDGet(MAIN_LINE,1); MACDHP2=iMACDGet(MAIN_LINE,2); // CCIP1=iCCIGet(1);
มีการควบคุมการเปิดตำแหน่งอย่างเหมาะสมเพื่อเช็คว่ามีการเปิดตำแหน่งอยู่แล้วในแท่งปัจจุบันหรือไม่ ซึ่งไม่ต้องเช็คทุกตำแหน่ง (เพราะอาจมี EA อื่นๆ ทำงานอยู่ในบัญชีเทรดเดียวกัน)
เวลาที่เปิดตำแหน่งจะถูกควบคุมในฟังก์ชัน OnTradeTransaction หากมีการปิดตำแหน่งที่ถูกบันทึก เวลาที่เปิดจะถูกรีเซ็ต:
//+------------------------------------------------------------------+ //| ฟังก์ชัน TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- รับประเภทของการทำธุรกรรมตามค่าของการระบุ ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- หากธุรกรรมเป็นผลมาจากการเพิ่มของธุรกรรมในประวัติ if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_entry =0; long deal_time =0; string deal_symbol =""; long deal_magic =0; if(HistoryDealSelect(trans.deal)) { deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) { if(deal_entry==DEAL_ENTRY_OUT) { m_last_close_time=(datetime)deal_time; } else if(deal_entry!=DEAL_ENTRY_OUT) { m_last_close_time=0; } } }
โพสต์ที่เกี่ยวข้อง
- MQL5 Wizard: สร้างสัญญาณการเทรดจาก Bullish Harami/Bearish Harami พร้อม MFI
- การสร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณการเทรดจาก Morning/Evening Stars + RSI
- สร้าง Expert Advisor ด้วย MQL5 Wizard สำหรับสัญญาณการเทรด Bullish Harami/Bearish Harami และ RSI
- MQL5 Wizard: ระบบเทรดสัญญาณจาก Hammer/Hanging Man + MFI บน MetaTrader 5
- MQL5 Wizard: สัญญาณการเทรดจากรูปแบบแท่งเทียน 3 Black Crows/3 White Soldiers + CCI