ผู้คิดค้นไอเดีย — Vladimir Khlystov, ผู้เขียนโค้ด MQL5 — barabashkakvn.
กลยุทธ์การเทรด: การทะลุผ่านจุดสูง/ต่ำในช่วงเวลาที่เลือก ใช้ระบบการเทรด "Nevalyashka" และเทคนิคมาร์ติงเกลในการเพิ่มล็อตเพื่อกู้คืนตำแหน่งที่ขาดทุน
ระบบจะคำนวณราคาสูงและต่ำในช่วงเวลาที่กำหนดจาก "Time start" ถึง "Time end":

ถ้าราคาเกินจุดสูงในช่วงนี้ จะมีการเปิดตำแหน่ง BUY ถ้ารราคาต่ำกว่าจุดต่ำ จะมีการเปิดตำแหน่ง SELL โดยตั้ง StopLoss ไว้ที่ขอบตรงข้ามของช่วงเวลา เช่นที่ราคาต่ำสำหรับตำแหน่ง BUY และที่ราคาสูงสำหรับตำแหน่ง SELL ส่วน TakeProfit จะถูกตั้งตามความสูงของช่วงควบคุม
ถ้า Use time close ถูกตั้งเป็นจริง พารามิเตอร์ Time close (เวลาปิดตำแหน่งทั้งหมด) จะถูกเปิดใช้งาน
จะพิจารณาแค่ชั่วโมงและนาทีสำหรับพารามิเตอร์ "Time start", "Time end" และ Time close
การปิดตำแหน่งด้วย StopLoss จะถูกตรวจสอบใน OnTradeTransaction
เมื่อพบ "DEAL_ENTRY_OUT" (การออกจากการเข้า) ให้ตรวจสอบช่องคอมเมนต์ของดีลนี้ หาก คอมเมนต์มี "sl" หมายความว่าดีลถูกปิดโดย StopLoss:
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { MqlDateTime str1; TimeToStruct(TimeCurrent(),str1); //--- มีโอกาสที่การปิดนี้จะเป็นการปิดที่ TakeProfit if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit>=0.0) { TradeDey=str1.day; return; } //--- มีโอกาสที่การปิดนี้จะเป็นการปิดที่ StopLoss if(StringFind(deal_comment,"sl",0)!=-1) { if(TradeDey!=str1.day) { Print("ตรวจพบการปิดด้วย StopLoss!"); double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume); if(deal_type==DEAL_TYPE_SELL) // ตำแหน่งซื้อถูกปิด { double SL=m_symbol.Bid()+loss*m_symbol.Point(); double TP=m_symbol.Bid()-loss*m_symbol.Point(); double Lot=LotCheck(deal_volume*InpK_martin); if(Lot==0.0) return; OpenSell(SL,TP,Lot,"Nevalyashka"); if(deal_type==DEAL_TYPE_BUY) // ตำแหน่งขายถูกปิด { double SL=m_symbol.Ask()-loss*m_symbol.Point(); double TP=m_symbol.Ask()+loss*m_symbol.Point(); double Lot=LotCheck(deal_volume*InpK_martin); if(Lot==0.0) return; OpenBuy(SL,TP,Lot,"Nevalyashka"); } return; } }
เปิดตำแหน่งตรงข้ามกับตำแหน่งที่ถูกปิด (ถ้าประเภทดีลคือ "DEAL_TYPE_SELL" หมายความว่าตำแหน่ง BUY ถูกปิด; "DEAL_TYPE_BUY" หมายความว่าตำแหน่ง SELL ถูกปิด) ด้วยล็อตที่เพิ่มขึ้นโดยคูณด้วย K. martin. หากตำแหน่งถูกปิดด้วยกำไรเชิงบวก ระบบจะรอเวลาเริ่มต้นของช่วงถัดไป "Time end", และทำซ้ำกระบวนการข้างต้น
"No loss" หมายถึงจุดคุ้มทุน; เมื่อได้กำไรจากตำแหน่งครึ่งหนึ่ง StopLoss จะถูกย้ายไปที่ราคาที่เปิดตำแหน่ง
ตัวอย่างหากทดสอบใน EURUSD,M30:

ความคิดเห็น 0