記事"ユニバーサルEA:保留注文とサポートヘッジ(その5)"についてのディスカッション

 

新しい記事 ユニバーサルEA:保留注文とサポートヘッジ(その5) はパブリッシュされました:

この記事では、CStrategyの取引エンジンのさらなる詳細を扱います。多くの要望により、取引エンジンに保留中のサポート関数を追加しました。また、MT5の最新バージョンでは、ヘッジオプションを使用してアカウントをサポートしています。同じサポートがCStrategyに追加されています。この記事では、有効なヘッジオプションを持つアカウントのCStrategyと同様に、予約注文のアルゴリズムについて説明します。

ヘッジ上の操作 - また、MT5の新関数を使用します。この関数は、ロングとショートポジションの両方をバー内で開くことができます。しかし、ロングとショートを分離するも ともとのEAにおけるコードを残すことができます。ポジションの数に関係なく、価格が移動平均を上回ったときにすべてのショートポジションが閉じられま す。この場合、アカウントをヘッジするかは問題ではありません。 

まず第1に、「口座開設」で適切なフラグをチェックすることにより、ヘッジオプションが有効か確認する必要があります。

 

図2。ヘッジオプションを持つアカウントを開く 

口座を開設した後、それから取引を進めることができます。まず、CImpulseクラスを記述し、取引アルゴリズムのロジックを実装する必要があります。

作者: Vasiliy Sokolov

削除済み  

Чтобы упростить работу пользователей, в класс CStrategy были введены три метода: Ask(), Bid() и Last()

MqlTickを 1つだけ追加した方が良いのでは?

記事中のビデオはどのブラウザでも表示されません。

削除済み  

著者へのお願いあなたのアプローチは、TCを書くときに非常に便利です。余計なものはすべて目から隠されており、喜ばずにはいられません。その見返りは何ですか?

もし私が古典的な方法とあなたの方法を使ってインパルスTCを書いたとしたら、あなたの方法はテスターでどれくらい遅くなるでしょうか?

あなたのコードがより美しく、簡潔で、便利で、普遍的であることは間違いない。

マルチシンボルTCはすでにサポートしていますか(マルチシンボルOnTickはどこにありますか)?

削除済み  
EventChartPBarChanged.mqhを見ました。なぜconstが無視されるのでしょうか?
削除済み  
//|CStrategy型のストラテジーを管理するためのコンティナークラス

誤字だ。

削除済み  

CStrategyList::OnChartEventだけを定義して、ネイティブのOnChartEventで それだけを呼び出すのは近視眼的だと思った。

私なら、仮想OnChartEventを持つ基底クラスを作るだろう。そして、CStrategyList、CStrategy、その他のクラス(ちなみに、なぜかインジケータは何も継承していない)は、ベース・クラスから派生する。そして、ネイティブのOnChartEventでは、作成されたすべての仮想OnChartEventをループで一度呼び出す必要があります。

開発者が書いたライブラリを使っているようですね。例えば配列とか。それらは普通に書かれていますか?

ソースコードのいたるところにこのような記述があります。

#include <Strategy\Message.mqh>

これはStrategyフォルダがないことを前提にしています。なぜincludnicsでカンマを使わないのですか?また、なぜ

#include <Sokolov\Strategy\Message.mqh>
 
Anton Zverev:

CStrategyList::OnChartEventだけを定義して、ネイティブのOnChartEventでそれだけを呼び出すのは近視眼的だと思った。

私なら、仮想OnChartEventを持つ基底クラスを作るだろう。そして、CStrategyList、CStrategy、その他のクラス(ちなみに、なぜかインジケータは何も継承していない)は、ベース・クラスから派生する。そしてネイティブのOnChartEventでは、作成された全ての仮想OnChartEventのループの中で1回呼び出しを書く。

そう、この方が正しいだろう。今、OnChartEvent イベントは専門家にとって無視されているようなものだ。次のバージョンで適切な変更を加えます。

アントン・ズベレフ

開発者が書いたライブラリを使っているようですね。例えば、Arrays。それらはよく書かれていますか?

素晴らしいですし、非常に最適化されています。長年の使用で、ライブラリに含まれるすべてのアルゴリズムが研究され、微調整されています。だからお勧めなんだ。

アントン・ズベレフ
ソースコードのいたるところにこのような記述がありますね。

Strategyフォルダがないことを前提にしています。なぜincludnicsでカンマを使わないのですか?そして、なぜ

Strategyフォルダの中にあるソースは、ローカルでお互いを参照しているだけです。Expert Advisor ファイルと Expert Advisor mq5 モジュール自体はグローバルにエンジンを参照しています。

 
Anton Zverev:
EventChartPBarChanged.mqhを見ました。なぜconstが必要なところで無視されるのか?
constメソッドへの偏見。私のプログラマーとしての形成はC#と結びついていた。そしてそこでは、修飾子によって課される制限が有効ではないからだ。
 
Anton Zverev:

著者へのお願いあなたのアプローチは、TCを書くときに非常に便利です。余計なものはすべて目から隠されており、喜ばずにはいられません。その見返りは何ですか?

もし私が古典的な方法とあなたの方法を使ってインパルスTCを書いたとしたら、あなたの方法はテスターでどれくらい遅くなるでしょうか?

あなたのコードがより美しく、簡潔で、便利で、普遍的であることは間違いない。

マルチシンボルTCをすでにサポートしていますか(マルチシンボルOnTickはどこにありますか)?

ストラテジーテスターの 主な時間は、そのインフラストラクチャー(バーのスクロール、取引環境のエミュレーションなど)の作業に費やされます。

一方、プロファイリングにより、CSTartegy の主なリソース消費メソッドは、BuyInit、SellInit、BuySupport、SellSupport メソッド、すなわち Expert Advisor のロジックそのものであることがわかりました。他のすべてのストラッピングは、最適な方法でフラットコードにうまくコンパイルされます。これが高レベルのOOPプログラミングが正当化される理由です。

多くのルールと重いインフラストラクチャを持つ多かれ少なかれ複雑なExpert Advisorでは、最初のフラットな形式(関数やOOPなし)でプログラミングすると、プログラマーのエラーは避けられず、その結果、そのようなExpert AdvisorのパフォーマンスはOOPを使用した場合よりもさらに低下することに注意してください。アセンブラの時代は終わった。コンパイラーは、最適化のある分野ではとっくに人間に勝っている。最小限のインターフェースと優れた管理性を備えた、当初は有能でスケーラブルなアーキテクチャを定義するのは人間に任されている。

 
Anton Zverev:

MqlTickを 1つだけ追加した方が良いのでは?

記事中のビデオはどのブラウザでも見えません。

ところで、面白いアイデアだ。なぜか思いつかなかった。

ビデオには問題がある。新しいバージョンのサイトではフラッシュを拒否した。今はyutebでしかビデオを見ることができない。ビデオを公開するには時間がかかりますが、すぐに修正します。

削除済み  
Vasiliy Sokolov:

Strategyフォルダの中にあるソースは、ローカルでお互いを参照しています。何か見落としがあったのかもしれませんが、ローカル参照があるはずです。Expert Advisor ファイルと Expert Advisor mq5 モジュール自体は、グローバルにエンジンを参照しています。

目を通しました。MoneyManagment.mqhを見てください。

mq5からのグローバル参照 - 必要性は完全に理解しています。しかし、あなたはソリューションでInclude/Stategyフォルダを予約しています。私はこのフォルダを自分のニーズに合わせて使っています。その中に他の人のmqhを見たくありません。すべてのインフラをIncludeSokolov/Strategy、IncludeSokolov/Strategy、IncludeSokolov/Panelなどに移動すれば、論理的でしょう。