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

 

amavladi:


ループの仕組みを理解して、複雑なEAを書けるようになりたい。オペレータの "return "で新しい "start "に投げ出されるいつも必要なわけではありません。

とにかく返信ありがとうございました。

どういたしまして。要は、「第三者」の力を借りて「仕組み」を理解したいのであれば、まさにその「第三者」に対して問題を定式化する必要がある、つまり、自分が得たものではなくて、アルゴリズムから得たいものを記述する必要があるということです。

"ループがループする "というのは、ループ内にcontinue演算子 以外何もなければ、ループ条件が偽になるまでループすることになるので、問題ない。

つまり、「動かないコードで何が動かないのか」というような、くだらない質問はしてはいけないのです。結局のところ、非動作コードが非動作だから動かないということは、酔っ払ったハリネズミでも知っていることなのです。しかし、テレパシー能力のない人は、コードの作者以外には、動作するコードで何がうまくいくはずだったのかを理解することはできない。

 
amavladi:

HELP!

このサイトで良い人を探しています、私の間違いにアドバイスをお願いします。私はMQL4を学び始めたばかりで、 注文をオープンし、小さなテイクプロフィットで それをクローズする簡単なExpert Advisorを書きましたstrategy testerで確認してみたところ、このように書くとfor文とwhile文のループが発生することがわかりました。

//--------------------------------------------------------------------

   while (Ask<=Level)

   { RefreshRates();

     continue;

   }         

さて、ここではすべてがシンプルに見えます。

ストラテジーテスターはティックを生成し、start()を呼び、この関数が終了するまで次のティックを生成するのを待ちます。

ですから、テスターにぶら下がらないようにしたいのであれば、このような構造からは離れてください。あなたの場合、start()から抜けるまでAskの価格は変わりません。

そして、returnコマンドを受信すると、関数startが終了し、次のtickを生成する必要があることをテスターは理解することができます。

さらに、ストラテジーテスターではなく、リアルモードでは、RefreshRatesがAsk価格を更新するので、あなたのコードはあなたの期待通りに動作します。

あなたのコードは問題なく動作しますが、ストラテジーテスターでは無限ループに入ります。

ここではリターンを使うことが有効です。経験を積めば、そのような構造物から解放されるでしょう。頑張ってください。

 
Reshetov:


つまり、「動かないコードで何が動かないのか」というようなくだらない質問はしてはいけないのです。結局のところ、酔っ払ったハリネズミでさえ、動作しないコードは動作しないので、動作しないことを知っているのです。しかし、テレパシー能力のない人は、コードの作者以外には、動作するコードで何がうまくいくはずだったのかを理解することはできない。

コードは動くのですが、初心者が知らないニュアンスが必ずあるんです......。
 
Reshetov:

どういたしまして。要は、「第三者」の力を借りて「仕組み」を理解したいのであれば、同じ「第三者」に対して問題を定式化すること、つまり、得られたものでなく、アルゴリズムから得たいものを記述することが必要なのです。

"ループがループする "というのは、ループ内にcontinue演算 子以外何もなければ、ループ条件が偽になるまでループすることになるので、問題ない。

つまり、「動かないコードで何が動かないのか」というような、くだらない質問はしてはいけないのです。結局のところ、非動作コードが非動作だから動かないということは、酔っ払ったハリネズミでも知っていることなのです。しかし、テレパシー能力のない人は、コードの作者以外には、動作するコードで何がうまくいくはずだったのかを理解することはできない。

初心者に泥を塗られるのが嫌なんです。ただ、質問の表現が悪い/不正確/間違っている、とか、ここが間違い、とか、人間味のある書き方をすればいいんです。あなたも何かを習い始めた頃の自分を思い出してみてください、おそらく一度だけでなく、くだらない質問をしたことがあるはずです。また、酔っ払ったハリネズミの比喩は、何か前向きな解決策をもたらすのでしょうか。新参者を前にして、自分の偉大さの輝きに涼しい顔をするのは、愉快なだけである。
 
paladin800:
初心者に泥を塗られるのが嫌なんです。

豚はどこにでも泥を塗る ©民間諺

どこで土を見つけたんだ?見つけた方は、モデレーターにお尋ねください。

paladin800 です。
酔っぱらいのハリネズミという比喩は、この問題にポジティブさをもたらしてくれるのでしょうか。

比喩やハリネズミの禁止をルールに追加するよう、運営に要請する。

 
Reshetov:

豚はどこにでも泥を塗る ©民間諺

どこで土を見つけたんだ?見つけたら、司会者のところへ。

比喩やハリネズミの禁止をルールに追加するよう、運営に要請する。

そして、なぜモデレーターやアドミン...育種、職業倫理、機転、寛容さ、最後は人間性の問題......。...管理人はどうしようもない。

また、問題を十分に理解していないのであれば、アドバイスをしない方が良いのでは...。時には噛んだ方がいいことも...。他人を犠牲にするのは勝手だが......。

 
elugovoy:

育ちの良さ、職業倫理、機転、寛容さ、結局は人間性...。

幼稚園と貴族院が一緒になったようなところです。

では、個人的なことは抜きにして、初心者の方からの質問にどんどん答えていけばいいのではないでしょうか。そうでなければ、純粋に技術的なテーマで人道的なアプローチを支持する人たちから、一種の媚びを売られることになります。

 
Evgeniy Lugovoy(彼は素晴らしいテレパシー能力を持っています)に感謝したいと思います。 実物とテスターサイクルの問題についての私の質問に100パーセント答えてくれました。 同じ日の夜、リンク http://articles によって「エキスパートアドバイザーの テストと最適化」の記事を読みました。同じ日の夕方、私はリンクによって記事 "EAのテストと最適化 "に遭遇した. mql4.com/ja/824 (これは私のような初心者向けです)とテスターは離散的に実際の価格の動きを作成し、EAの次の繰り返しでのみ新しい引用符を与えることに気づいたので、私は前に演算子のループがあった場所、一連のIF文を使ってテスト用のコードを書き直しました。私のような初心者は、MQL4の「共通関数」(リンク http://docs.mql4.com/ru/common)を詳しく知ることをお勧めします。一つの同じ関数が実端末とストラテジーテスターで動作が異なることに驚きました。例えばテスターではSleep()が本来の遅延ではなく、実端末でのみ動作するのです。最後に、(私のような)無謀な条件付き無限ループの愛好家のために、int start(){ double Level=1300; while (Ask<=Level)コードの最後の2行は、その無実にもかかわらず、価格が1300に達する限り、リアルマネーのウィンドウでターミナル上で実行した後、膨大なCPU時間がかかります(私の25 % 2-coreで)。私の友人は、あなたがループを放棄することはできません場合は、スリープ(int 100)を挿入する必要があり、つまり、プロセッサを緩和するために100〜200ミリ秒の間隔を与えることを示唆した。int start() { double Level=1300;while (Ask<=Level) { Sleep( int 100) continue; }
P.S. 酔っぱらいハリネズミ、スクリューボール、フルーダースティーなど、「第三者」の表現に憧れている人たちへ。(私たちは純粋に技術的な話題であるが)、私はフョードルMikhailovichドストエフスキーに少し参照を与えることができ、彼の小説で "白痴 "王子Myshkinを通じて非常に奇妙なことを言って: "美しさは世界を救う!"私は、そのようなことをすることができます。そしてユージンさんへ、私は他の国に住んでいますが、キシネフで生まれましたので、モルドバによろしくとお願いします。
 
amavladi:

テレパシー的なものはありません ))) 例えばトロールの値段を「釣りたい」と思った時、誰もが同じ失敗をしたことがあると思います...。6年前の私を含めて。

ちなみに、この話題は初心者向けで、「技術的に厳しい」わけではありません。

挨拶しておく。

頑張ってください。

 
elugovoy:

テレパシー的なものはありません ))) 例えばトロールの値段を「釣りたい」と思った時、誰もが同じ失敗をしたことがあると思います...。6年前の私を含めて。

ちなみに、この話題は初心者向けで、「技術的に厳しい」わけではありません。

挨拶しておく。

頑張ってください。

テレパシーと「純粋に技術的なこと」については、私はレシェトフ 氏に賛成です : )))

あなたも頑張ってください。

理由: