Penulis idea — Hazem, penulis kod MQL5 — barabashkakvn.
Salah satu cabaran utama dalam kod ini adalah membandingkan nilai iCCI dan iMACD dengan pembolehubah "Buy Sell Level". Nilai indikator ini mungkin berbeza beberapa kali ganda.
Contohnya, bagi simbol EURUSD, USDJPY, dan USDSEK serta untuk semua nilai tempoh yang tersedia di MetaTrader 5:


Seperti yang anda lihat, iCCI cukup stabil dalam bacaan, manakala iMACD sangat bergantung kepada harga simbol. Untuk menyelesaikan masalah ini, kita boleh mengalikan nilai iMACD dengan satu nisbah:
void OnTick()
{
//----
m_ext_lot=NormalizeDouble(m_account.Balance()/50001.0,2);
if(m_ext_lot<0.1)
m_ext_lot=0.1;
m_cci=iCCIGet(0);
m_macd=iMACDGet(MAIN_LINE,0)*1000000;
m_buy_total=0;
m_sell_total=0;
{
//----
m_ext_lot=NormalizeDouble(m_account.Balance()/50001.0,2);
if(m_ext_lot<0.1)
m_ext_lot=0.1;
m_cci=iCCIGet(0);
m_macd=iMACDGet(MAIN_LINE,0)*1000000;
m_buy_total=0;
m_sell_total=0;

Tip: Disarankan untuk menggunakan EURUSD M30.
Keputusan dari 2016.01.08 hingga 2016.11.06, EURUSD M30, deposit awal — 10,000:

Komen 0