[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 209 1...202203204205206207208209210211212213214215216...432 新しいコメント polycomp 2013.03.09 20:05 #2081 polycomp: これが関数で、オブジェクトはグラフ上に表示される長方形です。 ファイル: lib_zemckikh.mq4 14 kb polycomp 2013.03.09 20:07 #2082 polycomp: ファイル: bar_distribute_1.mq4 6 kb Алексей Тарабанов 2013.03.09 20:07 #2083 見てみないとわからない、時間がかかる。 TarasBY 2013.03.09 20:14 #2084 polycomp: 再初期化後にコードの動作が異なる理由として考えられるのは、MT4における静的変数の初期化の特殊性です。isNewBar()関数では、このような変数を使用します。一次初期化時 BarTime = 0.さらに再初期化すると、この変数には以前の値(0ではない)が格納されます。この仮定を確認するために、BarTime変数をグローバルにして、コードがどのように動くかを確認します。 Alexey Subbotin 2013.03.09 21:33 #2085 polycomp:alsu: まず、Printでライブラリ関数が全く呼び出されないかどうかを知るために、何かをプリントアウトします。グラフィカルなオブジェクトは、ライブラリ関数で作成されます。インジケータを最初に呼び出した後、オブジェクトが作成され、ターミナルウィンドウに表示されます。 再度呼び出すとオブジェクトのリストに存在しないことから、何らかの理由でインジケータを再計算する際に外部関数が動作していないと考えられ、この件に関してはターミナルは沈黙を守っています。 オッケーです。間接記号の代わりに、インジケータに(" この関数の呼び出し")と表示すれば、この関数が呼び出されたかどうかがすぐに分かる。傲慢にならないほうがいい、そうすればエラーは早く見つかる) Alexey Subbotin 2013.03.09 21:40 #2086 polycomp: 一般的に、あなたの問題は、ほとんどの場合、関数bool isNewBar() { static datetime BarTime; bool res=false; if (BarTime!=Time[0]) { BarTime=Time[0]; res=true; } return(res); }問題は、再初期化の際に静態がリセットされないので、再起動すると、BarTimeは常に前回カウントした最後のバーの時間に等しく、つまり、新しいローソクが 到着するまでisNewBar()は偽になることです。ライブラリからmqhインルダに関数を移動し、init()で明示的にBarTime=0をゼロにするのが良いだろう。これは、コードを一目見ただけなので、私が間違っていてもあまり厳しく判断しないでください。 Victor Nikolaev 2013.03.10 00:26 #2087 polycomp: まず、ライブラリから次の行を削除することから始めます。#property libraryライブラリではなく、インクルードファイルを使っているため ANDREY 2013.03.10 03:37 #2088 alsu: 私の記憶では、保留中の注文を設定するときに、この時間を特に覚えておく必要があります。オーダーへのコメントで直接記憶させることができます(特殊な変態としてマジコンでも可:)。 ありがとうございました。 ANDREY 2013.03.10 04:00 #2089 QUESTION 1.このアイデアをどうコード化するか。注文を保留して おきながら、保留した注文の設定価格とTF60ローソク足の始値が一致した場合にのみ 成行 注文に変更する場合。質問2.このアイデアをどうコード化するか。もし、保留中の注文が成行注文に変換された場合、10分後に、成行注文に変換された前の保留中の注文と 同じ 値: 始値、 終値、数量を 持つ別の保留中の注文を設定する必要があります。ありがとうございます。 polycomp 2013.03.10 06:01 #2090 alsu: オッケーです。間接的な記号で判断するのではなく、Print ("call of such and such function") とインジケータそのものを入力すれば、それが呼び出されたかどうかがすぐにわかるかもしれません。過信は禁物で、そうすればエラーは早く発見されるでしょう)。 alsu: そして、一般的には、あなたの問題は、ほとんどの場合、関数再初期化する際に静的情報をゼロにしないため、再起動時にBarTimeは常に前回カウントした最後のバーの時間と同じになり、つまり新しいローソクが到着するまでisNewBar()は偽となります。ライブラリからmqhインルダに関数を移動し、init()で明示的にBarTime=0をゼロにした方が良いと思います。これは、コードを一目見ただけなので、私が間違っていてもあまり厳しく判断しないでください。 ありがとうございました。ライブラリからisNewBar()を削除し、インジケータファイルに配置しました。すべてが時計のように正確に動いています。 1...202203204205206207208209210211212213214215216...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これが関数で、オブジェクトはグラフ上に表示される長方形です。
まず、Printでライブラリ関数が全く呼び出されないかどうかを知るために、何かをプリントアウトします。
グラフィカルなオブジェクトは、ライブラリ関数で作成されます。インジケータを最初に呼び出した後、オブジェクトが作成され、ターミナルウィンドウに表示されます。
再度呼び出すとオブジェクトのリストに存在しないことから、何らかの理由でインジケータを再計算する際に外部関数が動作していないと考えられ、この件に関してはターミナルは沈黙を守っています。オッケーです。間接記号の代わりに、インジケータに(" この関数の呼び出し")と表示すれば、この関数が呼び出されたかどうかがすぐに分かる。
傲慢にならないほうがいい、そうすればエラーは早く見つかる)
一般的に、あなたの問題は、ほとんどの場合、関数
問題は、再初期化の際に静態がリセットされないので、再起動すると、BarTimeは常に前回カウントした最後のバーの時間に等しく、つまり、新しいローソクが 到着するまでisNewBar()は偽になることです。ライブラリからmqhインルダに関数を移動し、init()で明示的にBarTime=0をゼロにするのが良いだろう。
これは、コードを一目見ただけなので、私が間違っていてもあまり厳しく判断しないでください。
まず、ライブラリから次の行を削除することから始めます。
#property library
ライブラリではなく、インクルードファイルを使っているため
私の記憶では、保留中の注文を設定するときに、この時間を特に覚えておく必要があります。オーダーへのコメントで直接記憶させることができます(特殊な変態としてマジコンでも可:)。
QUESTION 1.
このアイデアをどうコード化するか。
注文を保留して おきながら、保留した注文の設定価格とTF60ローソク足の始値が一致した場合にのみ 成行 注文に変更する場合。
質問2.
このアイデアをどうコード化するか。
もし、保留中の注文が成行注文に変換された場合、10分後に、成行注文に変換された前の保留中の注文と 同じ 値: 始値、 終値、数量を 持つ別の保留中の注文を設定する必要があります。
ありがとうございます。
オッケーです。間接的な記号で判断するのではなく、Print ("call of such and such function") とインジケータそのものを入力すれば、それが呼び出されたかどうかがすぐにわかるかもしれません。
過信は禁物で、そうすればエラーは早く発見されるでしょう)。
そして、一般的には、あなたの問題は、ほとんどの場合、関数
再初期化する際に静的情報をゼロにしないため、再起動時にBarTimeは常に前回カウントした最後のバーの時間と同じになり、つまり新しいローソクが到着するまでisNewBar()は偽となります。ライブラリからmqhインルダに関数を移動し、init()で明示的にBarTime=0をゼロにした方が良いと思います。
これは、コードを一目見ただけなので、私が間違っていてもあまり厳しく判断しないでください。
ありがとうございました。
ライブラリからisNewBar()を削除し、インジケータファイルに配置しました。すべてが時計のように正確に動いています。