MetaTrader 4 Build 529 ベータ版リリース、新コンパイラー搭載 - ページ 3

 

インクルードファイルの接続方法がわからない.

can't open "E:\TerminalMQL4↵includeCommentary.mqh" include file 21 11

 
Barbarian:
どのようなタイマーとどのようなループがありますか?

int OnInit()
  {
//--- create timer
   EventSetMillisecondTimer(500);
      
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
      
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
    static int Count = 1;
    RefreshRates();
    Comment("\n\n","Ask = ", Ask, "\nBid = ", Bid, "\nCount = ", Count);
    Count++;
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester()
  {
//---
   double ret=0.0;
//---

//---
   return(ret);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
    Print(
      "id = ", id,
      ";   lparam = ", lparam,
      ";   dparam = ", dparam,
      ";   sparam = ", sparam
    );
   
  }


ちなみに、OnChartEvent() も動作し、特にonMouseMoveとonClickは動作します。

 
VOLDEMAR:

インクルードファイルの接続方法がわからない.

can't open "E:\TerminalMQL4↵includeCommentary.mqh" include file 21 11


コードを再作成してコンパイルしたところ、すべてうまくいきました。
 

テスターでExpert Advisorを起動すると、ターミナル・ウィンドウが閉じます。

その理由は、この行(関数OnInit())にあります。

if(Bars<250) {Alert("ERROR HISTORY BARS<250"); return(INIT_FAILED);}

チャート上で起動した後、Expert Advisorは「ERROR HISTORY BARS<250」というエラーを発生させます。

Print(Bars);
0を 表示しています。 ウィンドウ内のバー数は16387本です。
 
グラフィカルなアプリケーションではWingdingsのようなフォントは姿を消してしまった。新しいMT4はユニコードでないと...。でも、それはあくまでもその場のノリで。もしかしたら、問題は別のところにあるのかもしれません。
 

なぜこのコードは 00 00 00 00 を返すのか理解できません。

string TimeS(string txt)
{
string d,h,m,s,n; 
d=DoubleToStr(Day()    ,0); if (StringLen(d)<2) d="0"+d;
h=DoubleToStr(Hour()   ,0); if (StringLen(h)<2) h="0"+h;
m=DoubleToStr(Minute() ,0); if (StringLen(m)<2) m="0"+m;
s=DoubleToStr(Seconds(),0); if (StringLen(s)<2) s="0"+s;
if (StringLen(txt)==6)
n =txt+d+" "+h+"."+m+"."+s+" ";
else
n =txt+d+" "+h+":"+m+":"+s+" ";
return(n);
}
 
nasdaq:

テスターでExpert Advisorを起動すると、ターミナル・ウィンドウが閉じます。

その理由は、この行(関数OnInit())にあります。

チャート上で起動した後、Expert Advisorは「ERROR HISTORY BARS<250」というエラーを発生させます。

0を 表示しています。 ウィンドウ内のバー数は16387本です。

はい、このエラーは修正されます。
 
VOLDEMAR:

なぜこのコードは 00 00 00 00 を返すのか理解できません。

手始めに数値を文字 列に変換する各行で、よりコンパクトな構造を使ってみてください。

d = LeadZero(Day());

string LeadZero(int value)
{
   if (value > 9)
      return (DoubleToStr(value, 0));

   return ("0" + DoubleToStr(value, 0));
}
 
他の端末のアップデートに影響を与えないようにするには、テスト端末のアップデートに成功した後、C: \ProgramDataMetaQuotes㊞WebInstall ディレクトリを削除するだけです。
 
Scriptong:

そもそも数値を文字列に変換する各行で、よりコンパクトな構造を使ってみてください。


こんな感じでも

Comment(Day());

ドロー0 ...

理由: