エラー、バグ、質問 - ページ 1868 1...186118621863186418651866186718681869187018711872187318741875...3185 新しいコメント kaus_bonus 2017.04.21 09:32 #18671 ビルド1589IndicatorDeleteを使用せずに、アカウント/ブローカーが変更されたときに、そのようなティッカーがない場合、またはマーケット概要に追加されていない場合に、インジケータのOnTimerが動作しなくなるようにするにはどうすればよいですか?ドキュメントの誤記 - IndicatorDelete関数はありません、ChartIndicatorDeleteがあります。https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordeletebool IndicatorDelete( int sub_win // номер подокна const string name // короткое имя индикатора );状況は以下の通りです。 先物で添付のインジケータを走らせています。 他のブローカーに乗り換えたのですが、チャートは黒くなって更新されないものの、タイマーは回り続けています。非初期化の 理由を書かないREASON_ACCOUNT 6 別のアカウントが有効化された、またはアカウント設定の変更によりトレードサーバーに再接続された場合2017.04.21 12:10:31.810 TF through OnTimer (DDM7,M1) Работаем 2017.04.21 12:10:31.810 TF through OnTimer (DDM7,M1) Аккаунт = AMPGlobalClearing-Demo-CQG тут сменили брокера,причины деинициализации нет 2017.04.21 12:10:36.809 TF through OnTimer (DDM7,M1) Работаем 2017.04.21 12:10:36.809 TF through OnTimer (DDM7,M1) Аккаунт = FXOpen-MT5 //+------------------------------------------------------------------+ //| TF through OnTimer.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window string server; //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- EventKillTimer(); Print("Причина деинициализации = ",reason); } //+------------------------------------------------------------------+ int OnInit() { server=AccountInfoString(ACCOUNT_SERVER); EventSetMillisecondTimer(5000); IndicatorSetString(INDICATOR_SHORTNAME,"name"); //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //////////// void OnTimer () { Print("Работаем"); Print("Аккаунт = ",AccountInfoString(ACCOUNT_SERVER)); // if ( server!=AccountInfoString(ACCOUNT_SERVER) ) ChartIndicatorDelete(0,0,"name"); } Документация по MQL5: Стандартная библиотека / Ценовые графики / IndicatorDelete www.mql5.com Стандартная библиотека / Ценовые графики / IndicatorDelete - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 fxsaber 2017.04.21 09:36 #18672 kaus_bonus:ビルド1589 OnDeinitは呼び出されない。 kaus_bonus 2017.04.21 09:38 #18673 どういうことfxsaber: OnDeinitは呼び出されない。全く呼ばれないのか、このコードで呼ばれるのか、どういう意味ですか? Vladimir Karputov 2017.04.21 09:40 #18674 kaus_bonus:ビルド1589IndicatorDeleteを使用せずに、口座/ブローカーが変更されたときに、そのようなティッカーを持っていない、またはマーケット概要に追加されていない場合に、インジケーターのOnTimerが動作しなくなるようにするにはどうすればよいですか?ドキュメントの誤記 - IndicatorDelete関数はありません、ChartIndicatorDeleteがあります。https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordelete状況は以下の通りです。 先物で添付のインジケータを動かしています。 他のブローカーに乗り換えたのですが、チャートは黒くなって更新されないものの、タイマーは動き続けています。非初期化の 理由を書かないREASON_ACCOUNT 6 別のアカウントが有効化された、またはアカウント設定の変更によりトレードサーバーへの再接続が発生した場合インジケーターのロード・アンロードインジケーターは以下の場合にアップロードされます。チャートへのインジケータの取り付け端末の起動(端末が以前に閉じられる前にインジケータがチャートに取り付けられていた場合)テンプレートの読み込み(チャートにインジケータが添付されている場合)プロファイルの変更(インジケータがプロファイルチャートの1つに取り付けられている場合)。チャートのシンボルや期間を変更すること。インジケータがリコンパイルに成功した後、そのインジケータがチャートにアタッチされている場合。インジケータ入力 パラメータの変更。以下の場合、インジケーターはアンロードされます。インジケータがチャートから切り離されたとき。端末の終了(チャートにインジケータが装着されている場合)インジケータがチャートに添付されている場合、テンプレートの読み込みを行います。インジケータを貼り付けたチャートを閉じます。プロファイル変更時に、変更するプロファイルのチャートの1つにインジケータが装着されている場合。チャートのシンボルや期間を変更すること。インジケータ入力パラメータの変更。口座変更」が存在しないのは、口座切り替え時にインジケータがアンロードされず、結果として取引口座を変更した際のインジケータのOnDeinit()もされないことを意味します。 fxsaber 2017.04.21 09:40 #18675 kaus_bonus:全く呼ばれないのか、このコードで呼ばれるのか、どういう意味ですか? あなたの立場では kaus_bonus 2017.04.21 09:44 #18676 Vladimir Karputov: ロード/アンロード用インジケーター以下の場合、インジケーターはアンロードされます。インジケータがチャートから切り離されたとき。端末の終了(チャートにインジケーターが装着されている場合)チャート上にインジケータがある場合、テンプレートの読み込みを行います。インジケータを貼り付けたチャートを閉じます。プロファイル変更時に、変更するプロファイルのチャートの1つにインジケータが装着されている場合。チャートのシンボルや期間を変更すること。インジケータ入力パラメータの変更。口座切り替え」が存在しないのは、口座切り替え時にインジケータがアンロードされないため、結果的に取引口座を変更してもインジケータのOnDeinit()が存在しないことを意味します。実は、この理由はExpert Advisorにしか通用しないのです。Коды причины деинициализации эксперта ....では、どうすればチャートからインジケータを根本的に削除することなく、タイマーを停止させることができるのでしょうか? Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Причины деинициализации www.mql5.com Стандартные константы, перечисления и структуры / Именованные константы / Причины деинициализации - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Vladimir Karputov 2017.04.21 09:48 #18677 kaus_bonus:実は、私が述べた理由は、専門家にしか通用しないのですそこで疑問が残るのですが、チャートからインジケータを大幅に削除することなく、タイマーの動作を停止させるにはどうしたらよいのでしょうか? OnInit()でスコアを記憶させる。タイマーでアカウント番号を 確認する。スコアが変化した場合 - タイマーを終了する。 fxsaber 2017.04.21 09:48 #18678 kaus_bonus:では、どうすればチャートからインジケータを削除することなく、タイマーを停止させることができるのかという疑問が残ります。 ACCOUNT_LOGINとACCOUNT_SERVERを使用します。 kaus_bonus 2017.04.21 09:54 #18679 それは曲がった解決方法だと思いませんか!ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEWを 実行してタイマーを止め、このアカウントに戻ると、どうなりますか? タイマーは再び始まらないのでしょうか?というのは、同じように「アカウントの変更」という理由をインジケータに追加する方が簡単なのでしょうか、それとも私が何か間違っていて、何か困難が生じるのでしょうか? fxsaber 2017.04.21 09:58 #18680 kaus_bonus:このままでは、解決は困難です。馬の動きだ!ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEWと し、タイマーを停止し、そのカウントに戻した場合、何が起こるでしょうか?アカウントの変更が検出されると、新しい特性をすでに記憶しています。ここ(マクロ)の原理で、小さなライブラリとして設計することができます。そうすれば、「曲がった」ことが迷惑になることはありません。 1...186118621863186418651866186718681869187018711872187318741875...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ビルド1589
IndicatorDeleteを使用せずに、アカウント/ブローカーが変更されたときに、そのようなティッカーがない場合、またはマーケット概要に追加されていない場合に、インジケータのOnTimerが動作しなくなるようにするにはどうすればよいですか?
ドキュメントの誤記 - IndicatorDelete関数はありません、ChartIndicatorDeleteがあります。
https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordelete
状況は以下の通りです。 先物で添付のインジケータを走らせています。 他のブローカーに乗り換えたのですが、チャートは黒くなって更新されないものの、タイマーは回り続けています。
非初期化の 理由を書かない
REASON_ACCOUNT
6
別のアカウントが有効化された、またはアカウント設定の変更によりトレードサーバーに再接続された場合
ビルド1589
OnDeinitは呼び出されない。
全く呼ばれないのか、このコードで呼ばれるのか、どういう意味ですか?
ビルド1589
IndicatorDeleteを使用せずに、口座/ブローカーが変更されたときに、そのようなティッカーを持っていない、またはマーケット概要に追加されていない場合に、インジケーターのOnTimerが動作しなくなるようにするにはどうすればよいですか?
ドキュメントの誤記 - IndicatorDelete関数はありません、ChartIndicatorDeleteがあります。
https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordelete
状況は以下の通りです。 先物で添付のインジケータを動かしています。 他のブローカーに乗り換えたのですが、チャートは黒くなって更新されないものの、タイマーは動き続けています。
非初期化の 理由を書かない
REASON_ACCOUNT
6
別のアカウントが有効化された、またはアカウント設定の変更によりトレードサーバーへの再接続が発生した場合
インジケーターのロード・アンロード
インジケーターは以下の場合にアップロードされます。
以下の場合、インジケーターはアンロードされます。
口座変更」が存在しないのは、口座切り替え時にインジケータがアンロードされず、結果として取引口座を変更した際のインジケータのOnDeinit()もされないことを意味します。
全く呼ばれないのか、このコードで呼ばれるのか、どういう意味ですか?
ロード/アンロード用インジケーター
以下の場合、インジケーターはアンロードされます。
口座切り替え」が存在しないのは、口座切り替え時にインジケータがアンロードされないため、結果的に取引口座を変更してもインジケータのOnDeinit()が存在しないことを意味します。
実は、この理由はExpert Advisorにしか通用しないのです。
では、どうすればチャートからインジケータを根本的に削除することなく、タイマーを停止させることができるのでしょうか?
実は、私が述べた理由は、専門家にしか通用しないのです
そこで疑問が残るのですが、チャートからインジケータを大幅に削除することなく、タイマーの動作を停止させるにはどうしたらよいのでしょうか?
OnInit()でスコアを記憶させる。タイマーでアカウント番号を 確認する。スコアが変化した場合 - タイマーを終了する。
では、どうすればチャートからインジケータを削除することなく、タイマーを停止させることができるのかという疑問が残ります。
それは曲がった解決方法だと思いませんか!
ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEWを 実行してタイマーを止め、このアカウントに戻ると、どうなりますか? タイマーは再び始まらないのでしょうか?
というのは、同じように「アカウントの変更」という理由をインジケータに追加する方が簡単なのでしょうか、それとも私が何か間違っていて、何か困難が生じるのでしょうか?
このままでは、解決は困難です。
馬の動きだ!
ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEWと し、タイマーを停止し、そのカウントに戻した場合、何が起こるでしょうか?
アカウントの変更が検出されると、新しい特性をすでに記憶しています。
ここ(マクロ)の原理で、小さなライブラリとして設計することができます。そうすれば、「曲がった」ことが迷惑になることはありません。