初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 666

 

こんにちは。

この関数を修正して、エラー(ローカル変数のサイズが大きすぎる(512kb以上))をなくす方法を教えてください。

double DTWDistance(double &s[], double &t[])
{
   int slenght = ArraySize(s);
   int tlenght = ArraySize(t);
   double dtw[1000][1000];
   int i, j;

   dtw[0, 0] = 0.0;
   for (j = 1; j <= tlenght; j++)
   {
      dtw[0, j] = 1000000.0;
   }
  
   for (i = 1; i <= slenght; i++)
   {
      dtw[i, 0] = 1000000.0;
   }

   for (i = 1; i <= slenght; i++)
   {
      for (j = 1; j <= tlenght; j++)
      {
         dtw[i, j] = Distance(s[i], t[j]) + MathMin(dtw[i - 1, j], MathMin(dtw[i, j - 1], dtw[i - 1, j - 1]));
      }
   }

   return (dtw[slenght, tlenght]);
}
 
Craft:

こんにちは。

この関数を修正して、エラー(ローカル変数のサイズが大きすぎる(512kb以上))をなくす方法を教えてください。

double DTWDistance(double &s[], double &t[])
{
....
   return (dtw[slenght, tlenght]);
}
やり直すには、その関数が何を解決し、どのようなタスクに使われるかを知る必要がある
 
Vitaly Muzichenko:
やり直すためには、自分の関数が何を解決するのか、どんな作業に使われるのかを知る必要があります。
ヴィタリイさん、こんにちは。

この問題を解決する方法を考えてみましたので、例えばWmiFor30インジケータの簡単なコード・スニペットを添付します。この例を使って、このエラーを修正する方法を教えてください。

ファイル:
WmiFor30.mq4  25 kb
 
Craft:
ごきげんよう、Vitalyです。

MT4のあるビルドから、異なるコードのコンパイル時にエラー(ローカル変数のサイズが大きすぎる(512kb以上))が出るようになり、その対処法を理解しようと、例えばWmiFor30インディケータの簡単なコードと思われるものを貼り付けました。この例を使って、このエラーを修正する方法を教えてください。

どういう原理かわかりませんが、試してみてください、修正点がわかると思います
ファイル:
WmiFor30.mq4  25 kb
 
Vitaly Muzichenko:
何が入っているかわからない、試してみてください。
ありがとうございます、面白いですね。
 

グラフィックの質問です。

こんなデザインもあります

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

メインのグラフではなく、テスターモードで開いているグラフであることを知り、スキップするにはどうしたらよいですか?

 
今日は日曜日です:
TimeCurrent()=1478300399, これは 2016.11.04 22:59 - Friday に相当します
DayOfWeek()=5, これは極めて自然です ))

質問: init() でプログラム的に決定する方法を教えてください; 現在、EAがチャートに取り付けられているとき、休日は日曜日ですか?
TimeLocal()を参照しない場合。
 
Leo59:
こんにちは。
今日は日曜日。
TimeCurrent()=1478300399、これは2016.11.04 22:59〜金曜日に相当する。
DayOfWeek()=5, これは極めて自然なことです ))

Question: init()で、今、EAをチャートに貼り付けた時点で、休日が日曜日であることをプログラム的に判断する方法を教えていただけませんか?
TimeLocal()を参照しない場合。
助かる
 
Vitaly Muzichenko:
役に立つ のでしょうか?
ご指摘ありがとうございます。しかし、:

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) は、以下の場合に false を返すことがあります。

  • トレードサーバーに接続しない。TerminalInfoInteger(TERMINAL_CONNECTED))で確認することができます。
  • 取引口座が読み取り専用に切り替わりました(アーカイブに送信されました)。
  • この アカウントでの 取引は、トレードサーバー側で禁止されています。
  • 取引口座への接続が投資家モードで行われました。

ここでもし、ちょうど :トレードサーバー側で を取引することが禁止されています;

ちょっと違うかな ))


ただし、原理的には、boolIsTradeAllowed();を試すことができる

Vitalyに感謝!!!!

 
残念ながら、うまくいきません。

init();
if(IsTradeAllowed())Print("Trade Allowed");
if(!IsTradeAllowed())Print("Trade is NOT allowed");


取引承認済み」と書いてある

他に方法があるはずだ。どうすればいいのですか?

理由: