MQL5におけるOOPに関する質問 - ページ 48 1...414243444546474849505152535455...96 新しいコメント Vladimir Simakov 2020.04.21 14:04 #471 Alexey Navoykov: MQLはC++よりも高レベルで、コードももっとシンプルで簡潔なはずです。 しかし、実際はその逆です。 MQLのコードはずっと面倒で不器用です。 いろいろなことを計算しなければならないのです。 感覚的にはWinApiを思い出します))) Igor Makanu 2020.05.15 19:15 #472 MQLに移植 する方法を教えてくれる強力な人はいませんか? https://ru.wikipedia.org/wiki/Хранитель (デザインパターン) / C++非標準版パターン 真正面から挑んだら、前方の描写がおかしくなっていた //+------------------------------------------------------------------+ class Originator { public: int state; Originator() : state(0) { } class Memento; Memento* getMemento(); void setState(int s) { state = s; } void dumpState() { printf("State: %i", state); } class Memento { public: class Originator; int state; Originator* org; Memento() : state(0) { } void restoreState(); }; }; //+------------------------------------------------------------------+ Originator::Memento* Originator::getMemento() { Originator::Memento* m = new Originator::Memento(); // m.org = this; // m.state = state; // m->org = this; // m->state = state; return m; } //+------------------------------------------------------------------+ void Originator::Memento::restoreState() { // org->state = state; } //+------------------------------------------------------------------+ void OnStart() { } //+------------------------------------------------------------------+ Denis Kirichenko 2020.05.15 19:44 #473 Igor Makanu: MQLに移植 する方法を教えてくれる強力な人はいませんか? https://ru.wikipedia.org/wiki/Хранитель (デザインパターン) / C++非標準版パターン 真正面から挑んだら、前方描写がおかしくなった 私のバージョンです。 //+------------------------------------------------------------------+ class Originator { public: int state; Originator() : state(0) { } class Memento; Memento* getMemento(); void setState(int s) { state = s; } void dumpState() { printf("State: %i", state); } class Memento { public: //class Originator; int state; Originator* org; Memento() : state(0) { } void restoreState(); }; }; //+------------------------------------------------------------------+ Originator::Memento* Originator::getMemento() { Originator::Memento* m = new Originator::Memento(); m.org = GetPointer(this); m.state = state; return m; } //+------------------------------------------------------------------+ void Originator::Memento::restoreState() { this.state = state; } //+------------------------------------------------------------------+ void OnStart() { Originator org_obj; Originator::Memento* ptr_mem_obj = org_obj.getMemento(); delete ptr_mem_obj; } //+------------------------------------------------------------------+ Igor Makanu 2020.05.15 19:57 #474 Denis Kirichenko: 私のバージョンです。 素晴らしい!良い例ですね。 ありがとうございました。 Dmitry Fedoseev 2020.05.16 02:46 #475 Alexey Navoykov: 要は、C++より高水準であるはずだから、その中のコードはもっとシンプルで饒舌なはずだ。 しかし実際はその逆だ。 MQLのコードはずっと面倒で不器用だ。 多くのことを手抜きでやらなければならないのだ。 なーんて、短いジョークです(笑)。人生の専攻を間違えたのか、料理の専門学校に行くべきだったのか。 Dmitry Fedoseev 2020.05.16 02:47 #476 Alexey Navoykov: 実際、MQLがどのような言語であるかは重要ではありません。 主要なことは、C++よりも高レベルであり、そのコードはよりシンプルで簡潔であるはずだということです。 しかし実際は逆で、MQLのコードはずっと面倒で不器用です。 多くのことを手抜きして操作しなければならないのです。 ここで一番問題なのは、移植そのものではなく、移植全般でもなく、どうやったらそんな発想に至るのか、ということです。 Dmitry Fedoseev 2020.05.16 02:50 #477 心が未熟な子供がSTLを学ぶとこうなるのです。 そして、MQL-その制作者たちは、誰よりもプログラマーの実際の問題やプログラミングの難しさを理解していることを、まさに完璧に示したのです。理解できないなら、本当に料理の専門学校を考えた方がいいのでは? MQLの主な問題、唯一無二の問題は、戦略の確実な実行を保証するアルゴリズムを考え抜くことである。言語の問題では全くない。どんな言語や構文も、それだけでこれを提供することはできない。だから、構文のレベルでつっこんでくるのは、あなたがまだ幼稚園児レベルであることを明るく示しているのです。つまり、安定したアルゴリズムを開発する段階までいかず、コードの書き方すら学んでいないのです。でも、少なくともあなたは...ワゴン一杯の Vladimir Simakov 2020.05.16 17:35 #478 Igor Makanu: 素晴らしい!良い例です。 ありがとうございました。 class Originator { int state; public: class Memento; Originator() : state(0){} Memento* getMemento() {return new Memento(&this);} void setState(int s) {state=s;} int State() {return state;} void dumpState() {printf("State: %i", state);} /////////////////////////////////////////////////////////// class Memento{ int state; Originator* org; public: Memento(Originator* mOrg):state(mOrg.State()),org(mOrg){} void restoreState() {org.setState(state);} }; /////////////////////////////////////////////////////////// }; void OnStart() { Originator org_obj; Originator::Memento* ptr_mem_obj = org_obj.getMemento(); org_obj.setState(6); org_obj.dumpState(); ptr_mem_obj.restoreState(); org_obj.dumpState(); delete ptr_mem_obj; } それくらいがちょうどいいと思います Igor Makanu 2020.05.16 17:40 #479 Vladimir Simakov: これが正しい方法だと思われます OK、私はそれを保存します、私は仕事の原則をテストする必要がありました、多分これは私が探していたものです - テスターとその状態を保存することができる作業EA用の一つのコード、そして逆にテスターで「余分なジェスチャー」にリソースを無駄にしない - このパターンの一部は #ifdef -ami ;) によってカバーされることができます。 Vladimir Simakov 2020.05.16 18:20 #480 パターン・シングル、もちろん必要な人がいればですが。 class Alone{ private: int state; Alone():state(0){} public: static Alone* Get(){ static Alone alone; return &alone;} int State() {return(state);} void State(int _state) {state=_state;} }; void OnStart() { Test(123); Alone* test=Alone::Get(); Print(test.State()); } void Test(int x){ Alone* test=Alone::Get(); test.State(x);} ビール以来、美味しいものが食べたくなりました))) 年取ったかな)))) 1...414243444546474849505152535455...96 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MQLはC++よりも高レベルで、コードももっとシンプルで簡潔なはずです。 しかし、実際はその逆です。 MQLのコードはずっと面倒で不器用です。 いろいろなことを計算しなければならないのです。
MQLに移植 する方法を教えてくれる強力な人はいませんか?
https://ru.wikipedia.org/wiki/Хранитель (デザインパターン) / C++非標準版パターン
真正面から挑んだら、前方の描写がおかしくなっていた
MQLに移植 する方法を教えてくれる強力な人はいませんか?
https://ru.wikipedia.org/wiki/Хранитель (デザインパターン) / C++非標準版パターン
真正面から挑んだら、前方描写がおかしくなった
私のバージョンです。
私のバージョンです。
素晴らしい!良い例ですね。
ありがとうございました。
要は、C++より高水準であるはずだから、その中のコードはもっとシンプルで饒舌なはずだ。 しかし実際はその逆だ。 MQLのコードはずっと面倒で不器用だ。 多くのことを手抜きでやらなければならないのだ。
なーんて、短いジョークです(笑)。人生の専攻を間違えたのか、料理の専門学校に行くべきだったのか。
実際、MQLがどのような言語であるかは重要ではありません。 主要なことは、C++よりも高レベルであり、そのコードはよりシンプルで簡潔であるはずだということです。 しかし実際は逆で、MQLのコードはずっと面倒で不器用です。 多くのことを手抜きして操作しなければならないのです。
ここで一番問題なのは、移植そのものではなく、移植全般でもなく、どうやったらそんな発想に至るのか、ということです。
心が未熟な子供がSTLを学ぶとこうなるのです。
そして、MQL-その制作者たちは、誰よりもプログラマーの実際の問題やプログラミングの難しさを理解していることを、まさに完璧に示したのです。理解できないなら、本当に料理の専門学校を考えた方がいいのでは?
MQLの主な問題、唯一無二の問題は、戦略の確実な実行を保証するアルゴリズムを考え抜くことである。言語の問題では全くない。どんな言語や構文も、それだけでこれを提供することはできない。だから、構文のレベルでつっこんでくるのは、あなたがまだ幼稚園児レベルであることを明るく示しているのです。つまり、安定したアルゴリズムを開発する段階までいかず、コードの書き方すら学んでいないのです。でも、少なくともあなたは...ワゴン一杯の
素晴らしい!良い例です。
ありがとうございました。
それくらいがちょうどいいと思います
これが正しい方法だと思われます
OK、私はそれを保存します、私は仕事の原則をテストする必要がありました、多分これは私が探していたものです - テスターとその状態を保存することができる作業EA用の一つのコード、そして逆にテスターで「余分なジェスチャー」にリソースを無駄にしない - このパターンの一部は #ifdef -ami ;) によってカバーされることができます。
パターン・シングル、もちろん必要な人がいればですが。
ビール以来、美味しいものが食べたくなりました)))
年取ったかな))))