Pengarang idea — George F.Peskov, pengarang kod MQL5 — barabashkakvn.
Sistem trading ini berasaskan persilangan dua iMA (MA) di mana stop loss ditetapkan secara automatik berdasarkan nilai ATR. Anda juga akan menerima notifikasi melalui email setiap kali posisi dibuka atau ditutup. Parameter sistem ini boleh disesuaikan melalui proses backtesting.
Mendapatkan nilai indikator pada bar pertama dan kedua:
//--- mendapatkan Moving Average
mas=iMAGet(handle_iMA1,1); // moving average panjang 12
maf=iMAGet(handle_iMA2,1); // moving average pendek 4
mas_p=iMAGet(handle_iMA1,2); // moving average panjang 12
maf_p=iMAGet(handle_iMA2,2); // moving average pendek 4
Atr=iATRGet(0);
mas=iMAGet(handle_iMA1,1); // moving average panjang 12
maf=iMAGet(handle_iMA2,1); // moving average pendek 4
mas_p=iMAGet(handle_iMA1,2); // moving average panjang 12
maf_p=iMAGet(handle_iMA2,2); // moving average pendek 4
Atr=iATRGet(0);
Semak syarat untuk menjual:
//--- Syarat untuk menjual
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="Operasi JUAL oleh"+Symbol()+"";
sBodyLetter="Transaksi JUAL pada"+Symbol()+" pada "+DoubleToString(m_symbol.Bid(),Digits())+
", dan tetapkan stop/loss pada "+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="Operasi JUAL oleh"+Symbol()+"";
sBodyLetter="Transaksi JUAL pada"+Symbol()+" pada "+DoubleToString(m_symbol.Bid(),Digits())+
", dan tetapkan stop/loss pada "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
Semak syarat untuk membeli:
//--- Syarat untuk membeli
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="Operasi BELI pada"+Symbol()+"";
sBodyLetter="Transaksi BELI pada"+Symbol()+" untuk "+DoubleToString(m_symbol.Ask(),Digits())+
", dan tetapkan stop/loss pada "+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="Operasi BELI pada"+Symbol()+"";
sBodyLetter="Transaksi BELI pada"+Symbol()+" untuk "+DoubleToString(m_symbol.Ask(),Digits())+
", dan tetapkan stop/loss pada "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
Siaran berkaitan
- Pemprosesan Pesanan Visual - Sistem Trading untuk MetaTrader 4
- MQL5 Wizard: Cipta Sistem Trading Berdasarkan Pola Morning/Evening Star dan RSI
- MQL5 Wizard: Cipta Isyarat Dagangan Menggunakan Corak Morning/Evening Star dan MFI
- Panduan Lengkap MQL5 Wizard untuk Isyarat Dagangan Berdasarkan Morning/Evening Stars dan Stochastic
- MQL5 Wizard: Sinyal Dagangan Berdasarkan Corak Bintang Pagi/Malam + CCI untuk MetaTrader 5