Init()およびDeInit()実行シーケンス - ページ 28 1...2122232425262728 新しいコメント 削除済み 2017.04.17 06:50 #271 Alexey Viktorov: ウィンドウの数は明確ですが、どのように決定するために、異なるパラメータを持つMAの数? インジケータ・パラメータをクエリし、パースする必要があります。 fxsaber 2017.04.17 07:03 #272 フィギアint GetShortNames( string &ShortNames[], const long Chart_ID = 0, const int SubWindow = 0 ) { const int Total = ChartIndicatorsTotal(Chart_ID, SubWindow); ArrayResize(ShortNames, Total); for (int i = 0; i < Total; i++) ShortNames[i] = ChartIndicatorName(Chart_ID, SubWindow, i); return(Total); } // Возвращает свое "Короткое имя" - ShortName string GetMyShortName( void ) { string Res = ""; const int SubWindow = ChartWindowFind(); string ShortNames[]; GetShortNames(ShortNames, 0, SubWindow); const string TmpShortName = __FUNCSIG__ + (string)MathRand(); IndicatorSetString(INDICATOR_SHORTNAME, TmpShortName); string NewShortNames[]; const int Total = GetShortNames(NewShortNames, 0, SubWindow); for (int i = 0; i < Total; i++) if (NewShortNames[i] == TmpShortName) { Res = ShortNames[i]; IndicatorSetString(INDICATOR_SHORTNAME, Res); break; } return(Res); } // Возвращает свой хэндл int GetMyHandle( void ) { const string ShortName = GetMyShortName(); const string TmpShortName = __FUNCSIG__ + (string)MathRand(); IndicatorSetString(INDICATOR_SHORTNAME, TmpShortName); const int Res = ChartIndicatorGet(0, ChartWindowFind(), TmpShortName); IndicatorSetString(INDICATOR_SHORTNAME, ShortName); return(Res); }OnDeinitの前にIndicatorReleaseを 行うことが非常に重要です。興味深いことに、このようなIndicatorReleaseが行われるたびに、インジケータ・ハンドルが1つずつ増分される。 Andrey Dik 2017.04.17 08:30 #273 fxsaber: フィギアOnDeinitの前にIndicatorReleaseを行うことが非常に重要です。興味深いことに、このようなIndicatorReleaseが行われるたびに、インジケータ・ハンドルが1つずつ増分される。IndicatorReleaseは テスターですでに動作しているのですか?念のため-以前はうまくいかなかった。 fxsaber 2017.04.17 08:38 #274 Andrey Dik: IndicatorReleaseはまだテスターで動いているのでしょうか?念のため-以前はうまくいかなかった。 テストしていない。 Andrey Dik 2017.04.17 09:20 #275 fxsaber: テストはしていない。 つまり、テスターのメモリからインジケータをアンロード することができないため、例えば、その場で独自の方法でインジケータを最適化した場合、システムが停止してしまうということです。例えば、インジケータのパラメータを動的に変更すると、毎回新しいハンドルが作成され、テスター内で古いハンドルが削除されないため、メモリのオーバーフローを引き起こします。 fxsaber 2017.04.17 09:47 #276 https://www.mql5.com/ru/code/18138 Init_Sync 2017.04.17fxsaberwww.mql5.com Библиотека делает синхронизированными Init/Deinit индикаторов Alexberrr 2017.04.17 11:53 #277 佳境 Vitaly Muzichenko 2017.04.17 12:04 #278 Alexberrr: 良い話題今、必要なもの、関連するもの。ずっと自分で原因を探っていたのですが、自分のコードのバグだと思い、このスレッドのおかげで問題が解決しました。皆さん、ありがとうございました。 1...2122232425262728 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ウィンドウの数は明確ですが、どのように決定するために、異なるパラメータを持つMAの数?
OnDeinitの前にIndicatorReleaseを 行うことが非常に重要です。
興味深いことに、このようなIndicatorReleaseが行われるたびに、インジケータ・ハンドルが1つずつ増分される。
フィギア
OnDeinitの前にIndicatorReleaseを行うことが非常に重要です。
興味深いことに、このようなIndicatorReleaseが行われるたびに、インジケータ・ハンドルが1つずつ増分される。
IndicatorReleaseはまだテスターで動いているのでしょうか?念のため-以前はうまくいかなかった。
テストはしていない。
良い話題
今、必要なもの、関連するもの。ずっと自分で原因を探っていたのですが、自分のコードのバグだと思い、このスレッドのおかげで問題が解決しました。
皆さん、ありがとうございました。