voidOnStart()
{
double// тип возвращаемого значения
linfunc (double a, double b) // имя функции и список параметров
{
// составной операторreturn (a + b); // возвращаемое значение
}
}
LE 05.0.6.8414:51:19 login (build 392)
HN 2 Tester 14:51:20 initial synchronization error
JF 25.0.6.8414:51:20 send error 10038
LJ 0 Tester 14:51:20 tester agent shutdown
KO 05.0.6.8415:25:41 login (build 392)
HD 2 Tester 15:25:42 initial synchronization error
NM 0 Tester 15:25:42 tester agent shutdown
HM 0127.0.0.115:36:37 login (build 392)
FK 0 Network 15:36:382548 bytes of optimization passes loaded
HM 0 Network 15:36:3816 bytes of input parameters loaded
HE 0 Network 15:36:383788 bytes of group info loaded
GP 0 Network 15:36:383358 bytes of tester parameters loaded
HG 0 Network 15:36:382948 bytes of input parameters loaded
KL 0 Network 15:36:38671 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:38146 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 from2009.01.02 to 2011.01.31
KK 0 History 15:36:42 EURUSD: contains 366322 M1 records of beginning data from2009.01.0210:00 to 2009.12.3118: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 from2009.01.0210: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 from2010.01.0100:00 to 2011.01.0100: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:422010.01.0100:00:00 CSignalCrossEMA::ValidationSettings: period of slow EMA must be greater than period of fast EMA
RF 0 ExpCrossEMA (EURUSD,M5) 15:36:422010.01.0100:00:00 OnInit: error signal parameters
DM 2 Tester 15:36:42 tester stopped because OnInit failed
FG 0 Network 15:36:4216 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 from2010.01.0100:00 to 2011.01.0100: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
この関数は、 MQL5 Reference /Language Basics / Functions から引用しています。
しかし、コンパイラは '(')' と表示する - セミコロンが期待されている
どういう意味ですか?
編集の例(最初に渡されたパラメータを置き換える)で確認しましたが、すべてOKで、エラーは発生しませんでした。
正しいヘルプの例は、次のようになります。
このようなメッセージは、最初の中括弧を丸括弧に置き換えたときに、一度だけ表示されたことがあります。すると、こんなメッセージが表示されました。
'(' - セミコロンが 必要 です。
括弧の数(右と左)が一致しない場合、以下の警告が発生します。
';' - 想定外のトークン
'}'- セミコロンが期待される
追記
もし私が今の例(ロシア語の "a "を含む)をコンパイルしようとすると、コンパイラはあるべき姿のエラーを発生させます。
'a' - 未宣言の識別子.
ないものを他人のために作り上げるのはやめましょう :)この記号は、当然のようにエディターですぐに修正されました。カーソルが'a'文字の前ではなく、開始括弧の前にあるときにエラーが発生します。人間的な気配りとして、引用したコンパイラのコメントで気づくはずです。
疑問は残るが、https://www.mql5.com/ru/forum/1111/page304#comment_48136
説明する。この疑問が生じたのは、私が腰を据えて馬鹿正直に参考書の例をコンパイルしているからではなく、動作する関数を作成するとこのエラーメッセージが表示されるからです。リファレンスから例を参照しても、何も変わりません。ヘッダーから引数の記述を削除しても、問題は解決しません。
そうです、この例とは無関係だと思われるエラーがあるのです...。
コード全体を見る必要がある...
この関数は、 MQL5 Reference /Language Basics / Functions から引用しています。
しかし、コンパイラは '(')' と表示する - セミコロンが期待されている
どういう意味ですか?
例の文字は修正されましたが、まさにそのエラーは取れませんでした。再現できるように、完全なコードを提供してもらえますか?
皆さん、質問に丁寧に答えていただきありがとうございましたつまり、エラーを起こすような「完全なコード」は存在しないのです。C++の教科書に書いてあった、「関数に引数として渡された外部変数の値は、その関数では変更できない」という記述を確認しようと思っただけです(とかなんとか←まあ、独学の分野から)。チェックするためにプリミティブな関数を作成したところ、コンパイラがエラーを発生させる。参考文献を参照し、例をコピーし、例の記号を修正しましたが、まだ同じエラーです。スクリプトテンプレートに関数を挿入し、Expert Advisor テンプレートで試してみましたが、エラーは変わりません。実際、「完全なコード」は、例の関数だけで、onTick() または onStart()関数の 空のボディに 挿入されています。
そんな擬似的な完全コードを夕方にアップしますが、参考になるかどうか。また、1週間ほど「寝て戻る」モードで使っていたので、パソコンに過負荷をかけるようにします。
例の文字が修正されましたが、このような正確なエラーは発生しませんでした。再現できるように、完全なコードを提供してもらえますか?
なぜかこんな風に再現される。
これは、ある機能を別の機能の中で定義しようとしているわけで、許されることではありません。関数呼び出しの 部分で明示的に教えてくれます。
関数は、グローバルに、すなわち他の関数の外側で、プログラムの任意の場所で宣言または記述することができます。関数は、他の関数の中で宣言したり、記述したりすることはできません。
これは、ある機能を別の機能の中で定義しようとしているわけで、許されることではありません。関数呼び出しの 部分で、このように明示されています。
分かりやすい説明ありがとうございましたまさに私の場合。
理論的な知識は、実際に適用したときの正しさを保証するものではありません :)私のミスです。
392を構築。
チャートを削除すると、削除済みリストに表示されない。 File > Open Deleted メニュー項目が機能しないことが判明した。
誤ってチャートを閉じてしまい(展開せず)、削除されたもので見たいと思っていたのに・・・。
392を構築。
チャートを削除すると、削除済みリストに表示されない。 File > Open Deleted メニュー項目が機能しないことが判明した。
削除されたものから見ようと思って、うっかりチャートを(広げずに)閉じてしまい、、、。
チェックを入れてください。
一部のエージェントがリモートで起動しない、そのログはこちらです。
localhost経由ですが、このエージェントはローカルに動作します。
その理由は何でしょうか?