最終的にみんながMT5に乗り換えるにはどうしたらいいのでしょうか?(意見収集) - ページ 35

 
Makar Anoshin:

少なくとも、古いPCやノートPCでは起動時に不具合が出ることはない。MT5はこの点、非常に違和感があるのですが...。最適化やExpert Advisorやインジケータとの連携についてではありません。そこでは、すべてがより複雑になる......。だから、このような状況では、無意識のうちに楽な方を選んでしまう...。(MT4)

それについてどう思いますか?

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

MT4からMT5への乗り換えは意味があるのでしょうか?なぜMT5に乗り換える必要があるのですか?

レナート・ファットフーリン, 2019.02.08 23:07

スレッドの議論を踏まえて現実に近づけたい最終的にみんながMT5に 乗り換えるにはどうしたらいいのか?(意見収集)

  1. MetaTrader 5の方が取引速度が速い

    5のアーキテクチャは、4に比べて一桁以上効率的です。すべてのプロセスを再構築し、最小限の遅れで取引ができるようにしました。

    非同期オペレーションを使えば(使わなくても)、最大で1秒間に数千トレードを実現できます。取引の優先順位付けをはじめ、すべてがスピード重視で作られています。

    4で終わっても全然足りない。

  2. MetaTrader 5では、ロボットは最大20倍高速に動作します。

    これは、5がC++レベルのコンパイラを使用しているため、コードが非常に効率的になっているためです。F4では、コードの最適化を行わず、古いランタイムシステムを使用しています。

    高速化は、レイテンシーの低減と実行品質の向上を意味します。

  3. MetaTrader 5では、膨大な量のデータを扱うことができます。

    ディープな開発に携わる人は、5のディレクトリに保存されるデータの大きさを知っている。フルティックのデータを含め、数十ギガバイトのヒストリカルデータが存在することもある。

    ファイブのフルティックデータの保存と表示は、除外できない機能です。ティックデータがチャートに表示されないから、存在しないのだと勘違いしないようにしましょう。

    ここでは、Otkritieブローカーの実際のアカウントと、長年にわたるすべてのRTS指数先物契約の接着剤であるRTSスプライスシンボル上で実行される簡単なコードです。
    void OnStart()
      {
       MqlTick ticks[];
       int     records=CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,0,1000000000);
    //---
       Print(Symbol()," ticks ",records);   
      }
    
    4億7,200万個を生産しています。
    RTS Splice ticks 472 111 564
    
    そう、1回のクエリで4億7200万ティック。その後、好きなように使ってください。

    データに対する絶対的なコントロールが可能になります。ダニも何十億匹も捕まえられる。ただ、ブローカーを蹴ってヒストリカルデータの面倒を見るのは何とかしてください。それは、彼の直接的な仕事であり、命令なのです。

    2行のコードで、全データが手に入る。MQL5の複雑さを語っているのは誰だ?

    4にそんなものはない。

  4. MetaTrader 5は、ミリ秒単位の非常に精密なマルチシンボルテスターを備えています

    これにより、非常に複雑な戦略のレースが可能になり、戦略が自滅的でないことをより保証することができます。

    あなたが直接コードを書き、テスターが市場のあらゆる種類のモデルを作る複雑さをすべて引き受けます。

    定期的にトレーダーが簡単なテスターを何倍も速く書けると自慢していますが、全てはバーのサイクルを安く走らせるレベルなのです。言うまでもなく、市場環境、商品、必要な証拠金など、あらゆるものが完全に排除されています。

    そして、すべての利益をバランスシート通貨に正確に換算するなど、最も詳細なモデリングを行うだけでなく、浮動株/自己資本変動の履歴とともに、すべての統計情報を収集します。

    これは、MetaTrader 4に搭載されているものとは比べものにならない。

  5. MetaTrader 5のテスターでは、遅延実行会計の驚くべき機能があります。

    一定のタイムラグで取引するモードでは、テスターでは素晴らしくても実際の取引環境では悲惨なことになるスキャルパー戦略のほとんどを完全に除外することができます。



    50-100msの遅延を加えるだけでも、多くの戦略を劇的に悪化させるのに十分です。

    この機能の威力は、テスター内のSleep(ms)でも現実と同じように動作する、市場環境の正確なシミュレーションに基づいています。Expert Advisor自体に遅延を設けることで、相場の展開を並列化し、質的にリアルな実行を可能にしているのです。

    ネットワークの遅延を何度か増やしてみて、ロボットの堅牢性をテストしてみてください。requoteとbounceの品質を同時にチェックします。

    4で持っているのでしょうか?いいえ、もちろんそんなことはありません。

  6. Fiveの64ビットシステムにより、膨大な量のチャートと深い履歴での運用が可能です。

    これは、複雑な分析を行う場合や、複数のシンボルやタイムフレームをスキャンする場合に、非常に重要です。数千ものチャート(シンボル+期間)を保有・操作でき、瞬時に利用できることを確認できます。

    トレーダーの中には、「あまり必要ない」「Fの手薄なデータで十分だ」と言う人もいる。しかし、現実にはデータ分析における利害関係は常に高まっている。

    私の考えでは、5つのデータ量はまだ十分ではありません。データ配信の効率化とスピードアップに常に取り組んでいます。MQL5から膨大なデータを常に手元に置いて、素早く利用できるように、常にパフォーマンスのチューニングを続けています。

  7. マルチスレッドテスター、計算機、クラウドサーバーの使用

    戦略策定の主なコストは、戦略の最適化です。このあたりは、私たちが多く投資している部分です。

    ローカルコアを全て使用したり、ローカルに計算ファームを構築したり、MQL5クラウドネットワークに 接続したりすることができます。これにより、最適化を数十倍から数百倍に高速化することができます。


  8. MetaTrader 5は多数のゲートウェイでスタックと実行が可能

    トレーダーはあまり知りませんが、MetaTrader 5は異なる流動性プロバイダーの強力なアグリゲーションシステムと、異なるプロバイダーへの取引転送の柔軟なシステムを備えています。

    ECN、流動性アグリゲーション、マッチングエンジンにより、最良価格での執行戦略を効率的に実行し、単一口座から複数の市場をサポートすることができます。

  9. 5はデータ容量に制限がない

    膨大な量のヒストリカルチャートデータ(1970年まで限定)と取引履歴をリクエストすることができます。

    口座の取引履歴が100万件以上ある方問題ないです。メモリを増設すればいい。

  10. 全く異なるチャートアーキテクトとオブジェクト管理

    チャートの管理はより効率的になり、ビルドのためにチャートを 完全に無効にすることも可能です。

    グラフィカルなオブジェクトやカンヴァスを使って、思い通りにウィンドウを使うことができます。

  11. 巨大な標準ライブラリ

    MQL5の標準ライブラリは こちらです。R言語、データコレクション、OpenCL、グラフィックスなどのレベルで数学があります。

    ほとんどのトレーダーは、私たちがRパッケージの数百もの数学的・統計的関数を ソースコードに実装していることを知りません。これらは、Rで利用可能なものより何倍も速く(5〜50倍)、多くの複雑な計算を行うことができます。

    MQL5のソースコードで書かれたプログラムは、RのC++実装の速度を最大で50倍まで吹き飛ばすことができます。

  12. カスタムシンボル、カスタムスタック、合成シンボル、簡易データインポート

    ファイブでは、プライススタックを含む独自のシンボルを簡単に作成することができます。MQL5のコードから作成し、MQL5のコードからrltimeに送り込みます。数式を使った合成記号を作ることができる。

    つまり、MetaTrader 5は、他のどんなデータも分析できる独立した分析プラットフォームとして長い間利用されてきたのです。どのMQL5プログラムでもデータフィードを扱うことができます。

  13. その他にも、繰り返し説明されている機能がたくさんあります。



そのことに気づかなければならない。

  • 技術は常に進化しており、旧態依然とした充足感に留まっている人は取り残されてしまいます。

  • そう、技術競争なんです。そして、まずはトレーダーの皆様へ

  • MQL4言語とMQL5言語は、複雑さにおいて全く同じです

    MQL5の複雑さはまったく同じなのに、MQL4がシンプルだという発言を聞くと、本当におかしな話ですよね。mql5の複雑さは全く同じです。

    あるいは、数個の追加パラメータは、プログラマーにとって普遍的な問題であることを認めざるを得ない。いいえ、もちろんそんなことはありません。これは、古いものを踏みつけている人たちのための美しい伝説です。

  • 何度も言いますが、プログラムはプロの開発者が作るものです。

    コードエディタを使用するユーザーは2%未満です。大多数のトレーダーは、コードを分析することなく、マーケットやコドベースから既製品をダウンロードしています。

    シンプルなMQL4の話は例外なく馬鹿馬鹿しい。特にOOPについては、MQL4にずっと搭載されているものなので、まったく圏外です。いまやプログラマーは誰でもOOPをデフォルトで知っているはずです。

    十分に熟練したプログラマーでなければ、納得のいく品質のプログラムを作ることはできない。プログラミングの知識がなくても、受け入れられるコードが書ける」可能性に惑わされないでください。

    私は28年間、日々プログラミングに励み、自分の主張が現実であることを知っています。

  • 当社の技術パートナーやサードパーティの開発者は、MetaTrader 4を維持することに直接的に十分な関心を持っています。

    このプラットフォームは技術的な欠陥が多いため、アドオン/ホールというニッチな分野に鞍替えし、直接的に食い込んでいるのです。

    そう、彼らはブローカーやトレーダーに「MetaTrader 4の方が優れている」と説得するために、かなりのリソースを費やしているのです。彼らのビジネスが崩壊してしまうから です。そして、彼らは独立したトレーダーという名でここに座り、反対運動を展開しているのです。

    私たちは、特に熱心さを失い、彼らがブローカーやトレーダーに何をどのように伝えているかを非常によく理解していますが、これと積極的に戦う能力は持っていません。

    例えば、マイクロソフトが自社のプラットフォームをより安全なものにし、セキュリティ機能を取り上げたとき、アンチウイルスベンダーが10年前から上げてきた反発を思い出してください。正義の怒りとPRだけで

  • 進歩は止められない。

 
Artyom Trishkin:

これについてはどう思われますか?


もちろん、それはすべて良いことなのですが、実際には、残念ながら...なぜか起動から見積もりロード、過去のデータでのMQLプログラムの徹底的なテストまで、すべてが遅く動いてしまうのです。

上記のような利点があるにもかかわらず、考えられないような理由で、私のコンピュータとVPSサーバー では、Mt4よりもすべての動作とテストが速かったのです。そして、FOREXトレードのために特別に最新のゲーミングコンピュータを買うなんて、そんな便利で実用的なことがどこにあるんだ?

 
Artyom Trishkin:

これについてはどう思われますか?


最適化が4倍近く遅くなるのなら、微々たるものだと思いますし、eX5ファイルだけなら、最適化パスを中断するコードを書く可能性もなく、おそらくハングアップしてしまいます

保留中の注文の レンダリングにも同じ問題があり、それをベースにしたストラテジーの場合、カッペになる...。

 
Renat Akhtyamov:

作戦次第

スピードだけでなく、取引開始の指示時の価格も重要です

賢い」証券会社なら、絶対に先回りしてくれるはず...。

 
Makar Anoshin:

もちろん、それはすべて良いことですが、実際には、残念ながら...なぜか起動から見積書の読み込み、過去のデータでのMQLプログラムの徹底的なテストまで、すべての動作が遅くなってしまいます。

上記のメリットとは逆に、考えられないような理由で、MT4の方が全ての動作とテストが速いです(個人的には私のPCとVPSで)。そして、FOREXでの取引のために特別に最新のゲーム用コンピュータを購入するには、まあ、それは便利で実用的な場所ですか?

私はシンプルなノートパソコンで仕事をしています。通常の画質ではどんなゲームも遊べない。しかも、メモリが5GBしかないんです。そして、5つのプロジェクトで 日々の作業をするのに十分な量を確保しています。そして、なぜかあなたの主張するような減速はしないのです。マーケットレビューの全シンボル、各シンボルの全タイムフレームのデータを取得するインジケータを作っても、初回実行時のみ待機するようにしています。秒間、記号と時間枠で欠落した履歴を入れ替える。その後、すべてが滞りなく迅速に動作するようになりました。

そして、秘密を教えてあげると、mql4でプログラムを正しく書き始めると、mql5とほとんど変わらないコード量になるんだ。彼らは、データを手に入れたらすぐに計算に突っ込むという考え方に慣れてしまっていて、「そこに何があるのか」ということを完全にチェックするのを忘れてしまっているのです。また、何か間違いがあった場合、計算に入れるのではなく、そのような結果を処理する必要があります。このようなプログラミング上の不注意から、あらゆるフォーラムで、インジケーターを永久に更新する方法を尋ねられるようになりました。なぜなら、常におかしな表示が出て、手動でチャートを更新するか、インジケーターのコードを再コンパイルするしか、その読み取り値を許容できる形に戻すことができないからです。そんな松葉づえのような要望を見たことがありますか?ダメ?まあ、何度もあるんですけどね。しかし、コードを見た途端、必要なチェックをすべて追加すると、mql4-codeが奇跡的にmql5-codeと同じ大きさになり、強制アップデートでクラッシュやクラッチもなく動き出すのです。

つまり、「ひどいmql5」というのは、プログラマーでない人が、暇つぶしに、ネットワーク上で集めた散在する断片から、自分なりの小さなツールを作ってみた、というのがほとんどなのです。そして、この人たちは、自分たちの作品が静かに大衆に流通するのを妨げられると、すぐに「ああ、すべてが複雑だ」と泣くのである。複雑なことではないんです。もともと4つを正しく書いていた人たちは、その違いに気づかなかった。おまけ機能だけ

だから、私は大賛成です。動作しないコードで空間を埋めることはない。

 
xxz:

問題は、最適化がほぼ4倍遅い場合、あなたが唯一のeX5ファイルを持っている場合、彼らはおそらく、最適化のパスを中断するコードを記述する可能性がなく、ハングアップすることです!!!!。

保留中の注文の レンダリングにも同じ問題があり、それをベースにしたストラテジーの場合、カッペが...。

証明する。比較検証はこちらでお願いします。同じクロスプラットフォームのコードとその最適化結果。同じパラメータで同じ設定をした場合-4での最適化結果、5での最適化結果-すべての最適化パスにかかった時間です。これがなければ、あなたの言葉は単なるアウトラインに過ぎません。

 
Artyom Trishkin:

私はシンプルなノートパソコンで仕事をしています。通常の画質ではどんなゲームも遊べない。しかも、メモリは5GBしかないんです。そして、毎日5でプロジェクトに取り組むには十分な量です。そして、なぜかあなたの主張するような減速はしないのです。マーケットレビューの全シンボル、各シンボルの全タイムフレームのデータを取得するインジケータを作っても、初回実行時のみ待つことになる。秒間、記号と時間枠で欠落した履歴を入れ替える。その後、すべてが滞りなく迅速に動作するようになりました。

そして、秘密を教えてあげると、mql4でプログラムを正しく書き始めると、mql5とほとんど変わらないコード量になるんだ。彼らは、データを手に入れたらすぐに計算に突っ込むという考え方に慣れてしまっていて、「そこに何があるのか」ということを完全にチェックするのを忘れてしまっているのです。また、何か間違いがあっても、計算に入れるのではなく、そのような結果を処理する必要があるのです。このようなプログラミング上の不注意から、あらゆるフォーラムで、インジケーターを永久に更新する方法を尋ねられるようになりました。なぜなら、常におかしな表示が出て、手動でチャートを更新するか、インジケーターのコードを再コンパイルするしか、その読み取り値を許容できる形に戻せないからです。そんな松葉づえのような要望を見たことがありますか?ダメ?まあ、何度もあるんですけどね。しかし、コードを見た途端、必要なチェックをすべて追加すると、mql4-codeが奇跡的にmql5-codeと同じ大きさになり、強制リフレッシュでクラッシュもカクつきもなく動き出すのです。

つまり、「ひどいmql5」というのは、プログラマーでない人が暇つぶしに、ネットワーク上で集めた散逸した断片から自分なりの小さなツールを作った、というのがほとんどなのです。そして、この人たちは、自分たちの作品が静かに大衆に流通するのを妨げられると、すぐに「ああ、すべてが複雑だ」と泣くのである。複雑なことではないんです。もともと4つを正しく書いていた人たちは、その違いに気づかなかった。おまけ機能だけ

だから、私は大賛成です。動作しないコードでスペースを埋めるようなことはしない。

mql4のように言葉の簡潔さの欠如を強調することがメインではないことを理解しました。

DayOfWeek_p=DayOfWeek();

MqlDateTime str1;
TimeToStruct(TimeCurrent(),str1);
DayOfWeek_p=str1.day_of_week;
 
Artyom Trishkin:

...

だから、私は大賛成です。 動作しないコードでスペースを埋めるようなことはありません。


その通り!自分を作り変えろ!プロのプログラマーになれ!プロになれないなら、ここから出て行け!))

ZS.ユーザーの使い勝手を考えてのことです。桁外れです(笑))

 
Реter Konow:


その通り!自分を作り変えて、プロのプログラマーになれ!プロになれないなら、ここから完全に出て行け!(笑)

私に言ってるの?ありがとうございます、面白いですね。

 
Artyom Trishkin:

私に言ってるの?ありがとうございます、面白いですね。

ユーザーに対する位置づけのことです。それはちょっと厳しいですね。自然淘汰なのか? コーダーが弱くてmql5を理解してないとか?- あなたは私たちの仲間ではない、プロフェッショナルだ。持って...仕事して出て行け