mql5言語の特徴、微妙なニュアンスとテクニック - ページ 207 1...200201202203204205206207208209210211212213214...247 新しいコメント fxsaber 2021.07.22 16:16 #2061 mktr8591:実際の使用例 - VirtualライブラリのVIRTUALクラスには、static const VIRTUAL_DELETE VirtualDeleteが含まれています。static const VIRTUAL static_Virtual で置き換えることができる。(もちろんデストラクタもVIRTUALに移動) . しないでください。new-objectは、プログラム終了時にデストラクタを呼び出さない。 mktr8591 2021.07.22 16:26 #2062 fxsaber:できません。新しいオブジェクトは、プログラムが終了しても、それ自身のデストラクタを呼び出すことはありません。 すみません、VIRTUAL_DELETEのどこが新しいのか理解できないのですが? fxsaber 2021.07.22 16:39 #2063 mktr8591: 申し訳ありませんが、VIRTUAL_DELETE newのどこがわからないのですが? VIRTUAL::Createでは。 ZZZ このスレッドはVirtualについてではないのですが・・・。 fxsaber 2021.07.23 13:19 #2064 Alertウィンドウを マイニングする。 #ifdef __MQL5__ #include <WinAPI\WinAPI.mqh> #else // #ifdef __MQL5__ #define long int #define pack(A) #include <WinAPI\WinAPI.mqh> #undef pack #undef long #undef HANDLE #define HANDLE int #endif // #ifdef __MQL5__ #else uint GetProcessID( const HANDLE Handle ) { uint ID = 0; user32::GetWindowThreadProcessId(Handle, ID); return(ID); } // Возвращает хендл Alert-окна. HANDLE GetAlertHandle( void ) { static HANDLE Handle = 0; if (!Handle) { static const string AlertCaptions[] = {"Alert", "Алерт"}; static const uint ProcessID = GetProcessID((HANDLE)::ChartGetInteger(0, CHART_WINDOW_HANDLE)); for (int i = 0; i < sizeof(AlertCaptions) / 12; i++) { Handle = user32::FindWindowW("#32770", AlertCaptions[i]); if (Handle && (GetProcessID(Handle) == ProcessID)) break; else Handle = 0; } } return(Handle); } fxsaber 2021.07.25 11:09 #2065 カスタムイベント時のCPU負荷 void OnInit() { EventChartCustom(0, 0, 0, 0, NULL); } void OnChartEvent( const int id, const long&, const double&, const string& ) { if (id == CHARTEVENT_CUSTOM) { Sleep(0); // Без этой строки будет 100%-я нагрузка ядра CPU. EventChartCustom(0, 0, 0, 0, NULL); } } Artyom Trishkin 2021.07.27 01:53 #2066 このトピックに関係のないコメントは、「MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッション」に移動しました。 fxsaber 2021.08.12 17:18 #2067 DEAL_TIMEがDEAL_ORDER_TIME_SETUPより小さい場合があります。ブローカーソフトのバグに違いない。 // Показывает ордера, которые имеют время выставления ПОЗЖЕ сделок, которые породил. #property script_show_inputs input datetime inFrom = D'2021.06.01'; void OnStart() { if (HistorySelect(inFrom, INT_MAX)) for (int i = HistoryDealsTotal() - 1; i >= 0; i--) { const ulong Deal = HistoryDealGetTicket(i); const ulong Order = HistoryDealGetInteger(Deal, DEAL_ORDER); if ((HistoryOrderGetInteger(Order, ORDER_TICKET) == Order) && (HistoryOrderGetInteger(Order, ORDER_TIME_SETUP_MSC) > HistoryDealGetInteger(Deal, DEAL_TIME_MSC))) Print((string)Order + " - " + (string)Deal); } } GUIではこのように表示されます。 mktr8591 2021.08.12 18:59 #2068 fxsaber:DEAL_TIMEがDEAL_ORDER_TIME_SETUPより小さい場合があります。ブローカーソフトのバグに違いない。GUIではこのように表示されます。 おそらく、バグだと思います。 でも、普通にできるんですよね?部分実行後にユーザー/ソフトウェアによって指値注文を変更した場合、ORDER_TIME_SETUPが 更新されます。 fxsaber 2021.08.12 19:17 #2069 mktr8591:でも、これもアリですよね?部分実行後、ユーザー/ソフトウェアによって指値注文が変更された場合、ORDER_TIME_SETUPが 更新されます。 このフィールドは定数である。チケットと一緒に書かれています。 mktr8591 2021.08.12 19:36 #2070 fxsaber:このフィールドは定数である。チケットと一緒に書かれています。 どうやら、私は取引状況を誤解していたようだ。 私のイメージでは、保留中の指値が複数の取引を通じて実行されました。この間、ライブ注文でハングアップし、ORDER_TIME_SETUP フィールドが定数でないことがありました。最後の取引後、履歴に入りました。その瞬間、ORDER_TIME_SETUPは 定数化された。 それとも、そうでなかったのか? 1...200201202203204205206207208209210211212213214...247 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
実際の使用例 - VirtualライブラリのVIRTUALクラスには、static const VIRTUAL_DELETE VirtualDeleteが含まれています。
static const VIRTUAL static_Virtual で置き換えることができる。
(もちろんデストラクタもVIRTUALに移動) .
しないでください。new-objectは、プログラム終了時にデストラクタを呼び出さない。
できません。新しいオブジェクトは、プログラムが終了しても、それ自身のデストラクタを呼び出すことはありません。
申し訳ありませんが、VIRTUAL_DELETE newのどこがわからないのですが?
VIRTUAL::Createでは。
ZZZ このスレッドはVirtualについてではないのですが・・・。
Alertウィンドウを マイニングする。
カスタムイベント時のCPU負荷
DEAL_TIMEがDEAL_ORDER_TIME_SETUPより小さい場合があります。ブローカーソフトのバグに違いない。
GUIではこのように表示されます。
DEAL_TIMEがDEAL_ORDER_TIME_SETUPより小さい場合があります。ブローカーソフトのバグに違いない。
GUIではこのように表示されます。
おそらく、バグだと思います。
でも、普通にできるんですよね?部分実行後にユーザー/ソフトウェアによって指値注文を変更した場合、ORDER_TIME_SETUPが 更新されます。
でも、これもアリですよね?部分実行後、ユーザー/ソフトウェアによって指値注文が変更された場合、ORDER_TIME_SETUPが 更新されます。
このフィールドは定数である。チケットと一緒に書かれています。
このフィールドは定数である。チケットと一緒に書かれています。
どうやら、私は取引状況を誤解していたようだ。
私のイメージでは、保留中の指値が複数の取引を通じて実行されました。この間、ライブ注文でハングアップし、ORDER_TIME_SETUP フィールドが定数でないことがありました。最後の取引後、履歴に入りました。その瞬間、ORDER_TIME_SETUPは 定数化された。
それとも、そうでなかったのか?