[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 196

 

SergNF:

init()は目盛りの有無にかかわらず一度だけ実行されます。また、init実行時(関数が重い場合)には、tickを飛ばすことがあります。しかし、スタート関数のポイントは、まさに新しいティックが到着したときの関数の実行です。
私は、initでtickを待ち、その時間を記憶する必要があることを明確に述べ、initでその理由を説明しました。
 
eddy:
だから何だと言うのですか(笑)。

すみません。待っててね。
 
eddy:
私は、initでtickを待ち、その時間を記憶する必要があることを明確に述べましたし、initでその理由を説明しました。

???

 
DhP:???
最初のティックをstart()で、残りをinit()で処理したいのですが。
 
eddy:
私は、initでtickを待ち、その時間を記憶する必要があることを明確に述べ、initでその理由を説明しました。
init()でtickを待ってもうまくいきません。init()、deinit()が待てないように作られています。これらの関数で待機しているものはすべて無視されます。何事も2.5秒が勝負です。ドキュメントにはこう書かれている。
 
シーピー
 
eddy:
最初のカチカチ音をstart()で処理し、残りをinit()で処理したい

この掲示板では答えが見つからないと思います。

私の理解では、あなたは「自分の道」を持っている、未知の前に...

 
eddy:
つまり、start()を意図したとおりに使えということですか? 私が必要とすることは明確に述べました - initでtickを待ち、その時間を記憶すること、私はinitでその理由を説明しました。

init()関数内では、ティックの到着は一切特定されないので、死ぬまでティックが来るのを待てばいい、と説明しようとしているのです。

あなたの課題は、start()関数の内部で初歩的に解決されます。ブール変数を入力し、値trueで初期化し、start()関数の一番最初にこの変数からif()を入れて、その中で必要なものを全て記憶し、変数の値をfalseに変更します。この条件演算子は、最初のstart()で、つまりインジケータやExpert Advisorの最初のティックで、一度だけ実行されることになります。

eddy
最初のティックをstart()で処理し、残りをinit()で処理したい。

そしてこれは、申し訳ないがファンタジーである。start()からinit()への戻りは全くありえません。

でも、なぜそんな倒錯が必要なのか、興味深いですね。

 
eddy:
最初のティックをstart()で、残りをinit()で処理したいのですが。
initの最初のものを意味します
 
Yurixx:

init()内部ではtickの到着が一切特定されないことを説明しようとしているのです

見る