ผู้คิดค้นระบบ — George F.Peskov, ผู้เขียนโค้ด MQL5 — barabashkakvn.
ระบบเทรดนี้ใช้การตัดกันของค่าเฉลี่ยเคลื่อนที่สองตัว (iMA) โดยการตั้งค่า Stop Loss จะถูกกำหนดโดยอัตโนมัติตามค่าของ ATR นอกจากนี้ยังมีการส่งข้อความทางอีเมลเมื่อเปิดหรือปิดตำแหน่ง ผู้ใช้สามารถเลือกตั้งค่าผ่านการ backtesting ได้อีกด้วย
การดึงค่าของ Indicator
เรามาดูวิธีการดึงค่าของค่าเฉลี่ยเคลื่อนที่ในแถบแรกและแถบที่สองกัน:
//--- ดึงค่า Moving Average
mas=iMAGet(handle_iMA1,1); // ค่าเฉลี่ยเคลื่อนที่ระยะยาว 12
maf=iMAGet(handle_iMA2,1); // ค่าเฉลี่ยเคลื่อนที่ระยะสั้น 4
mas_p=iMAGet(handle_iMA1,2); // ค่าเฉลี่ยเคลื่อนที่ระยะยาว 12
maf_p=iMAGet(handle_iMA2,2); // ค่าเฉลี่ยเคลื่อนที่ระยะสั้น 4
Atr=iATRGet(0);
mas=iMAGet(handle_iMA1,1); // ค่าเฉลี่ยเคลื่อนที่ระยะยาว 12
maf=iMAGet(handle_iMA2,1); // ค่าเฉลี่ยเคลื่อนที่ระยะสั้น 4
mas_p=iMAGet(handle_iMA1,2); // ค่าเฉลี่ยเคลื่อนที่ระยะยาว 12
maf_p=iMAGet(handle_iMA2,2); // ค่าเฉลี่ยเคลื่อนที่ระยะสั้น 4
Atr=iATRGet(0);
ตรวจสอบเงื่อนไขสำหรับการขาย
//--- เงื่อนไขสำหรับการขาย
if(maf<mas && maf_p>=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Ask()+Atr,Digits());
res=m_trade.Sell(lots,Symbol(),m_symbol.Bid(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation SELL by"+Symbol()+"";
sBodyLetter="Deal Sell by"+Symbol()+" at "+DoubleToString(m_symbol.Bid(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
if(maf<mas && maf_p>=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Ask()+Atr,Digits());
res=m_trade.Sell(lots,Symbol(),m_symbol.Bid(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation SELL by"+Symbol()+"";
sBodyLetter="Deal Sell by"+Symbol()+" at "+DoubleToString(m_symbol.Bid(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
ตรวจสอบเงื่อนไขสำหรับการซื้อ
//--- เงื่อนไขสำหรับการซื้อ
if(maf>mas && maf_p<=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Bid()-Atr,Digits());
res=m_trade.Buy(lots,Symbol(),m_symbol.Ask(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation BUY at"+Symbol()+"";
sBodyLetter="Deal Buy at"+Symbol()+" for "+DoubleToString(m_symbol.Ask(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
if(maf>mas && maf_p<=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Bid()-Atr,Digits());
res=m_trade.Buy(lots,Symbol(),m_symbol.Ask(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation BUY at"+Symbol()+"";
sBodyLetter="Deal Buy at"+Symbol()+" for "+DoubleToString(m_symbol.Ask(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
โพสต์ที่เกี่ยวข้อง
- การสร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณการเทรดจาก Morning/Evening Stars + RSI
- สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI
- MQL5 Wizard: สร้างสัญญาณการเทรดจาก Bullish Harami/Bearish Harami พร้อม MFI
- ใช้ MQL5 Wizard สร้าง Expert Advisor ด้วยสัญญาณเทรด Morning/Evening Stars + Stochastic
- MQL5 Wizard: ระบบเทรดสัญญาณจาก Hammer/Hanging Man + MFI บน MetaTrader 5