著者へのお願いあなたのアプローチは、TCを書くときに非常に便利です。余計なものはすべて目から隠されており、喜ばずにはいられません。その見返りは何ですか?
もし私が古典的な方法とあなたの方法を使ってインパルスTCを書いたとしたら、あなたの方法はテスターでどれくらい遅くなるでしょうか?
あなたのコードがより美しく、簡潔で、便利で、普遍的であることは間違いない。
マルチシンボルTCはすでにサポートしていますか(マルチシンボルOnTickはどこにありますか)?
//|CStrategy型のストラテジーを管理するためのコンティナークラス。誤字だ。
CStrategyList::OnChartEventだけを定義して、ネイティブのOnChartEventで それだけを呼び出すのは近視眼的だと思った。
私なら、仮想OnChartEventを持つ基底クラスを作るだろう。そして、CStrategyList、CStrategy、その他のクラス(ちなみに、なぜかインジケータは何も継承していない)は、ベース・クラスから派生する。そして、ネイティブのOnChartEventでは、作成されたすべての仮想OnChartEventをループで一度呼び出す必要があります。
開発者が書いたライブラリを使っているようですね。例えば配列とか。それらは普通に書かれていますか?
ソースコードのいたるところにこのような記述があります。
#include <Strategy\Message.mqh>これはStrategyフォルダがないことを前提にしています。なぜincludnicsでカンマを使わないのですか?また、なぜ
#include <Sokolov\Strategy\Message.mqh>
CStrategyList::OnChartEventだけを定義して、ネイティブのOnChartEventでそれだけを呼び出すのは近視眼的だと思った。
私なら、仮想OnChartEventを持つ基底クラスを作るだろう。そして、CStrategyList、CStrategy、その他のクラス(ちなみに、なぜかインジケータは何も継承していない)は、ベース・クラスから派生する。そしてネイティブのOnChartEventでは、作成された全ての仮想OnChartEventのループの中で1回呼び出しを書く。
そう、この方が正しいだろう。今、OnChartEvent イベントは専門家にとって無視されているようなものだ。次のバージョンで適切な変更を加えます。
開発者が書いたライブラリを使っているようですね。例えば、Arrays。それらはよく書かれていますか?
素晴らしいですし、非常に最適化されています。長年の使用で、ライブラリに含まれるすべてのアルゴリズムが研究され、微調整されています。だからお勧めなんだ。
ソースコードのいたるところにこのような記述がありますね。
Strategyフォルダがないことを前提にしています。なぜincludnicsでカンマを使わないのですか?そして、なぜ
Strategyフォルダの中にあるソースは、ローカルでお互いを参照しているだけです。Expert Advisor ファイルと Expert Advisor mq5 モジュール自体はグローバルにエンジンを参照しています。
EventChartPBarChanged.mqhを見ました。なぜconstが必要なところで無視されるのか?
著者へのお願いあなたのアプローチは、TCを書くときに非常に便利です。余計なものはすべて目から隠されており、喜ばずにはいられません。その見返りは何ですか?
もし私が古典的な方法とあなたの方法を使ってインパルスTCを書いたとしたら、あなたの方法はテスターでどれくらい遅くなるでしょうか?
あなたのコードがより美しく、簡潔で、便利で、普遍的であることは間違いない。
マルチシンボルTCをすでにサポートしていますか(マルチシンボルOnTickはどこにありますか)?
ストラテジーテスターの 主な時間は、そのインフラストラクチャー(バーのスクロール、取引環境のエミュレーションなど)の作業に費やされます。
一方、プロファイリングにより、CSTartegy の主なリソース消費メソッドは、BuyInit、SellInit、BuySupport、SellSupport メソッド、すなわち Expert Advisor のロジックそのものであることがわかりました。他のすべてのストラッピングは、最適な方法でフラットコードにうまくコンパイルされます。これが高レベルのOOPプログラミングが正当化される理由です。
多くのルールと重いインフラストラクチャを持つ多かれ少なかれ複雑なExpert Advisorでは、最初のフラットな形式(関数やOOPなし)でプログラミングすると、プログラマーのエラーは避けられず、その結果、そのようなExpert AdvisorのパフォーマンスはOOPを使用した場合よりもさらに低下することに注意してください。アセンブラの時代は終わった。コンパイラーは、最適化のある分野ではとっくに人間に勝っている。最小限のインターフェースと優れた管理性を備えた、当初は有能でスケーラブルなアーキテクチャを定義するのは人間に任されている。
。
Strategyフォルダの中にあるソースは、ローカルでお互いを参照しています。何か見落としがあったのかもしれませんが、ローカル参照があるはずです。Expert Advisor ファイルと Expert Advisor mq5 モジュール自体は、グローバルにエンジンを参照しています。
目を通しました。MoneyManagment.mqhを見てください。
mq5からのグローバル参照 - 必要性は完全に理解しています。しかし、あなたはソリューションでInclude/Stategyフォルダを予約しています。私はこのフォルダを自分のニーズに合わせて使っています。その中に他の人のmqhを見たくありません。すべてのインフラをIncludeSokolov/Strategy、IncludeSokolov/Strategy、IncludeSokolov/Panelなどに移動すれば、論理的でしょう。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 ユニバーサルEA:保留注文とサポートヘッジ(その5) はパブリッシュされました:
この記事では、CStrategyの取引エンジンのさらなる詳細を扱います。多くの要望により、取引エンジンに保留中のサポート関数を追加しました。また、MT5の最新バージョンでは、ヘッジオプションを使用してアカウントをサポートしています。同じサポートがCStrategyに追加されています。この記事では、有効なヘッジオプションを持つアカウントのCStrategyと同様に、予約注文のアルゴリズムについて説明します。
ヘッジ上の操作 - また、MT5の新関数を使用します。この関数は、ロングとショートポジションの両方をバー内で開くことができます。しかし、ロングとショートを分離するも ともとのEAにおけるコードを残すことができます。ポジションの数に関係なく、価格が移動平均を上回ったときにすべてのショートポジションが閉じられま す。この場合、アカウントをヘッジするかは問題ではありません。
まず第1に、「口座開設」で適切なフラグをチェックすることにより、ヘッジオプションが有効か確認する必要があります。
図2。ヘッジオプションを持つアカウントを開く
口座を開設した後、それから取引を進めることができます。まず、CImpulseクラスを記述し、取引アルゴリズムのロジックを実装する必要があります。
作者: Vasiliy Sokolov