エラー、バグ、質問 - ページ 1783 1...177617771778177917801781178217831784178517861787178817891790...3185 新しいコメント A100 2017.02.05 22:42 #17821 A100:質問:OnDeinit->M5はいつ呼び出されるのですか?私の答えは、「絶対にしない」です。上記の回答:非同期かつ遅延あり30分以上経過してもOnDeinit->M5が呼び出されない。そして今度はExpert Advisorのコードを変更してみましょう(順番を少し変更) ...結果2017.02.06 01:31:45.002 OnInit->M52017.02.06 01:31:48.340 OnDeinit->M5:1 すぐに、滞りなくコールされました! 2017.02.06 01:31:48.409 OnInit->M15 ファイル: Test.mq5 2 kb Renat Fatkhullin 2017.02.05 22:54 #17822 A100:30分以上経過してもOnDeinit->M5が呼び出されない。そして、今度はExpertのコードを変えてみましょう(順番を少し変えて). コードの添付をお願いします。 A100 2017.02.05 23:05 #17823 Renat Fatkhullin: コードの添付をお願いします。 前回の同名の投稿に添付しました。実際には、静的な呼び出しが動的な呼び出しに置き換えられており、結果は根本的に異なっている Renat Fatkhullin 2017.02.05 23:15 #17824 A100: 前回の同名の投稿に添付しました。実際には、静的な呼び出しが動的な呼び出しに置き換えられており、結果は根本的に異なっている ありがとうございます、調べてみます。 最初のケースでは、OnDeinitがないことと、スタティック変数が あり、その結果デストラクタを呼び忘れていたことが、最適化に悪さをしたようです。 Slava 2017.02.06 06:22 #17825 Alexey Kozitsyn: どのスレッドについて話しているのか、明確にしてもらえますか?同じシンボルのインジケータは、すべて同じスレッドで動作しないのでしょうか? はい、異なるスレッドは、時間枠ではなく、チャートがシンボルを変更した場合になります。 タイムフレームのみを変更した場合、新しいコピーのインジケータは古いものと同じスレッドで計算されます。 しかし、M5のDeinitコマンドがM15のInitコマンドより早く処理されるという事実も当てにならない fxsaber 2017.02.06 06:25 #17826 Slawa: タイムフレームのみを変更した場合、新しいコピーのインジケータは古いものと同じスレッドで計算されます。 しかし、ここでは、M5のDeinitコマンドがM15のInitコマンドより早く処理されることに頼ることはできない。 ヘルプに追加してください、お願いします。 Vladislav Andruschenko 2017.02.06 07:42 #17827 Slawa:こんにちは。 メッセージに細心の注意を払ってくださいhttps://www.mql5.com/ru/forum/166358/page4#comment_4064293これはとても重要なことです。 は、新しいエラー1158があるのですが、ヘルプに載っていないのでしょうか? cannot set millisecond timer (500) www.mql5.com Здравствуйте, клиент прислал лог файл, в котором я увидел такую запись cannot set millisecond timer (500) что она значит? и почему... A100 2017.02.06 11:08 #17828 実行エラーTest_s.ex5' の 0x030A00AD から 0x00000005 への読み込みでアクセス違反が発生しました。//Test_s.mq5 //Скриптclass A {};#import "TestA.ex5" A *error();#import class B { protected: B( const string& name ) : name( name ) {} virtual int g( const MqlParam& param[] ) const { return ::IndicatorCreate( NULL, PERIOD_CURRENT, IND_CUSTOM, ::ArraySize( param ), param ); } const string name;bool f( int h ) const{ if ( ::ChartIndicatorAdd( 0, 0, h ) ) return true; error(); return false;}};class C : protected B { protected: C( int h, string name ) : B( name ), h( h ) { f( this.h ); } const int h;};class D : C { public: D( string path ) : C( g( path ), path ) {}int g( const string& path ){ MqlParam param[ 1 ]; param[ 0 ].type = TYPE_STRING; param[ 0 ].string_value = path; return g( param );}};void OnStart() { D d( "Test_i" ); }//TestA.mq5#property libraryclass A {};A * error() export { return NULL; }すべてのファイル(Indicatorを除く)はMQL5 folderScriptsの中にあります。Indicator自体は必要ありませんが、例えば、https://www.mql5.com/ru/forum/1111/page18 03#comment_4063671 からダウンロードすることができます。 Ошибки, баги, вопросы www.mql5.com Форум алго-трейдеров MQL5 Errors, bugs, questions Use OPP to initialize Getting indicator settings by Rashid Umarov 2017.02.06 11:32 #17829 fxsaber: ヘルプに載せてください。 ここをクリック -実行中のプログラムMQL5のプログラムの概要については、以下の表をご覧ください。 プログラム 実行 備考 スクリプト 自分のスレッドで、スクリプトの実行スレッドの数だけ ループしたスクリプトは、他のプログラムの作業を中断できない 専門家 独自のスレッドで、専門家の数だけ - 彼らのための実行スレッドの数だけ ループしたエキスパートが他のプログラムの作業を中断させることはない インジケーター 1つのシンボルに対して、すべてのインジケータを1つの実行スレッドで実行します。イ ンジケータ・シンボルの数だけ、その実行スレッドがある 1つのインジケータが無限ループすると、このシンボルの他のすべてのインジケータが停止します。 Aleksey Vyazmikin 2017.02.06 11:45 #17830 A100:B'111111111111111111111111'という形で書かれています。残念ながら、私はこのフォーマットにはなじみがありません。実験では、グラフィカルバッファの中の数値はdoubleと同じルールで表現されることがわかった--つまり、こんな長い数値はグラフィカルバッファに通せないということだ--悔しい。 1...177617771778177917801781178217831784178517861787178817891790...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
質問:OnDeinit->M5はいつ呼び出されるのですか?
私の答えは、「絶対にしない」です。
上記の回答:非同期かつ遅延あり
30分以上経過してもOnDeinit->M5が呼び出されない。
そして今度はExpert Advisorのコードを変更してみましょう(順番を少し変更) ...
結果
2017.02.06 01:31:45.002 OnInit->M5
2017.02.06 01:31:48.340 OnDeinit->M5:1 すぐに、滞りなくコールされました!
2017.02.06 01:31:48.409 OnInit->M15
30分以上経過してもOnDeinit->M5が呼び出されない。
そして、今度はExpertのコードを変えてみましょう(順番を少し変えて).
コードの添付をお願いします。
前回の同名の投稿に添付しました。実際には、静的な呼び出しが動的な呼び出しに置き換えられており、結果は根本的に異なっている
最初のケースでは、OnDeinitがないことと、スタティック変数が あり、その結果デストラクタを呼び忘れていたことが、最適化に悪さをしたようです。
どのスレッドについて話しているのか、明確にしてもらえますか?同じシンボルのインジケータは、すべて同じスレッドで動作しないのでしょうか?
タイムフレームのみを変更した場合、新しいコピーのインジケータは古いものと同じスレッドで計算されます。
しかし、M5のDeinitコマンドがM15のInitコマンドより早く処理されるという事実も当てにならない
タイムフレームのみを変更した場合、新しいコピーのインジケータは古いものと同じスレッドで計算されます。
しかし、ここでは、M5のDeinitコマンドがM15のInitコマンドより早く処理されることに頼ることはできない。
こんにちは。
メッセージに細心の注意を払ってくださいhttps://www.mql5.com/ru/forum/166358/page4#comment_4064293
これはとても重要なことです。
は、新しいエラー1158があるのですが、ヘルプに載っていないのでしょうか?
実行エラー
Test_s.ex5' の 0x030A00AD から 0x00000005 への読み込みでアクセス違反が発生しました。
class A {};
#import "TestA.ex5"
A *error();
#import
class B { protected:
B( const string& name ) : name( name ) {}
virtual int g( const MqlParam& param[] ) const { return ::IndicatorCreate( NULL, PERIOD_CURRENT, IND_CUSTOM, ::ArraySize( param ), param ); }
const string name;
bool f( int h ) const
{
if ( ::ChartIndicatorAdd( 0, 0, h ) )
return true;
error();
return false;
}
};
class C : protected B { protected:
C( int h, string name ) : B( name ), h( h ) { f( this.h ); }
const int h;
};
class D : C { public:
D( string path ) : C( g( path ), path ) {}
int g( const string& path )
{
MqlParam param[ 1 ];
param[ 0 ].type = TYPE_STRING;
param[ 0 ].string_value = path;
return g( param );
}
};
void OnStart() { D d( "Test_i" ); }
#property library
class A {};
A * error() export { return NULL; }
すべてのファイル(Indicatorを除く)はMQL5 folderScriptsの中にあります。
Indicator自体は必要ありませんが、例えば、https://www.mql5.com/ru/forum/1111/page18 03#comment_4063671 からダウンロードすることができます。
ヘルプに載せてください。
MQL5のプログラムの概要については、以下の表をご覧ください。
プログラム
実行
備考
スクリプト
自分のスレッドで、スクリプトの実行スレッドの数だけ
ループしたスクリプトは、他のプログラムの作業を中断できない
専門家
独自のスレッドで、専門家の数だけ - 彼らのための実行スレッドの数だけ
ループしたエキスパートが他のプログラムの作業を中断させることはない
インジケーター
1つのシンボルに対して、すべてのインジケータを1つの実行スレッドで実行します。イ ンジケータ・シンボルの数だけ、その実行スレッドがある
1つのインジケータが無限ループすると、このシンボルの他のすべてのインジケータが停止します。
B'111111111111111111111111'という形で書かれています。
残念ながら、私はこのフォーマットにはなじみがありません。
実験では、グラフィカルバッファの中の数値はdoubleと同じルールで表現されることがわかった--つまり、こんな長い数値はグラフィカルバッファに通せないということだ--悔しい。