ライブラリ: MT4Orders - ページ 37 1...303132333435363738394041424344...95 新しいコメント fxsaber 2019.04.30 23:05 #361 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム エキスパートアドバイザー:エクイティ・トラル fxsaber, 2019.04.30 22:57 MT5でこのEAを変換する #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))); } void OnInit() { init(); } void OnDeinit( const int ) { deinit(); } void OnTick() { start(); } #include "Equity_Tral.mq4" //https://www.mql5.com/ja/code/12354 fxsaber 2019.05.02 01:22 #362 私は自己啓発のための指標変換の特殊性を研究している。さらに3つのインジケーターを紹介します。 #define MT4_TICKET_TYPE // OrderSendとOrderTicketがMT4と同じ型(int)の値を返すようにします。 #include <KimIVToMT5.mqh> //https://c.mql5.com/3/263/KimIVToMT5.mqh #define MT4_OLD_EVENT_HANDLERS #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))); } int WindowFind( const string ) { return(ChartWindowFind()); } int Digits( void ) { return(_Digits); } string StringTrimRight2( string Str ) { StringTrimRight(Str); return(Str); } string StringTrimLeft2( string Str ) { StringTrimLeft(Str); return(Str); } string ObjectDescription( const string name ) { return(ObjectGetString(0, name, OBJPROP_TEXT)); } #define CORNER_LEFT_LOWER 2 #define CORNER_LEFT_UPPER 0 #define CORNER_RIGHT_LOWER 3 #define CORNER_RIGHT_UPPER 1 #define CORNER(A) ((A) ? ((A) + 1) % 3 + 1 : 0) bool ObjectSet2( const string name, const ENUM_OBJECT_PROPERTY_INTEGER property, const long value ) { return((property != OBJPROP_CORNER) ? ObjectSetInteger(0, name, property, value) : ObjectSetInteger(0, name, OBJPROP_CORNER, CORNER(value)) && ObjectSetInteger(0, name, OBJPROP_ANCHOR, CORNER(value) << 1)); } bool ObjectSet2( const string name, const ENUM_OBJECT_PROPERTY_DOUBLE property, const double value ) { return(ObjectSetDouble(0, name, property, value)); } #undef CORNER template <typename T> bool ObjectCreate2(const string name, const T type, const int subwindow, const datetime time1, const double price1, const datetime time2 = NULL, const double price2 = NULL) { return(ObjectCreate(0, name, (ENUM_OBJECT)type, subwindow, time1, price1, time2, price2)); }; template <typename T> bool ObjectCreate2(const long chart_id, const string name, const T type, const int subwindow, const datetime time1, const double price1, const datetime time2 = NULL, const double price2 = NULL) { return(ObjectCreate(chart_id, name, (ENUM_OBJECT)type, subwindow, time1, price1, time2, price2)); }; #define TRUE true #define FALSE false #define StringTrimRight StringTrimRight2 #define StringTrimLeft StringTrimLeft2 #define ObjectSet ObjectSet2 #define ObjectCreate ObjectCreate2 #define StringConcatenate StringConcatenate2 string StringConcatenate2( const string Str1, const int Str2 ) { return(Str1 + (string)Str2); } string StringConcatenate2( const double Str1, const string Str2, const string Str3 ) { return((string)Str1 + Str2 + Str3); } string StringConcatenate2( 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 StringConcatenate2( const string Str1, const int Str2, const string Str3, const string Str4, const string Str5, const double Str6, const string Str7, const string Str8, const string Str9, const double Str10 ) { return(Str1 + (string)Str2 + Str3 + Str4 + Str5 + (string)Str6 + Str7 + Str8 + Str9 + (string)Str10); } string StringConcatenate2( const string Str1, const int Str2, const string Str3, const string Str4, const string Str5, const double Str6, const string Str7, const string Str8, const string Str9, const double Str10, const string Str11, const double Str12 ) { return(Str1 + (string)Str2 + Str3 + Str4 + Str5 + (string)Str6 + Str7 + Str8 + Str9 + (string)Str10 + Str11 + (string)Str12); } string StringConcatenate2( const string Str1, const int Str2, const string Str3, const double Str4, const string Str5, const double Str6 ) { return(Str1 + (string)Str2 + Str3 + (string)Str4 + Str5 + (string)Str6); } string StringConcatenate2( const string Str1, const double Str2, const string Str3, const string Str4 ) { return(Str1 + (string)Str2 + Str3 + Str4); } string StringConcatenate2( const string Str1, const string Str2, const int Str3 ) { return(Str1 + Str2 + (string)Str3); } #property indicator_buffers 0 #property indicator_plots 0 #define Symb SymbTmp #define NULL "" #property indicator_separate_window #include "TradeInfo.mq4" //https://github.com/icefx/tradeinfo/blob/master/TradeInfo.mq4 // #プロパティ indicator_chart_window // #include "ProfitInfo.mq4" //https://github.com/icefx/profitinfo/blob/master/ProfitInfo.mq4 // #プロパティ indicator_chart_window // #include "IceFX.DrawProfit.mq4" //https://github.com/icefx/drawprofit/blob/master/IceFX.DrawProfit.mq4 例によって、オリジナルのMT4コードには触れていません。 ソースコードを見れば、作者がコードでStringConcatenateを使っていることがよくわかる。バカとしか言いようがない! Vladimir Perervenko 2019.05.02 09:38 #363 TO: fxsaberありがとう。やることがたくさんあるね。脱帽だよ。最後の2つのインジケータ(ProfitInfo、IceFX.DrawProfit)は本当に44のエラーを投げました。何かが欠けています。しかし、それは問題ではありません。重要なのは、必要であれば、開発したものをすぐにMKL5に変換できるということです。幸運を祈る。 追記:そろそろあなたの仕事をGitHubに移す時期かもしれませんね? ファイル: Err.zip 229 kb fxsaber 2019.05.02 10:13 #364 Vladimir Perervenko:最後の2つのインジケータ(ProfitInfo、IceFX.DrawProfit)は本当に44のエラーを投げました。何かが欠けています。 おそらく、誤ってどこかに余分な文字を残してしまったのでしょう。 追記:そろそろあなたの作品をGitHubに移す時期かも?方法は知らない。そして、なぜプロファイルされたリソースから何かを移動するのでしょうか? Andrey Khatimlianskii 2019.05.02 22:53 #365 Vladimir Perervenko: 追記:そろそろ自分の仕事をGitHubに移したらどうだろう?私は長い間それを提案してきた。レポを立ち上げ、定期的に更新を始めたが、その後、削除してしまった。 fxsaber: なぜプロファイルされたリソースから何かを移動する必要があるのでしょうか? 1.更新を追跡するのに便利だからです(すべての編集を1つのリストにまとめたり、ソースをハイライトしたり...)。特に、kodobaseの全ファイルのアーカイブに関する問題(バグがまだ修正されていない?) 2.作業端末で)ワンクリックでどのバージョンにも切り替えられる。 3.クリック数回で新しいPCに同期。 4. ... 5.ローカルの独裁的な 管理からの解放。コメント、コード、記事、アカウントを削除するのは当たり前だ。そして異論を唱える者を追放するのは常套手段だ(私が言うことではないが)。 例えば、getch-aやhrenfxの開発は今や見つけるのが難しく、中には全く見つからないものもある。明日のfxsaberはどうなるんだろう?;) Vladimir Perervenko 2019.05.03 13:57 #366 fxsaber:ソースを見れば、どの作者がコードでStringConcatenateを使っているかがよくわかる。バカバカしい!正しい方法は? で置き換えれば変換される。StringConcatenate() のパラメータが2つの場合は変換され、それ以上の場合は変換されない。 fxsaber 2019.05.03 14:13 #367 Vladimir Perervenko:何が正しいのか?Str = Str1 + Str2 + Str3 + ....; fxsaber 2019.05.03 14:14 #368 Andrey Khatimlianskii:しばらく前から提案していたんだ。レポを立ち上げ、定期的に更新を始めた。1.更新を追跡するのに便利です(すべての編集を1つのリストにまとめたり、ソースでハイライトしたり...)。特に重要なのは、kodobaseの全ファイルのアーカイブに関する問題(バグはまだ修正されていない?)2.作業端末で)ワンクリックでどのバージョンにも切り替えられる。3.数クリックで新しいPCに同期。4. ...5.管理者の ローカルな横暴からの解放。コメント、コード、記事、アカウントの削除は日常茶飯事だ。そして、異論を唱える者を追放するのは常套手段だ(私が言うことではない)。議論のリストをありがとう。このトピックについて調べてみるよ。 Andrey Khatimlianskii 2019.05.03 15:55 #369 fxsaber:議論のリストをありがとう。このトピックについて調べてみようと思う。 このフォーラムでも議論がありました。BitBucket + utf8エンコーディング + 同期用SourceTree = レディ・リポジトリ Stanislav Korotky 2019.05.03 21:24 #370 Andrey Khatimlianskii: このフォーラムで議論があった。BitBucket + utf8エンコーディング + 同期用SourceTree = レディ・リポジトリそして、最大5人が同時に編集権を持つことができます。 1...303132333435363738394041424344...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
エキスパートアドバイザー:エクイティ・トラル
fxsaber, 2019.04.30 22:57
MT5でこのEAを変換する
私は自己啓発のための指標変換の特殊性を研究している。さらに3つのインジケーターを紹介します。
例によって、オリジナルのMT4コードには触れていません。
ソースコードを見れば、作者がコードでStringConcatenateを使っていることがよくわかる。バカとしか言いようがない!
TO: fxsaber
ありがとう。やることがたくさんあるね。脱帽だよ。
最後の2つのインジケータ(ProfitInfo、IceFX.DrawProfit)は本当に44のエラーを投げました。何かが欠けています。しかし、それは問題ではありません。
重要なのは、必要であれば、開発したものをすぐにMKL5に変換できるということです。
幸運を祈る。
追記:そろそろあなたの仕事をGitHubに移す時期かもしれませんね?最後の2つのインジケータ(ProfitInfo、IceFX.DrawProfit)は本当に44のエラーを投げました。何かが欠けています。
おそらく、誤ってどこかに余分な文字を残してしまったのでしょう。
方法は知らない。そして、なぜプロファイルされたリソースから何かを移動するのでしょうか?
追記:そろそろ自分の仕事をGitHubに移したらどうだろう?
私は長い間それを提案してきた。レポを立ち上げ、定期的に更新を始めたが、その後、削除してしまった。
なぜプロファイルされたリソースから何かを移動する必要があるのでしょうか?
1.更新を追跡するのに便利だからです(すべての編集を1つのリストにまとめたり、ソースをハイライトしたり...)。特に、kodobaseの全ファイルのアーカイブに関する問題(バグがまだ修正されていない?)
2.作業端末で)ワンクリックでどのバージョンにも切り替えられる。
3.クリック数回で新しいPCに同期。
4. ...
5.ローカルの独裁的な 管理からの解放。コメント、コード、記事、アカウントを削除するのは当たり前だ。そして異論を唱える者を追放するのは常套手段だ(私が言うことではないが)。
例えば、getch-aやhrenfxの開発は今や見つけるのが難しく、中には全く見つからないものもある。明日のfxsaberはどうなるんだろう?;)
ソースを見れば、どの作者がコードでStringConcatenateを使っているかがよくわかる。バカバカしい!
正しい方法は?
で置き換えれば変換される。StringConcatenate() のパラメータが2つの場合は変換され、それ以上の場合は変換されない。
何が正しいのか?
しばらく前から提案していたんだ。レポを立ち上げ、定期的に更新を始めた。
1.更新を追跡するのに便利です(すべての編集を1つのリストにまとめたり、ソースでハイライトしたり...)。特に重要なのは、kodobaseの全ファイルのアーカイブに関する問題(バグはまだ修正されていない?)
2.作業端末で)ワンクリックでどのバージョンにも切り替えられる。
3.数クリックで新しいPCに同期。
4. ...
5.管理者の ローカルな横暴からの解放。コメント、コード、記事、アカウントの削除は日常茶飯事だ。そして、異論を唱える者を追放するのは常套手段だ(私が言うことではない)。
議論のリストをありがとう。このトピックについて調べてみるよ。
議論のリストをありがとう。このトピックについて調べてみようと思う。
このフォーラムで議論があった。
そして、最大5人が同時に編集権を持つことができます。