インジケータでのOnDeinit - ページ 2 12345678 新しいコメント keekkenen 2014.10.06 20:42 #11 eevviill:いいえ、そんなことはありません。普通に端末の電源を切っています。DeinitをInitに入れると、それもうまくいかない。カスタムオブジェクトの削除機能だけが役に立ちました。まあ、削除されないなら、そこで何をしたかなんて誰にもわからないんだけどね :) 削除済み 2014.10.07 03:21 #12 keekkenen: まあ、これで削除されなかったら、何をしたのか誰にもわからないんですけどね :)理にかなっている。しかし、チャートからインジケータを削除しただけでは、ゾーンが削除されてしまいます。端末の電源を切ると、そうではありません。initでゾーンを削除する関数を使うと(deinitでも同じ関数です)。deinitが全ての人に有効であることが理解できた。また、端末を閉じたり開いたりするときに、どのようなタイミングでトリガーされるべきでしょうか? 削除済み 2014.10.07 03:34 #13 int deinit() { deinit2(); return(0); } ////////////////////// void deinit2() { for(int i=ObjectsTotal()-1;i>=0;i--) { if(StringFind(ObjectName(i),Highest_vol_zones_name)!=-1) ObjectDelete(ObjectName(i)); } } keekkenen 2014.10.07 13:30 #14 eevviill:理にかなっている。しかし、単にチャートからインジケータを削除すると、ゾーンが削除されます。端末の電源が切れている場合は不可。initにゾーンを削除する独自の関数を入れた場合のみ(deinitにも同じ関数がある)。deinitが全ての人に有効であることが理解できた。しかし、端末を閉じたときや開いたときに動作するようにするにはどうしたらよいでしょうか。はい、端末を閉じた 状態でも動作します...。もしかしたら、長い間、何らかの理屈をこねていたのかもしれませんね?というのは、シャットダウンの瞬間に、インジケータが不気味に何かを計算し、端末がそれをすべてうまくいかないと予想し、および/または割り込み、そのOnDeinitが動作しないこと?ヘルプデスクへの道は...と思う。 削除済み 2014.10.07 14:25 #15 keekkenen:はい、端末を閉じると動きますが...。もしかしたら、何か長い時間プレイするためのロジックがあるのでは?というのは、シャットダウンの瞬間に、インジケータが何か変な計算をして、ターミナルがそれを全部予想したり、割り込んだりして、OnDeinitが動作しないのでしょうか。ヘルプデスクへの道は...と思う。 それが自分に合っているならば、それでいいのです。私のも見てみますね。 削除済み 2015.06.04 10:35 #16 何も変わらず、さらに追加されたバッファーインジケーターです。操作 チャートを開く-M1インジケータを装着-端子を閉じる-数分で開通。結果はスクリーンショットで。そして、コードにも書いたにもかかわらず、です。////////////////////////////////////////////////////////////////// int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[], const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[]) { //new bar if (Time[0] != prevtime) { ArrayInitialize(body_up,EMPTY_VALUE); ArrayInitialize(body_down,EMPTY_VALUE); ArrayInitialize(shadow_up,EMPTY_VALUE); ArrayInitialize(shadow_down,EMPTY_VALUE); ArrayInitialize(yell_body_up,EMPTY_VALUE); ArrayInitialize(yell_body_down,EMPTY_VALUE); ArrayInitialize(yell_shadow_up,EMPTY_VALUE); ArrayInitialize(yell_shadow_down,EMPTY_VALUE); prevtime = Time[0]; } 削除済み 2015.06.10 10:22 #17 開発者の皆さん、問題を整理するつもりはありますか?ここで、指標をご紹介しましょう。上の投稿で私がやったことを試してみてください。チャートを開き、 M1インジケータを取り付け、ターミナルを閉じ、数分後に開く。 ファイル: mtfbcandle.mq4 8 kb Slava 2015.06.10 11:35 #18 eevviill:開発者の皆さん、問題を整理するつもりはありますか?ここで、指標をご紹介しましょう。上の投稿で私がやったことを試してみてください。チャートを開き、M1インジケータを取り付け、ターミナルを閉じ、数分後に 開く。インジケーターの状況は解決されました。ティックの到着時だけでなく、最初の描画時や欠落した履歴の到着時にもインジケータが計算されることです。1.新しいティックが到着 - インジケータが計算されます。2.欠落していたヒストリーが到着し、最後の端末のスタートから 最後のティックまでのデータの間の穴を塞ぎます。指標を算出しています。しかし同時に、新しいバーの条件もないのですこの問題を解決するためには、バーの数を確認する必要があります。このくらい if(Time[0]!=prevtime || Bars!=prevbars) { ArrayInitialize(body_up,EMPTY_VALUE); ArrayInitialize(body_down,EMPTY_VALUE); ArrayInitialize(shadow_up,EMPTY_VALUE); ArrayInitialize(shadow_down,EMPTY_VALUE); ArrayInitialize(yell_body_up,EMPTY_VALUE); ArrayInitialize(yell_body_down,EMPTY_VALUE); ArrayInitialize(yell_shadow_up,EMPTY_VALUE); ArrayInitialize(yell_shadow_down,EMPTY_VALUE); prevtime=Time[0]; prevbars=Bars; } 削除済み 2015.06.10 11:42 #19 stringo:インジケーターの状況は解決されました。ここがポイントなのですが、ティック到着時だけでなく、最初の描画時や欠落した履歴の到着時にもインジケータは計算されます。1.新しいティックが到着 - インジケータが計算されます。2.欠落していたヒストリーが到着し、最後の端末のスタートから最後のティックまでのデータの間の穴を塞ぎます。指標を算出しています。しかし同時に、新しいバーの条件もないのですこの問題を解決するには、バーの本数を確認する必要があります。このようにありがとうございます。しかし、それは私の指標に限ったことではありません。この問題を解決してくれるのは、あなたの方だと思ったのですが。例えば、ターミナルを閉じる ときに、すべてのプログラムを実行するためにDeinitします。 Slava 2015.06.10 11:49 #20 eevviill:ありがとうございます。でも、それは私のインジケーターの中だけではありません。この問題は、あなたの側から解決してくれると思っていました。例えば、ターミナルを閉じるとき、すべてのプログラムでdeinitする。実際には、すべてのプログラムのdeinitは、ターミナルを閉じたときに呼び出されます。deinitの理由には、 特別なコードも あります。REASON_CLOSE 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
いいえ、そんなことはありません。普通に端末の電源を切っています。
DeinitをInitに入れると、それもうまくいかない。
カスタムオブジェクトの削除機能だけが役に立ちました。
まあ、削除されないなら、そこで何をしたかなんて誰にもわからないんだけどね :)
まあ、これで削除されなかったら、何をしたのか誰にもわからないんですけどね :)
理にかなっている。しかし、チャートからインジケータを削除しただけでは、ゾーンが削除されてしまいます。端末の電源を切ると、そうではありません。initでゾーンを削除する関数を使うと(deinitでも同じ関数です)。
deinitが全ての人に有効であることが理解できた。また、端末を閉じたり開いたりするときに、どのようなタイミングでトリガーされるべきでしょうか?
int deinit() { deinit2();
理にかなっている。しかし、単にチャートからインジケータを削除すると、ゾーンが削除されます。端末の電源が切れている場合は不可。initにゾーンを削除する独自の関数を入れた場合のみ(deinitにも同じ関数がある)。
deinitが全ての人に有効であることが理解できた。しかし、端末を閉じたときや開いたときに動作するようにするにはどうしたらよいでしょうか。
はい、端末を閉じた 状態でも動作します...。
もしかしたら、長い間、何らかの理屈をこねていたのかもしれませんね?
というのは、シャットダウンの瞬間に、インジケータが不気味に何かを計算し、端末がそれをすべてうまくいかないと予想し、および/または割り込み、そのOnDeinitが動作しないこと?
ヘルプデスクへの道は...と思う。
はい、端末を閉じると動きますが...。
もしかしたら、何か長い時間プレイするためのロジックがあるのでは?
というのは、シャットダウンの瞬間に、インジケータが何か変な計算をして、ターミナルがそれを全部予想したり、割り込んだりして、OnDeinitが動作しないのでしょうか。
ヘルプデスクへの道は...と思う。
何も変わらず、さらに追加された
バッファーインジケーターです。操作 チャートを開く-M1インジケータを装着-端子を閉じる-数分で開通。結果はスクリーンショットで。
そして、コードにも書いたにもかかわらず、です。
開発者の皆さん、問題を整理するつもりはありますか?
ここで、指標をご紹介しましょう。上の投稿で私がやったことを試してみてください。
チャートを開き、 M1インジケータを取り付け、ターミナルを閉じ、数分後に開く。
開発者の皆さん、問題を整理するつもりはありますか?
ここで、指標をご紹介しましょう。上の投稿で私がやったことを試してみてください。
チャートを開き、M1インジケータを取り付け、ターミナルを閉じ、数分後に 開く。
インジケーターの状況は解決されました。
ティックの到着時だけでなく、最初の描画時や欠落した履歴の到着時にもインジケータが計算されることです。
1.新しいティックが到着 - インジケータが計算されます。
2.欠落していたヒストリーが到着し、最後の端末のスタートから 最後のティックまでのデータの間の穴を塞ぎます。指標を算出しています。しかし同時に、新しいバーの条件もないのです
この問題を解決するためには、バーの数を確認する必要があります。このくらい
インジケーターの状況は解決されました。
ここがポイントなのですが、ティック到着時だけでなく、最初の描画時や欠落した履歴の到着時にもインジケータは計算されます。
1.新しいティックが到着 - インジケータが計算されます。
2.欠落していたヒストリーが到着し、最後の端末のスタートから最後のティックまでのデータの間の穴を塞ぎます。指標を算出しています。しかし同時に、新しいバーの条件もないのです
この問題を解決するには、バーの本数を確認する必要があります。このように
ありがとうございます。
しかし、それは私の指標に限ったことではありません。この問題を解決してくれるのは、あなたの方だと思ったのですが。
例えば、ターミナルを閉じる ときに、すべてのプログラムを実行するためにDeinitします。
ありがとうございます。
でも、それは私のインジケーターの中だけではありません。この問題は、あなたの側から解決してくれると思っていました。
例えば、ターミナルを閉じるとき、すべてのプログラムでdeinitする。
実際には、すべてのプログラムのdeinitは、ターミナルを閉じたときに呼び出されます。
deinitの理由には、 特別なコードも あります。REASON_CLOSE