Каждый экспертописатель, независимо от уровня своей подготовки, ежедневно сталкивается с одними и теми же торговыми задачами и алгоритмическими проблемами, которые так или иначе приходится решать для организации надежного торгового процесса. Данная статья описывает возможности торгового движка CStrategy, способного взять на себя решение этих задач и предоставить пользователю удобные механизмы для описания своей торговой идеи.
StrategyGUIDはulong型の識別子で、StrategyはCObjectを継承したクラスに基づいて作成されたストラテジーである。
したがって、CDictionary StrategyBook(アクティブなストラテジーのブック)を含む必要な変数を宣言し、必要なストラテジーStrategy01、Strategy02を作成し、EAのOnInit()関数で、一意のGUIDの割り当てを含む様々なパラメーターを開始する。OnInit()の一番最後に、ストラテジーをStrategyBookに保存することにしました。
StrategyBook.AddObject(Strategy01.strGUID,Strategy01);
StrategyBook.AddObject(Strategy02.strGUID,Strategy02);
そして、両方の行で "StrategyXX - parameter conversion not allowed "というエラーが出ました。
私のC#での経験に基づけば、すべてが正しく行われています。しかし、MQL5ではこのエラーが出ます。
何が関係しているのでしょうか?
StrategyGUIDはulong型の識別子で、StrategyはCObjectを継承したクラスに基づいて作成されたストラテジーである。
したがって、CDictionary StrategyBook(アクティブなストラテジーのブック)を含む必要な変数を宣言し、必要なストラテジーStrategy01、Strategy02を作成し、EAのOnInit()関数で、一意のGUIDの割り当てを含む様々なパラメーターを開始する。OnInit()の一番最後に、ストラテジーをStrategyBookに保存することにしました。
StrategyBook.AddObject(Strategy01.strGUID,Strategy01);
StrategyBook.AddObject(Strategy02.strGUID,Strategy02);
そして、両方の行で "StrategyXX - parameter conversion not allowed "というエラーが出ました。
私のC#での経験に基づけば、すべてが正しく行われています。しかし、MQL5ではこのエラーが出ます。
何が関係しているのでしょうか?
いくつかの理由が考えられます。最も考えられるのは、型の非互換性か、ポインターの扱い方が間違っていることです。また、テンプレート・メソッドの特殊性も排除できません(テンプレート・メソッドにも独自のニュアンスがあります)。
一般的には、既製の取引エンジンを使用する方が良いでしょう。https://www.mql5.com/ja/articles/2166、多くの時間と神経を節約できます。
ああ、結局そうすることにしたんだ。
新しい記事MQL5 Cookbook:クイック・データ・アクセスのための連想配列または辞書の実装が 公開されました:
著者Vasiliy Sokolov
ご苦労様です。しかし、どのコード例も動作させることができないようです。
Dictionary dict; はCDictionary dict でなければならないようです;
簡単な動作例はどうでしょうか?
新しいMT4(Build 1080、2017年5月12日)に関して、コンパイル中にこれらのエラーが発生し、実行できません:
'm_array' - オブジェクトを含む構造体は使用できません Dictionary.mqh 303 25
こんにちは、
以前他の方がおっしゃったように、コンパイル可能な例はありません。
ロシア語のコメントのファイルだけです。
ヴァシリイのライブラリーをうまく使わせてもらっている。本当に助かっている!
私もコンパイラのエラーがいくつかあったのを覚えていて、それを修正することができました。ただ、どのエラーで、何をしたのかはよくわかりません。
また、私はMQL5のコードの書式に非常に悩まされていて、いつもすべてをモダンなC++の書式(適切なインデント、不要な括弧の回避、コメントの乱雑さの排除など)に直しているので、コードの本当の変更点が何であったかを言うことはできません。覚えているのは、変更が小さかったということだけだ。
適切な書式のライブラリを使いたい場合は、ここにある:
(タブを使用しているので、書式が崩れているように見えますが、MetaEditorでは崩れていません!)
要素を削除して最後の要素に移動しようとしたときにバグを見つけたようだ:
CDictionary.mqhでエラーが出る:
'Dictionary.mqh'の無効なポインタ アクセス (463,9)
どなたかこれを確認できますか?修正方法があれば教えてください。