ライブラリ: MT4Orders - ページ 36 1...293031323334353637383940414243...95 新しいコメント fxsaber 2019.03.13 15:55 #351 Ilya Malev: スーパーだ!私の理解では、これはヒストリーのSELECT_BY_TICKET選択の問題(部分的な実行がないことが保証されている場合)を解決するものですか?#include <MT4Orders.mqh> #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) void OnStart() { const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0); // ポジションを開設した。 if (OrderSelect(Ticket, SELECT_BY_TICKET)) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100); // ポジションを閉じる。 if (OrderSelect(Ticket, SELECT_BY_TICKET)) // MT5 チケットを選択するオプションがトリガーされます。 OrderPrint(); }これは最も原始的な使用例です。 Andrey Khatimlianskiiと Igor Makanuに 感謝します。声に挙がっていた課題は思いつきませんでした。 特に、今はネット上でも、注文が開かれたときにそのチケットに基づいて注文の運命を監視することができる。 例をまとめて、行われたことの複雑さを説明するのは難しい。OrderTicket、OrderTicketOpen、OrderTicketID、および任意のMT5チケットに対するSELECT_BY_TICKETのさまざまな状況(および部分的な実行)を試してください。 Ilya Malev 2019.03.13 16:56 #352 fxsaber:これは最も原始的な使い方の例です。理解できないことがあります:あなたの例では、新しい関数呼び出しがありません。最新のライブラリでは、履歴はデフォルトでMT4のように機能するのでしょうか?それとも、受け取ったチケットでまだ何かをする必要があるのでしょうか。 Ilya Malev 2019.03.13 16:56 #353 fxsaber:アンドレイ・ハティムリアンスキーと イゴール・マカヌには"完走 "できたことを感謝している。声に出されたタスクは思い浮かばなかった。お疲れさまでした。 fxsaber 2019.03.13 17:36 #354 Ilya Malev:あなたの例では、新しい関数呼び出しがありません。最新のライブラリでは、履歴はデフォルトでMT4と同じように動作しますか?それとも、受信したチケットでまだ何かする必要がありますか?受信したチケットで何かをする必要はありません。簡単に解決できる範囲が広がりました。例として このスクリプト #property script_show_inputs #include <MT4Orders.mqh> input TICKET_TYPE inTicket = 0; // 便利な出力 template <typename T> T MyPrint( const T Value, const string Str ) { Print(Str + " = " + (string)Value); return(Value); } #define _P(A) MyPrint(A, __FUNCSIG__ ", Line = " + (string)__LINE__ + ": " + #A) // 全てのチケットデータを出力 void Test( const TICKET_TYPE Ticket ) { _P(Ticket); if (_P(OrderSelect(Ticket, SELECT_BY_TICKET))) { OrderPrint(); _P(OrderTicket()); _P(OrderTicketOpen()); _P(OrderTicketID()); } Print(""); } void OnStart() { Test(inTicket); if (OrderSelect(OrdersHistoryTotal() - 1, SELECT_BY_POS, MODE_HISTORY)) Test(OrderTicket()); } は次のようなものを生成します void Test(const long), Line = 15: Ticket = 0 void Test(const long), Line = 17: OrderSelect(Ticket,1) = false void Test(const long), Line = 15: Ticket = 1753321 void Test(const long), Line = 17: OrderSelect(Ticket,1) = true #1753321 2019.03.13 16:15:07 buy 1.00 EURUSD 1.13119 0.00000 0.00000 2019.03.13 16:15:08 1.13118 -4.52 0.00 -1.00 0 void Test(const long), Line = 21: OrderTicket() = 1753321 void Test(const long), Line = 22: OrderTicketOpen() = 1753320 void Test(const long), Line = 23: OrderTicketID() = 2532884 選択されたチケットのどれを選択しても同じ結果になります。 fxsaber 2019.03.14 12:00 #355 fxsaber:選択されたチケットのいずれかによって選択しても、同じ結果が得られます。Therefore, it is completely normal when the selection by Ticket is successful and OrderTicket() != Ticket. fxsaber 2019.04.10 22:30 #356 取引、自動取引システム、取引戦略のテストに関するフォーラムエキスパート: TradePanelfxsaber, 2019.04.10 22:28 MT5に変換します:#include <KimIVToMT5.mqh> //https://www.mql5.com/ru/forum/93352/page32#comment_10603352 #define ERR_NO_CONNECTION 6 #define ERR_TRADE_NOT_ALLOWED 4109 #define ERR_TRADE_EXPERT_DISABLED_BY_SERVER 4112 int ObjectsTotal() { return(ObjectsTotal(0)); } string ObjectName( const int Pos ) { return(ObjectName(0, Pos)); } bool IsConnected() { return((bool)TerminalInfoInteger(TERMINAL_CONNECTED)); } #define NULL _Symbol // マクロの再定義 #include "TradePanel.mq4" //https://www.mql5.com/en/code/19752 fxsaber 2019.04.26 14:44 #357 変換のもう一つの例 取引、自動取引システム、取引戦略のテストに関するフォーラム インジケーター:株式チャート fxsaber, 2019.04.25 11:25 AM. うまくいったようだ #define MT4_TICKET_TYPE // OrderSendとOrderTicketがMT4と同じ型(int)の値を返すようにします。 #include <KimIVToMT5.mqh> //https://c.mql5.com/3/263/KimIVToMT5.mqh //https://www.mql5.com/en/blogs/post/681230 #include "ind4to5.mqh" //https://c.mql5.com/3/277/ind4to5.mqh #property indicator_separate_window #property indicator_buffers 6 #property indicator_plots 2 #property indicator_color1 SteelBlue #property indicator_color2 OrangeRed #property indicator_color3 SlateGray #property indicator_color4 ForestGreen #property indicator_color5 Silver #property indicator_color6 Gray #property indicator_width1 1 #property indicator_width2 1 #property indicator_width3 1 #property indicator_width4 1 #property indicator_width5 1 #property indicator_width6 1 #define TotalOrders TotalOrdersTmp #define Ticket TicketTmp #define StartTime StartTimeTmp #define Type TypeTmp #define Margin MarginTmp #define Magic MagicTmp bool ObjectSetText( const string name, const string text, const int font_size = 0, const string font_name = NULL ) { return(ObjectSetString(0, name, OBJPROP_TEXT, text) && (!font_size || ObjectSetInteger(0, name, OBJPROP_FONTSIZE, font_size)) && ((font_name == NULL) || ObjectSetString(0, name, OBJPROP_FONT, font_name))); } string StringConcatenate( const string Str1, const string Str2, const string Str3 ) { return(Str1 + Str2 + Str3); } string StringConcatenate( const string Str1, const string Str2, const string Str3, const string Str4) { return(Str1 + Str2 + Str3 + Str4); } string StringConcatenate( const string Str1, const string Str2, const string Str3, const string Str4, const string Str5 ) { return(Str1 + Str2 + Str3 + Str4 + Str5); } string StringConcatenate( const string Str1, const string Str2, const int Str3, const string Str4, const int Str5 ) { return(Str1 + Str2 + (string)Str3 + Str4 + (string)Str5); } string StringConcatenate( const string Str1, const string Str2, const string Str3, const string Str4, const string Str5, const string Str6 ) { return(Str1 + Str2 + Str3 + Str4 + Str5 + Str6); } string StringConcatenate( const string Str1, const int Str2, const string Str3, const double Str4, const string Str5, const string Str6 ) { return(Str1 + (string)Str2 + Str3 + (string)Str4 + Str5 + Str6); } string StringConcatenate( const string Str1, const string Str2, const string Str3, const string Str4, const string Str5, const string Str6, const string Str7 ) { return(Str1 + Str2 + Str3 + Str4 + Str5 + Str6 + Str7); } string StringConcatenate( const int Str1, const string Str2, const ENUM_TIMEFRAMES Str3, const string Str4) { return((string)Str1 + Str2 + EnumToString(Str3) + Str4); } // コンパイルエラーの行をコメントアウト: 'Import_History' - 定数は変更できません Equity-Monitor.mq4 734 7 #include "Equity-Monitor.mq4" //https://www.mql5.com/ja/code/13242 fxsaber 2019.04.29 10:53 #358 取引、自動取引システム、取引戦略のテストに関するフォーラム MT4からMT5へのコード変換 fxsaber, 2019.04.29 10:27 AM #include <KimIVToMT5.mqh> //https://c.mql5.com/3/263/KimIVToMT5.mqh #include "Modify_All_TP_SL.mq4" //https://www.mql5.com/en/forum/179991/page44#comment_11298251 取引、自動取引システム、テスト取引戦略に関するフォーラム MT4からMT5へのコードコンバータ fxsaber, 2019.04.29 10:47 AM #property indicator_chart_window #property indicator_buffers 6 #property indicator_plots 6 #property indicator_color1 White #property indicator_color2 White #property indicator_color3 DodgerBlue #property indicator_color4 DodgerBlue #property indicator_color5 Lime #property indicator_color6 Red #property indicator_width1 5 #property indicator_width2 5 #property indicator_width3 3 #property indicator_width4 3 #property indicator_width5 1 #property indicator_width6 1 #include <KimIVToMT5.mqh> //https://c.mql5.com/3/263/KimIVToMT5.mqh //https://www.mql5.com/en/blogs/post/681230 #define MT4_OLD_EVENT_HANDLERS #include "ind4to5.mqh" //https://c.mql5.com/3/277/ind4to5.mqh #define digits digits2 #undef MODE_LOW #undef MODE_HIGH #include "Chaos_Semafor_-_3_Mod.mq4" //https://c.mql5.com/3/277/Chaos_Semafor_-_3_Mod__1.mq4 fxsaber 2019.04.29 15:19 #359 製品でMT4Ordersの使用を口外しないようにする必要がある場合は、ライブラリのソースコードの関連部分をカットするか、ユニバーサルスタブを付けることができます。// マクロにより、MT4Orders の存在に関するヒントを遮断する。 #define Alert PrintTmp #define Print PrintTmp void PrintTmp( string ) {} #include <MT4Orders.mqh> // https://www.mql5.com/ja/code/16006 #undef Print #undef Alert fxsaber 2019.04.30 12:09 #360 取引、自動取引システム、取引戦略のテストに関するフォーラムエキスパート:デイリーチャートトレーダーfxsaber, 2019.04.30 12:08 AM MT5バージョン#define MT4_TICKET_TYPE // OrderSendとOrderTicketがMT4と同じ型(int)の値を返すようにします。 #include <KimIVToMT5.mqh> //https://c.mql5.com/3/263/KimIVToMT5.mqh #include "ind4to5.mqh" //https://c.mql5.com/3/277/ind4to5.mqh bool ObjectSetText( const string name, const string text, const int font_size = 0, const string font_name = NULL, const color Color = clrNONE ) { return(ObjectSetString(0, name, OBJPROP_TEXT, text) && ((font_name == NULL) || ObjectSetInteger(0, name, OBJPROP_FONTSIZE, font_size)) && ((font_name == NULL) || ObjectSetString(0, name, OBJPROP_FONT, font_name)) && ((Color == clrNONE) || ObjectSetInteger(0, name, OBJPROP_COLOR, Color))); } #define NULL "" #include "AEROSPINE.mq4" //https://www.mql5.com/en/code/24903 1...293031323334353637383940414243...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
スーパーだ!私の理解では、これはヒストリーのSELECT_BY_TICKET選択の問題(部分的な実行がないことが保証されている場合)を解決するものですか?
これは最も原始的な使用例です。
Andrey Khatimlianskiiと Igor Makanuに 感謝します。声に挙がっていた課題は思いつきませんでした。
特に、今はネット上でも、注文が開かれたときにそのチケットに基づいて注文の運命を監視することができる。
例をまとめて、行われたことの複雑さを説明するのは難しい。OrderTicket、OrderTicketOpen、OrderTicketID、および任意のMT5チケットに対するSELECT_BY_TICKETのさまざまな状況(および部分的な実行)を試してください。
これは最も原始的な使い方の例です。
理解できないことがあります:あなたの例では、新しい関数呼び出しがありません。最新のライブラリでは、履歴はデフォルトでMT4のように機能するのでしょうか?それとも、受け取ったチケットでまだ何かをする必要があるのでしょうか。
アンドレイ・ハティムリアンスキーと イゴール・マカヌには"完走 "できたことを感謝している。声に出されたタスクは思い浮かばなかった。
お疲れさまでした。
あなたの例では、新しい関数呼び出しがありません。最新のライブラリでは、履歴はデフォルトでMT4と同じように動作しますか?それとも、受信したチケットでまだ何かする必要がありますか?
受信したチケットで何かをする必要はありません。簡単に解決できる範囲が広がりました。例として
このスクリプト
は次のようなものを生成します
選択されたチケットのどれを選択しても同じ結果になります。
選択されたチケットのいずれかによって選択しても、同じ結果が得られます。
Therefore, it is completely normal when the selection by Ticket is successful and OrderTicket() != Ticket.
取引、自動取引システム、取引戦略のテストに関するフォーラム
エキスパート: TradePanel
fxsaber, 2019.04.10 22:28
MT5に変換します:取引、自動取引システム、取引戦略のテストに関するフォーラム
インジケーター:株式チャート
fxsaber, 2019.04.25 11:25 AM.
うまくいったようだ
取引、自動取引システム、取引戦略のテストに関するフォーラム
MT4からMT5へのコード変換
fxsaber, 2019.04.29 10:27 AM
取引、自動取引システム、テスト取引戦略に関するフォーラム
MT4からMT5へのコードコンバータ
fxsaber, 2019.04.29 10:47 AM
取引、自動取引システム、取引戦略のテストに関するフォーラム
エキスパート:デイリーチャートトレーダー
fxsaber, 2019.04.30 12:08 AM
MT5バージョン