MQL5におけるOOPに関する質問 - ページ 61 1...545556575859606162636465666768...96 新しいコメント Igor Makanu 2020.05.20 05:54 #601 Alexey Navoykov: 一方、シリアライゼーションでは、テキストフィールド名を明示的に指定した方が、保存されたファイルが動作しなくなる心配がなく、コード内で自由に名前を変更することができるだろう。 ワークアラウンドの構造について聞いているのであって、実装自体は大した問題ではない ))) jsonは各クラスのメソッドにするのか、静的なクラスにするのか、それとも一般的にテキストの形でクラスのフィールドを複製するのか......問題は、フィールドに名前を付けることではなく、その後にどうするかということです。 ;) ZSです。 MQLからC++で一般的なコードをそのまま移植したんだ!!」と、確立された自慢話を思いついた。" もちろん、これは必要なことですが、このようなコード構造の開発に費やす時間という点では、かなりコストがかかりますし、新しい希望に応じたコードサポートも必要になるでしょう。 接続の唯一の利点 C + +(++ MQLの )明確ではない、構文構成は90%同じですが、なぜ重複?プロジェクトを 書きながらIDEで制御の拡張構文とコンパイラの可能性とイモ興味深い他の言語 - それは、少なくとも高速で快適ですが、パブリックドメイン、同じC#とPythonで準備開発は言うまでもありません。 Koldun Zloy 2020.05.20 12:03 #602 Igor Makanu: C++バンドル(+++ MQL)の優位性だけが明確でない C++にはもっと多くの可能性があります。さらに10億通りのライブラリーがある。 Igor Makanu 2020.05.20 12:23 #603 Koldun Zloy: C++はさらに多くの機能を備えています。さらに10億通りのライブラリーがある。 まがうかたなく しかし、どんなに頑張っても、MQLでどんなCのヘッダーファイルでも開いて、100万個のライブラリを接続するための既製のC++ソリューションを使うことはできないだろう 今年の初めにググって、C++ APIを持つMQLにTensorFlowを接続することを試みました。 Koldun Zloy 2020.05.20 13:16 #604 Igor Makanu: 紛れもなく しかし、どんなに頑張っても、どんなCのヘッダーファイルでも、MQLで開いて、C++からの既製のソリューションを使って、100万個のライブラリを接続することはできないのです 今年の初めにググって、TensorFlowとC++ APIを持つMQLを接続しようとした - viperを書く必要がある。 C++とMQLのペアリングについてご質問いただきました。DLLでC++が使われているのは理解できた。それ以外にはないでしょう? Igor Makanu 2020.05.20 13:55 #605 Koldun Zloy: C++とMQLの関連性についてお聞きしました。DLLにC++が使われていることは理解した。それ以外にはないでしょう? 私はhttps://www.mql5.com/ru/forum/307970/page10#comment_11652222 に尋ねた。 然らばヘッダーファイルc_api.h(添付してあります)をMQLで開いて、TensorFlowのドキュメントを使えるようにする裏ワザ この場合、VSでヘッダーファイルを開き、コール、モデル、内部状態などをラップしていきます。...を.dllに取り込むと、MQLで使用することができます。 手間ひまかかる イゴール・マカヌ:というわけで、回避策の構造を聞いているのであって、実装そのものは後回しです ))) MQLのツールを使ってjsonで単純な構造をシリアライズするのが現実的かもしれないhttps://habr.com/ru/post/311262/ せめてウェブで公開されている資料があれば心強いのですが ファイル: c_api.zip 17 kb Vladimir Simakov 2020.05.20 17:20 #606 Igor Makanu: うんうん...もう一度聞いてみます。 助けて!例題が欲しい! お願いします。 あくまで、膝の上で考えたことを書いたものです。 #define COMMA (text==NULL?NULL:",\n") #define PUSH(dVal) Push(#dVal,dVal) class CJSon{ string text; public: CJSon():text(NULL){} CJSon* Push(string key,string value) {text+=COMMA+"\""+key+"\":\""+value+"\""; return &this;} CJSon* Push(string key,long value) {text+=COMMA+"\""+key+"\":"+(string)value; return &this;} CJSon* Push(string key,double value) {text+=COMMA+"\""+key+"\":"+(string)value; return &this;} string Finish() {return text="{\n"+text+"\n}";} }; #undef COMMA void OnStart(){ int a=56; double b=0.369; string text="Example"; string json=(CJSon()).PUSH(a).PUSH(b).PUSH(text).Finish(); Print(json); } Igor Makanu 2020.05.20 19:56 #607 Vladimir Simakov: 土下座して書いた、考えるだけ。 ありがとうございます、でもうまくいきません(( //+------------------------------------------------------------------+ static string _json; template<typename T>class CJSon{ #define COMMA (_json==NULL?NULL:",\n") #define PUSH(dVal) Push(#dVal,dVal) public: CJSon() {_json = "";} CJSon* Push(string key,string value) {_json+=COMMA+"\""+key+"\":\""+value+"\""; return &this;} CJSon* Push(string key,long value) {_json+=COMMA+"\""+key+"\":"+(string)value; return &this;} CJSon* Push(string key,double value) {_json+=COMMA+"\""+key+"\":"+(string)value; return &this;} static string Finish() {return _json="{\n"+_json+"\n}";} }; //+------------------------------------------------------------------+ class A { public: static long a1; }; long A::a1; //+------------------------------------------------------------------+ void OnStart() { CJSon<A> a; A::a1 = 10; a.PUSH(A::a1); string s = a.Finish() ; PRINT(s); } //+------------------------------------------------------------------+ 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) s = {. 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) , 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) "A::a1":10 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) }. その上、静的なものしか扱えません。 文字列をdefineで1つのメソッドに集めるのはそれほど難しくないが、一般的には、考える必要がある Koldun Zloy 2020.05.21 05:45 #608 Igor Makanu: 以下、https://www.mql5.com/ru/forum/307970/page10#comment_11652222。 然らばヘッダーファイルc_api.hをMQLで開き、TensorFlowのドキュメントを利用するための仕掛け この場合、VSでヘッダーファイルを開き、コール、モデル、内部状態などをラップしていきます。...を.dllに取り込むと、MQLで使用することができます。 何しろ時間がかかる MQLコンパイラでC++ソースをコンパイルするためのトリックがない。 TensorFlowライブラリは、多くの関数をエクスポートします。おそらく、必要なのはごく一部でしょう。 使用する関数のプロトタイプを書く。すぐに終わりますよ。 Dmitry Fedoseev 2020.05.21 10:27 #609 Vladimir Simakov: 土下座して書いた、考えるだけ。 最後に、とても興味深いことがあります。これは「Steam Train」のパターンですか? Vladimir Simakov 2020.05.21 16:27 #610 Igor Makanu: ありがとうございます、でも刺さらなかったです(( 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) s = {. 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) , 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) "A::a1":10 2020.05.20 23:51:43.932 tst____ (EURUSD,H1) }. その上、静的なものしか扱えません。 defineで1つのメソッドに文字列を集めるのはそれほど難しくないが、考えなければならないことがある なぜか間違っている) #define COMMA (text==NULL?"{\n":",\n") #define VALUE(dVal) Push(#dVal,dVal) #define STRUCT(dVal) PushStruct(#dVal,dVal.JSon()) class CJSon{ string text; public: CJSon():text(NULL){} CJSon* Push(string key,string value) {text+=COMMA+"\""+key+"\":\""+value+"\""; return &this;} CJSon* PushStruct(string key,string value) {text+=COMMA+"\""+key+"\":"+value; return &this;} CJSon* Push(string key,long value) {text+=COMMA+"\""+key+"\":"+(string)value; return &this;} CJSon* Push(string key,double value) {text+=COMMA+"\""+key+"\":"+(string)value; return &this;} string Finish() {return text+="\n}";} }; #undef COMMA class _CTest{ int a; double b; string t; public: _CTest(int _a,double _b,string _t):a(_a),b(_b),t(_t){} string JSon() {return (CJSon()).VALUE(a).VALUE(b).VALUE(t).Finish();} }; class CTest{ _CTest test; int a; long b; public: CTest():test(10,0.369,"Hi"),a(555),b(LONG_MIN){} string JSon() {return (CJSon()).STRUCT(test).VALUE(a).VALUE(b).Finish();} }; void OnStart(){ CTest test; Print(test.JSon()); } PS修正 1...545556575859606162636465666768...96 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
一方、シリアライゼーションでは、テキストフィールド名を明示的に指定した方が、保存されたファイルが動作しなくなる心配がなく、コード内で自由に名前を変更することができるだろう。
ワークアラウンドの構造について聞いているのであって、実装自体は大した問題ではない )))
jsonは各クラスのメソッドにするのか、静的なクラスにするのか、それとも一般的にテキストの形でクラスのフィールドを複製するのか......問題は、フィールドに名前を付けることではなく、その後にどうするかということです。
;)
ZSです。
MQLからC++で一般的なコードをそのまま移植したんだ!!」と、確立された自慢話を思いついた。"
もちろん、これは必要なことですが、このようなコード構造の開発に費やす時間という点では、かなりコストがかかりますし、新しい希望に応じたコードサポートも必要になるでしょう。
接続の唯一の利点 C + +(++ MQLの )明確ではない、構文構成は90%同じですが、なぜ重複?プロジェクトを 書きながらIDEで制御の拡張構文とコンパイラの可能性とイモ興味深い他の言語 - それは、少なくとも高速で快適ですが、パブリックドメイン、同じC#とPythonで準備開発は言うまでもありません。
C++バンドル(+++ MQL)の優位性だけが明確でない
C++にはもっと多くの可能性があります。さらに10億通りのライブラリーがある。
C++はさらに多くの機能を備えています。さらに10億通りのライブラリーがある。
まがうかたなく
しかし、どんなに頑張っても、MQLでどんなCのヘッダーファイルでも開いて、100万個のライブラリを接続するための既製のC++ソリューションを使うことはできないだろう
今年の初めにググって、C++ APIを持つMQLにTensorFlowを接続することを試みました。
紛れもなく
しかし、どんなに頑張っても、どんなCのヘッダーファイルでも、MQLで開いて、C++からの既製のソリューションを使って、100万個のライブラリを接続することはできないのです
今年の初めにググって、TensorFlowとC++ APIを持つMQLを接続しようとした - viperを書く必要がある。
C++とMQLのペアリングについてご質問いただきました。DLLでC++が使われているのは理解できた。それ以外にはないでしょう?
C++とMQLの関連性についてお聞きしました。DLLにC++が使われていることは理解した。それ以外にはないでしょう?
私はhttps://www.mql5.com/ru/forum/307970/page10#comment_11652222 に尋ねた。
然らばヘッダーファイルc_api.h(添付してあります)をMQLで開いて、TensorFlowのドキュメントを使えるようにする裏ワザ
この場合、VSでヘッダーファイルを開き、コール、モデル、内部状態などをラップしていきます。...を.dllに取り込むと、MQLで使用することができます。
手間ひまかかる
というわけで、回避策の構造を聞いているのであって、実装そのものは後回しです )))
MQLのツールを使ってjsonで単純な構造をシリアライズするのが現実的かもしれないhttps://habr.com/ru/post/311262/
せめてウェブで公開されている資料があれば心強いのですが
うんうん...もう一度聞いてみます。
助けて!例題が欲しい! お願いします。
あくまで、膝の上で考えたことを書いたものです。
土下座して書いた、考えるだけ。
ありがとうございます、でもうまくいきません((
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) s = {.
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) ,
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) "A::a1":10
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) }.
その上、静的なものしか扱えません。
文字列をdefineで1つのメソッドに集めるのはそれほど難しくないが、一般的には、考える必要がある
以下、https://www.mql5.com/ru/forum/307970/page10#comment_11652222。
然らばヘッダーファイルc_api.hをMQLで開き、TensorFlowのドキュメントを利用するための仕掛け
この場合、VSでヘッダーファイルを開き、コール、モデル、内部状態などをラップしていきます。...を.dllに取り込むと、MQLで使用することができます。
何しろ時間がかかる
MQLコンパイラでC++ソースをコンパイルするためのトリックがない。
TensorFlowライブラリは、多くの関数をエクスポートします。おそらく、必要なのはごく一部でしょう。
使用する関数のプロトタイプを書く。すぐに終わりますよ。
土下座して書いた、考えるだけ。
最後に、とても興味深いことがあります。これは「Steam Train」のパターンですか?
ありがとうございます、でも刺さらなかったです((
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) s = {.
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) ,
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) "A::a1":10
2020.05.20 23:51:43.932 tst____ (EURUSD,H1) }.
その上、静的なものしか扱えません。
defineで1つのメソッドに文字列を集めるのはそれほど難しくないが、考えなければならないことがある
なぜか間違っている)
PS修正