エラー、バグ、質問 - ページ 304

削除済み  
Yedelkin:

この関数は、 MQL5 Reference /Language Basics / Functions から引用しています。

しかし、コンパイラは '(')' と表示する - セミコロンが期待されている

どういう意味ですか?

編集の例(最初に渡されたパラメータを置き換える)で確認しましたが、すべてOKで、エラーは発生しませんでした。

正しいヘルプの例は、次のようになります。

//function linfunc
double linfunc(double a, double b)
{
return(a + b);
}

このようなメッセージは、最初の中括弧を丸括弧に置き換えたときに、一度だけ表示されたことがあります。すると、こんなメッセージが表示されました。

'(' - セミコロンが 必要 です。

括弧の数(右と左)が一致しない場合、以下の警告が発生します。

';' - 想定外のトークン
'}'- セミコロンが期待される

追記

もし私が今の例(ロシア語の "a "を含む)をコンパイルしようとすると、コンパイラはあるべき姿のエラーを発生させます。

'a' - 未宣言の識別子.

 
Yedelkin:

ないものを他人のために作り上げるのはやめましょう :)この記号は、当然のようにエディターですぐに修正されました。カーソルが'a'文字の前ではなく、開始括弧の前にあるときにエラーが発生します。人間的な気配りとして、引用したコンパイラのコメントで気づくはずです。

疑問は残るが、https://www.mql5.com/ru/forum/1111/page304#comment_48136

説明する。この疑問が生じたのは、私が腰を据えて馬鹿正直に参考書の例をコンパイルしているからではなく、動作する関数を作成するとこのエラーメッセージが表示されるからです。リファレンスから例を参照しても、何も変わりません。ヘッダーから引数の記述を削除しても、問題は解決しません。

そうです、この例とは無関係だと思われるエラーがあるのです...。

コード全体を見る必要がある...

 
Yedelkin:

この関数は、 MQL5 Reference /Language Basics / Functions から引用しています。

しかし、コンパイラは '(')' と表示する - セミコロンが期待されている

どういう意味ですか?

例の文字を直しましたが、この正確なエラーは出ませんでした。再現できるように、完全なコードを提供してもらえますか?
 
Rosh:
例の文字は修正されましたが、まさにそのエラーは取れませんでした。再現できるように、完全なコードを提供してもらえますか?

皆さん、質問に丁寧に答えていただきありがとうございましたつまり、エラーを起こすような「完全なコード」は存在しないのです。C++の教科書に書いてあった、「関数に引数として渡された外部変数の値は、その関数では変更できない」という記述を確認しようと思っただけです(とかなんとか←まあ、独学の分野から)。チェックするためにプリミティブな関数を作成したところ、コンパイラがエラーを発生させる。参考文献を参照し、例をコピーし、例の記号を修正しましたが、まだ同じエラーです。スクリプトテンプレートに関数を挿入し、Expert Advisor テンプレートで試してみましたが、エラーは変わりません。実際、「完全なコード」は、例の関数だけで、onTick() または onStart()関数の 空のボディに 挿入されています。

そんな擬似的な完全コードを夕方にアップしますが、参考になるかどうか。また、1週間ほど「寝て戻る」モードで使っていたので、パソコンに過負荷をかけるようにします。

 
Rosh:
例の文字が修正されましたが、このような正確なエラーは発生しませんでした。再現できるように、完全なコードを提供してもらえますか?
void OnStart()
  {
   double                       // тип возвращаемого значения
   linfunc (double a, double b)  // имя функции и список параметров
     {
                               // составной оператор
      return (a + b);           // возвращаемое значение
     }
  }
こんな感じで、なんとなく再現しています。
 
Swan:
なぜかこんな風に再現される。

これは、ある機能を別の機能の中で定義しようとしているわけで、許されることではありません。関数呼び出しの 部分で明示的に教えてくれます。

関数は、グローバルに、すなわち他の関数の外側で、プログラムの任意の場所で宣言または記述することができます。関数は、他の関数の中で宣言したり、記述したりすることはできません。

 
Rosh:

これは、ある機能を別の機能の中で定義しようとしているわけで、許されることではありません。関数呼び出しの 部分で、このように明示されています。

分かりやすい説明ありがとうございましたまさに私の場合。

理論的な知識は、実際に適用したときの正しさを保証するものではありません :)私のミスです。

 

392を構築。

チャートを削除すると、削除済みリストに表示されない。 File > Open Deleted メニュー項目が機能しないことが判明した。

誤ってチャートを閉じてしまい(展開せず)、削除されたもので見たいと思っていたのに・・・。

 
Ashes:

392を構築。

チャートを削除すると、削除済みリストに表示されない。 File > Open Deleted メニュー項目が機能しないことが判明した。

削除されたものから見ようと思って、うっかりチャートを(広げずに)閉じてしまい、、、。

チェックを入れてください。


 

一部のエージェントがリモートで起動しない、そのログはこちらです。

LE      0       5.0.6.84        14:51:19        login (build 392)
HN      2       Tester  14:51:20        initial synchronization error
JF      2       5.0.6.84        14:51:20        send error 10038
LJ      0       Tester  14:51:20        tester agent shutdown
KO      0       5.0.6.84        15:25:41        login (build 392)
HD      2       Tester  15:25:42        initial synchronization error
NM      0       Tester  15:25:42        tester agent shutdown
HM      0       127.0.0.1       15:36:37        login (build 392)
FK      0       Network 15:36:38        2548 bytes of optimization passes loaded
HM      0       Network 15:36:38        16 bytes of input parameters loaded
HE      0       Network 15:36:38        3788 bytes of group info loaded
GP      0       Network 15:36:38        3358 bytes of tester parameters loaded
HG      0       Network 15:36:38        2948 bytes of input parameters loaded
KL      0       Network 15:36:38        671 bytes of selected symbols loaded
CD      0       Tester  15:36:38        expert file added: Experts\MyExperts\ExpCrossEMA.ex5. 133395 bytes loaded
QS      0       Tester  15:36:38        initial deposit 5000.00 USD, leverage 1:100
PJ      0       Tester  15:36:38        successfully initialized
NP      0       Network 15:36:38        146 Kb of total initialization data received
MG      0       Tester  15:36:38        optimization pass 393 started
LR      0       TesterAgent     15:36:38        Intel Core2 Duo  E8200 @ 2.66 GHz, 2047 MB, PR49
DI      0       Symbols 15:36:40        EURUSD: symbol synchronized, 2904 bytes of symbol info received
QS      0       History 15:36:40        EURUSD: load 704 Kb of history data to synchronize
OF      0       History 15:36:40        EURUSD: history synchronized from 2009.01.02 to 2011.01.31
KK      0       History 15:36:42        EURUSD: contains 366322 M1 records of beginning data from 2009.01.02 10:00 to 2009.12.31 18:59
CH      0       History 15:36:42        EURUSD,M5: history cache reserved for estimated 150171 bars
JO      0       History 15:36:42        EURUSD,M5: history begins from 2009.01.02 10:00
NK      0       Tester  15:36:42        EURUSD,M5 (Alpari-Demo): every tick generating
KS      0       Tester  15:36:42        EURUSD,M5: testing of Experts\MyExperts\ExpCrossEMA.ex5 from 2010.01.01 00:00 to 2011.01.01 00:00 started with inputs:
PN      0       Tester  15:36:42          Inp_Signal_CrossEMA_FastPeriod=30
GG      0       Tester  15:36:42          Inp_Signal_CrossEMA_SlowPeriod=18
DS      0       Tester  15:36:42          Inp_Expert_Title=ExpCrossEMA
MK      0       Tester  15:36:42          Inp_Money_FixLot_Percent=10
FM      0       Tester  15:36:42          Inp_Money_FixLot_Lots=0.1
GO      0       ExpCrossEMA (EURUSD,M5) 15:36:42        2010.01.01 00:00:00   CSignalCrossEMA::ValidationSettings: period of slow EMA must be greater than period of fast EMA
RF      0       ExpCrossEMA (EURUSD,M5) 15:36:42        2010.01.01 00:00:00   OnInit: error signal parameters
DM      2       Tester  15:36:42        tester stopped because OnInit failed
FG      0       Network 15:36:42        16 bytes of tester parameters received
PR      0       Tester  15:36:42        optimization pass 1817 started
FK      0       Tester  15:36:42        initial deposit 5000.00 USD, leverage 1:100
FL      0       Tester  15:36:44        EURUSD,M5 (Alpari-Demo): every tick generating
GE      0       Tester  15:36:44        EURUSD,M5: testing of Experts\MyExperts\ExpCrossEMA.ex5 from 2010.01.01 00:00 to 2011.01.01 00:00 started with inputs:
GE      0       Tester  15:36:44          Inp_Signal_CrossEMA_FastPeriod=28
KM      0       Tester  15:36:44          Inp_Signal_CrossEMA_SlowPeriod=49
DJ      0       Tester  15:36:44          Inp_Expert_Title=ExpCrossEMA
IM      0       Tester  15:36:44          Inp_Money_FixLot_Percent=10
RF      0       Tester  15:36:44          Inp_Money_FixLot_Lots=0.1
GO      0       Tester  15:36:45        output to log disabled
IO      0       Tester  15:37:10        OnTester result 0

localhost経由ですが、このエージェントはローカルに動作します。

その理由は何でしょうか?