mql5言語の特徴、微妙なニュアンスとテクニック - ページ 168 1...161162163164165166167168169170171172173174175...247 新しいコメント fxsaber 2020.03.04 08:13 #1671 Slava: メモリリークに関するメッセージが表示された場合、そのメモリを解放する明示的な命令がなかったことを意味します。 プログラムが終了するとき(このメッセージが表示されるとき)には、リークしたメモリも含めて、とにかくすべてのメモリを解放してしまうのです。 リークという言葉はゆるく使いすぎたかもしれません。要は、オブジェクトを削除すると名前すら分からなくなるリソースがメモリ上にぶら下がったままになっているのだ。また、名前がわかっても、そのリソースを作成したプログラム以外では削除することができません。 現在では、VPS上のTerminalを(必ずしも計画的でなく)サスペンドし、スクリプト実行後に削除されないリソースですべてのメモリをいっぱいにするMarket用スクリプトを非常に簡単に書くことができます。 fxsaber 2020.03.16 12:02 #1672 取引サーバーによっては、一度に複数の種類の口座を保有することができます。例えば、ECNやスタンダードなど。この場合、シンボルは接頭辞を持たない、つまり同じ名前になる可能性がある。 この場合、バーヒストリー(チャート上のビッド/アスク/ラストの現在値を含む)およびティックヒストリーは、常に1つの口座タイプにのみ対応します。 そして、Market Watchのデータは、接続されているものに対応する。 このため、Market Watchとチャート、ティック履歴の整合性が全く取れていないことが容易に観察される。 fxsaber 2020.03.18 03:59 #1673 戦闘顧問が立っているところのチャート記号を誤って(手で)変えてしまうことに何度か遭遇しました。 記号の変更に対する保護。 int OnInit() { static const string Symb = _Symbol; const bool Res = (_Symbol != Symb); if (Res) Alert("Symbol is change!"); return(Res); // Защита от смены символа. } fxsaber 2020.03.18 04:43 #1674 EAを起動する際、価格履歴を取得する時刻を決める必要がある場合が多い。毎回手入力する手間を省くために、このような方法をとりました。#define WEEK (7 * 24 * 3600) input datetime temp = __DATE__ - WEEK; 従って、編集の1週間前にネタを取っています。便利なんです。 Vladimir Simakov 2020.03.18 06:13 #1675 fxsaber: EAを起動する際、価格履歴を取得する時刻を決める必要がある場合が多い。毎回手入力する手間を省くために、このような方法をとりました。 従って、編集の1週間前にネタを取っています。便利です。 なぜオプティマイザーに頼りすぎる必要があるのか?その方がいいんです。 #define WEEK 604800 Vladimir Simakov 2020.03.18 10:08 #1676 緊急割り込み機能、正常に動作しているようです #define EXIT (STD_CExit(__LINE__,__FUNCTION__)).Exit class STD_CExit{ string function; int line; public: STD_CExit(int _line,string _func):line(_line),function(_func){} void Exit(string reason=NULL); }; //-------------------------------------------------------------------------- void STD_CExit::Exit(string reason=NULL){ Alert(StringFormat("Abort in line %i, function %s.\nReason: %s.",line,function,reason==NULL||reason==""?"Unknow":reason)); int a=0; int b=1/a;} void OnStart() { Test(); } void Test(){ EXIT("Some reason"); } Igor Makanu 2020.03.18 10:20 #1677 Vladimir Simakov: 緊急割り込み機能、うまくいっているようです。 it's the right thing to do - I was happy to see it happen... We solved this problem with@Victhttps://www.mql5.com/ru/forum/318246/page10#comment_12651569 が、これ。 - NotExit http://www.delphibasics.ru/Exit.php - notAbort http://www.delphibasics.ru/Abort.php it'sHalt http://www.delphibasics.ru/Halt.php UPD:このようなスクリプトは非常に必要です void OnTick() { if(!getData()) EXIT("No data"); } bool getData() { return(false); } Vladimir Simakov 2020.03.18 10:27 #1678 Igor Makanu: が必要なのです。私はそれが実現できて嬉しかったです。 が、これ。 - NotExit http://www.delphibasics.ru/Exit.php - notAbort http://www.delphibasics.ru/Abort.php it'sHalt http://www.delphibasics.ru/Halt.php UPD:このようなスクリプトは非常に必要です まだうまくいくわけがない(( Igor Makanu 2020.03.18 10:31 #1679 Vladimir Simakov: こちらはまだうまくいっていません(((^^;) 必要なのか? もし、開発者がexit/abortを標準装備していれば、例えば、TFの準備ができていない場合、データ処理を正しく終了させることが可能です - OHLCデータ、サーバーに送信する注文 処理にも有効でしょう...OnTick()の終了にreturn()を使わずに、任意の場所でコードを中断して次のtickの前に終了できると便利なのですが...。 Vladimir Simakov 2020.03.18 10:36 #1680 Igor Makanu: 必要なのか? もし、開発者がexit/abortを標準装備していれば、例えば、TFの準備ができていない場合、データ処理を正しく終了させることができます - OHLCデータ、サーバーへの注文送信処理にも有効でしょう...。OnTick()の終了にreturn()を使わずに、任意の場所でコードを中断して次のtickの前に終了できると便利なのですが...。 まあ、まだ無理か...。 1...161162163164165166167168169170171172173174175...247 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
メモリリークに関するメッセージが表示された場合、そのメモリを解放する明示的な命令がなかったことを意味します。
プログラムが終了するとき(このメッセージが表示されるとき)には、リークしたメモリも含めて、とにかくすべてのメモリを解放してしまうのです。
リークという言葉はゆるく使いすぎたかもしれません。要は、オブジェクトを削除すると名前すら分からなくなるリソースがメモリ上にぶら下がったままになっているのだ。また、名前がわかっても、そのリソースを作成したプログラム以外では削除することができません。
現在では、VPS上のTerminalを(必ずしも計画的でなく)サスペンドし、スクリプト実行後に削除されないリソースですべてのメモリをいっぱいにするMarket用スクリプトを非常に簡単に書くことができます。
取引サーバーによっては、一度に複数の種類の口座を保有することができます。例えば、ECNやスタンダードなど。この場合、シンボルは接頭辞を持たない、つまり同じ名前になる可能性がある。
この場合、バーヒストリー(チャート上のビッド/アスク/ラストの現在値を含む)およびティックヒストリーは、常に1つの口座タイプにのみ対応します。
そして、Market Watchのデータは、接続されているものに対応する。
このため、Market Watchとチャート、ティック履歴の整合性が全く取れていないことが容易に観察される。
戦闘顧問が立っているところのチャート記号を誤って(手で)変えてしまうことに何度か遭遇しました。
記号の変更に対する保護。
従って、編集の1週間前にネタを取っています。便利なんです。
EAを起動する際、価格履歴を取得する時刻を決める必要がある場合が多い。毎回手入力する手間を省くために、このような方法をとりました。
従って、編集の1週間前にネタを取っています。便利です。
なぜオプティマイザーに頼りすぎる必要があるのか?その方がいいんです。
#define WEEK 604800
緊急割り込み機能、正常に動作しているようです
緊急割り込み機能、うまくいっているようです。
it's the right thing to do - I was happy to see it happen... We solved this problem with@Victhttps://www.mql5.com/ru/forum/318246/page10#comment_12651569
が、これ。
- NotExit http://www.delphibasics.ru/Exit.php
- notAbort http://www.delphibasics.ru/Abort.php
it'sHalt http://www.delphibasics.ru/Halt.php
UPD:このようなスクリプトは非常に必要です
が必要なのです。私はそれが実現できて嬉しかったです。
が、これ。
- NotExit http://www.delphibasics.ru/Exit.php
- notAbort http://www.delphibasics.ru/Abort.php
it'sHalt http://www.delphibasics.ru/Halt.php
UPD:このようなスクリプトは非常に必要です
こちらはまだうまくいっていません(((^^;)
必要なのか?
もし、開発者がexit/abortを標準装備していれば、例えば、TFの準備ができていない場合、データ処理を正しく終了させることが可能です - OHLCデータ、サーバーに送信する注文 処理にも有効でしょう...OnTick()の終了にreturn()を使わずに、任意の場所でコードを中断して次のtickの前に終了できると便利なのですが...。
必要なのか?
もし、開発者がexit/abortを標準装備していれば、例えば、TFの準備ができていない場合、データ処理を正しく終了させることができます - OHLCデータ、サーバーへの注文送信処理にも有効でしょう...。OnTick()の終了にreturn()を使わずに、任意の場所でコードを中断して次のtickの前に終了できると便利なのですが...。
まあ、まだ無理か...。