アイデアの作者 — Hazem、MQL5コードの作者 — barabashkakvnです。
このコードの主な難しさは、iCCIとiMACDの値を「買い売りレベル」変数と比較することです。指標の値は数倍、あるいは何十倍も異なることがあります。
例えば、EURUSD、USDJPY、USDSEKのシンボルやMetaTrader 5で利用可能なすべての期間値を考えてみましょう:


ご覧の通り、iCCIは比較的安定した値を示す一方で、iMACDはシンボルの価格に非常に依存します。これを解決するために、iMACDの値に比率を掛けることが考えられます:
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;
ヒント:EURUSD M30を推奨します。
2016年1月8日から2016年11月6日までの結果、EURUSD M30、初期預金 — 10,000:

コメント 0