ヴァシリー、私は正直、もっといいものを期待していた。この作品では、読者を困惑させることに成功している。
しかし、もっとシンプルに「MT5ターミナルでMQL4ロジックを使ってExpert Advisorをトレードする方法」と呼ぶこともできたはずだ。そして、これこそ注目すべき点である。
この基本に焦点を当てれば、もっとコンパクトでわかりやすいものになったはずです。
というわけで、まずはダイナミック・リストとその応用例。次に仮想オーダーのテーブル。
MQL4のすべてのロジックは、MQL5では2つのメソッドの 機能を使用して解決されます!
1.端末の履歴からストップロスとテイクプロフィットチケットの復元
2.それらのいずれかがトリガーされたとき、またはメイン・オダーが削除されたときに、それらのさらなる制御。
そして、これら2つのGENERAL 関数を説明した後、動的配列と「models-mql4-experts」の構築に移る。
保留注文は成行注文より複雑ではないが、実際の損切り注文と利益確定注文の発注を遅らせるだけである。
どういうわけか、読者には無駄なファイル<Time.mqh>が 読み込まれ、その機能はあまり美しくない。
そして、注文カウント、ロットコントロールのための関数。
どうやら、専門家と仕事をするための知識をすべて記事の中に詰め込もうとして、記事の目的そのものをこのような記事の中に埋没させてしまったようだ。
さて、そして与えられたモデルについてですが、ストップロスやテイクプロフィットをどのように注文に使うのか理解できません。IACDでもボリンジャーでも、私はストップの使用を見つけることができませんでした。
一般的に、私は記事を読んで楽しめませんでした。明るいアイデアを埋葬する不必要な重みがたくさんある。

- www.mql5.com
そう、口座履歴から(あるいは自分のファイルから)取引リストを復元しなければ、それはテスターのおもちゃであることが判明した。
to:Udmurt2
私の記事のどこにMQL4エキスパートのロジックがあると思いますか?あなたが書かれたレビューからは、この資料に対する完全な理解不足という印象を受けます。多くの点で、それはもちろん私の責任であり、おそらく本当にもっとうまく構成すべきだったのでしょう。
--------------------------------
記事の構成を改善するための具体的な提案はありますか?
同感です。多くのことが「舞台裏」に残されていました。このバージョンは1.0だと考えてください。以下が導入予定です:
1.データファイルに基づくデータのシリアライズ;
2.注文履歴によるモデル取引履歴の再構築;
3.未決済注文に基づくモデルの完全な記述 4;
4. 相互にカウントされる複雑な注文システムを使った取引モデルの記述;
5.各モデルの効率の動的制御(モデル・リストから非効率なモデルを削除)。
6.取引モデルからの外部機能の排除(資本管理機能など)。
7.マルチスレッドのサポート(MT5内部並列化のおかげで、現在は部分的に使用されています)。
...
おわかりのように、まだ検討する必要のある材料は非常に包括的であるため、別の記事、いわば後編を書く時期に来ている。この記事はゴムの記事ではない。いずれにせよ、私が自分に課した課題は解決したと思っている。そして、ここでUdmurt2は特に間違っている。提案されたアプローチの基本はダイナミック・リストであり、(なぜか彼にはそう見えたようだが)未決注文とはまったく連動していない。だからこそ、これほど注目されているのだ。大体、未決注文を使わなくても解決できない戦略はないだろう。しかし、私が提案したアプローチは、同じストップとテイクアウトをシミュレートするペンディング・オーダーの使用に何の制限も課さない。しかし、この場合、追加のチェックとプログラム・サブシステムが必要であり、特に、Trade()イベントを記述する構造があれば非常に便利である。そして、そのような構造は存在しませんが(MQL5が発展途上であるため)、存在しない可能性のために制御システムを書くのは完全な狂気の沙汰だと考えています。
ところで、最も単純なケースでは、数時間でファイルからトレード・リストアを書くことができます。というのも、私はこの解決策をただ急ごしらえで書いたものではなく、よく考えられたものにしたいと考えているからだ。いずれにせよ、後編で解決すべき興味深い問題のひとつになるだろう。
MQL5は現在開発中である。MQL5だけでなく、提案されたアプローチも時間とともに発展し、機会を得ていくだろう。人によっては、現段階ではテスターのおもちゃのように見えるかもしれない。この場合、MetaTrader 5もデモ口座用のおもちゃだと言える。しかし、MT5がデファクトスタンダードとなり、私が提案したアプローチが多通貨/多タイムフレーム/多システム取引の強力なソリューションとなる日はそう遠くないでしょう。今、重要なことは、基本を理解することです。この基本とは、私がこの記事で説明したものである。この基本を理解すれば、ペンディング・オーダーやファイルにトレードを記憶させることの利点をすべて使って、独自のトレーディング・モデルを簡単に書くことができる。

- www.mql5.com
私の記事のどこにMQL4エキスパートのロジックがあると思いますか?
では、私たちが解決しなければならない主な課題は以下の通りです:
- エキスパート・アドバイザーは、一度に複数の取引システムに基づいて取引する必要があります。同時に、1つの取引システムでも複数の取引システムでも同じように簡単に取引できなければなりません;
- Expert Advisorに含まれるすべての取引システムは、互いに競合してはならない。各取引システムは、集約されたポジションへの寄与分のみを処理し、その注文のみを処理しなければならない;
- どの取引システムも、商品の1つのタイムフレーム上でも、すべてのタイムフレーム上でも、一度に等しく取引しやすいものでなければならない。
- 集約されたシステムのいずれもが、1つの取引商品上でも、一度にすべての利用可能な商品上でも、等しく取引しやすくなければならない。
これらすべての点によって、MT4ターミナルのロジックは明確 かつ絶対的に 特定されます。
1. Magikとネットポジションがないおかげで、複数のExpert Advisorを同時に導くことができる。
2. 同じMagikとネットポジションがないおかげで、Expert同士が衝突しない。
3.どのようなタイムフレームでも取引可能
4.あらゆる商品で取引可能。
質問:MT4ターミナルにない新しい機能は何ですか?
MQL4をベースに推論を構築し、その実装を開発することができると上に書きました。
私なら、magik-ticketによるストップの計算から、取引Expert Advisor-mt4
のモデル作成、そして複数のExpert Advisorをコントロールする方法へと、段階を追って構築します。(リスト/非リストはその時の気分で)
。
このバージョンを1.0とする。
2.注文履歴によるモデル取引の履歴の再構築;
3.保留注文に基づくモデルの完全な説明;
4. 相互にカウントされる複雑な注文システムを使った取引モデルの説明;
2-4は、この記事ですぐに解決すべき内容である。それ以外はすべて邪道であり、プログラマーの裁量に任せるか、第2回の記事で解決すべき内容である。
ダイナミックリストは、その制御と会計の方法の1つに過ぎません。
このような柔軟性と制御性を持つ他のアプローチを教えてください。
MT4の専門家であればどなたでも :)))
ワシーリー、君は働きすぎだ。時々、初心に戻ってすべてをやり直す必要があります。リニアデバイスによるMT4ターミナル操作のマザーロジックに関する基本クラスを作り直すことです。そうすれば、多くのことが明確になるでしょう。
そうでなければ、私は2番目の記事を書かなければならないでしょう :)
そうだね。)
しかし、MTは現在最終調整中である。そして、この記事で提案されているコードは、本番を想定して即座に書かれたものかもしれない。
ところで、チャンピオンシップEAはどうですか?リブートで苦しみましたか?
苦しんではいるが、大きくはない。もちろん、初期化/非初期化イベントハンドラを内蔵していた。 しかし、1つ考慮していなかったことがある。それは、初期化と非初期化がオフの時間帯、たとえば土曜日に行われる可能性があることだ。これはほんの数行のコードで解決できるのだが、このような陰湿な組み合わせに気づかなかったため(まあ、すべてを考慮することはできないのだが)、どこかで多くのことが失われてしまった。
近いうちに簡単なデータ・シリアライゼーションを書いて、記事に挿入しようと思う(原則2日かかる)。それを使えば、リアルタイムの口座(デモとリアル)で作業するための本格的な製品になるでしょう。つまり、これはテスターのためのおもちゃだということですね。実際の口座で確実に使用するためのメンテナンス・コードは5-6%しか欠けていません。
抽象的な取引モデルがあるとしましょう。それは保留中の注文(ストップ、テイクアウト、エントリー・ポイント)のみを使用する。ブローカーの目から見えないように、すべてのエントリーポイントをバーチャルにする。つ目のオプションは、信頼性を高めるために、ストップとエントリーポイントをすべて保留注文にすることです。各モデルに2種類の仮想化(ペンディングと仮想)があるのは興味深い。つまり、次のようになる。switchvirtual_orders=true; - すると、すべての注文はブローカーの目から隠された仮想注文になる。一番いいのは、モデルから特別なサポートが必要なく、すべてがエンジンレベルで実装されることだ。モデルは、エントリー・ポイントの注文タイプを指定するだけでよく、ストップとテイクのタイプは、virtual_ordersスイッチに応じて、独立して選択されます。

- www.mql5.com
to:ウドムルト
私が何をすべきで、何をすべきでなかったかを私に言わないでほしい。私はあなたの利益に奉仕しているわけでも、あなたのために働いているわけでもありません。
あなたは自分の発言の本質すら完全に理解していないのですから、私たちの会話はナンセンスだと思っています。あなたが本当にMQL4を理解し、例えば500種類のトレーディングモデルを同時に取引するトレーディングエキスパートを書いていることを私に証明してください。例として、5つのストラテジー、20の商品、5つのタイムフレームを取り上げましょう。あなたのExpert Advisorが、少なくともテスターの中で、それらに対して明らかに機能するようになれば、その時初めて、あなたの言っている過熱したナンセンスは、本当のナンセンスではなく、知的な人の有益な発言であると認めるでしょう。このエキスパートのソースコードなしで私とコミュニケーションしようとしないでください。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 トレーディングモデルに基づくマルチエキスパートアドバイザーの作成 はパブリッシュされました:
MQL5にてオブジェクト指向のアプローチを使用すると、マルチ通貨・マルチシステム・マルチタイムフレームのエキスパートアドバイザーの作成を大幅に単純化することができます。全てのタイムフレーム、全ての金融商品において、いくつものトレーディング戦略に基づいた取引をあなたのEAが行うことを想像してみてください。さらに、EAはテスターにて簡単にテストすることができ、すべての戦略において、稼働する資産管理システムがいくつもあります。
作者: Vasiliy Sokolov