AutoGrafシリーズ4-MQL機能。 - ページ 34

 

includeでファイルを取り込むと、extern変数を宣言でき、パラメータ渡しが 不要になります。変数名や関数名との混同を避けるため、ストラテジーごとに名前の接頭辞を使い分ける必要があります。

邪魔して申し訳ありませんが、このような単純な質問に対するこのような長い苦悩は、無関心なままではありません:)

 
Integer >> :

includeでファイルを取り込むと、extern変数を宣言でき、パラメータ渡しが不要になります。変数名や関数名との混同を避けるため、ストラテジーごとに名前の接頭辞を使い分ける必要があります。

申し訳ありませんが、このような素朴な疑問に対する長い苦悩は、あなたを無関心にさせません:)

>> ありがとうございました。>> 試してみます。

 
Integer писал(а)>>

includeでファイルを取り込むと、extern変数を宣言でき、パラメータ渡しが不要になります。変数名や関数名との混同を避けるため、ストラテジーごとに名前の接頭辞を使い分ける必要があります。

お邪魔してすみません、でもこんな簡単な質問でこんなに長く悩むなんて、無関心ではいられませんよ:)

コンパイル済みのEA(ex4)に関数をインポートする話です。
 
SK. писал(а)>>
コンパイル済みのEA(ex4)に関数をインポートする話です。

すみません、いつものことなんですが......。コンパイルされたライブラリから インポートするのはどうでしょうか?

-

メインモジュールがコンパイルされていれば、strategyでinculcatorを使っても問題なく、全てコンパイルされます。メインモジュールがオープンソースでも、strategyがコンパイルされていれば、オープンソースのinculdnikという形でアダプターを作ることができます。

 

親愛なる皆様へ

以下のような接続チェーン図を考えています。



関数AG_ATは、参加するストラテジーを選択するスイッチである。

 

レディース&ジェントルマンズ!

質問にお答えください。

AT関数がスイッチではなく、ストラテジーコードを含んでいる場合、(違いはないと理解していますが)AT関数が取引そのものではなく、それに命令(端末を参照するなど)を与えていることを、アプリケーションはどのように区別しているのでしょうか?

説明から応用まで。

Исполнение функции АТ связано с двумя основными возможностями.

1つ目は、AT機能が単独で取引できること、つまり取引注文を生成してサーバーに送ることができることです。同時に、この関数はアプリケーションから受け取ったデータを処理することはできません(またはそのようなデータの一部を処理することもできません)が、注文を処理するためのターミナルの呼び出し、現在の相場の取得、取引条件の計算、グラフィックオブジェクトの管理など、MQL 4のすべての機能を使って独自の計算を実行することができます。

2つ目の特徴は、「オートグラフ 4」のアプリケーションに直結していることです。特定の注文や価格表に対して、あらかじめ設定された必要なツールのインストール、アプリケーションの一般設定の変更、ツールの削除、ユーザーへのメッセージ表示など(出力パラメータ)をAutoGraf 4アプリケーションに指示することができる機能です。(出力パラメータ)。

AT関数が取引注文を生成し、アプリケーションに勘定する行がない場合、自ら取引します。この場合、アプリケーションは、会計や処理を行わず、単に注文を端末にブロードキャストするだけである。

あれば、リンクで渡されたATファンクションのパラメータで、アプリケーションを経由して注文が行われる。

これは正しい理解でしょうか?

 
Integer писал(а)>>

すみません、そういう意味じゃないんです、いつものことですが...。コンパイルされたライブラリから インポートするのはどうでしょうか?

-

メインモジュールがコンパイルされていれば、strategyでinculcatorを使っても問題なく、全てコンパイルされます。メインモジュールがオープンソースでも、strategyがコンパイルされていれば、オープンソースのインカルケータという形でアダプタを作ることができます。

謝ることは何もない、議論は的を得ている。

--

ちょっと用語解説。輸出と輸入という2つの鏡のような概念があります。自国の領土との関係で使用される。

輸出は、国境を越えた私たちからのものです。例えば、ロシアからヨーロッパへのガス輸出などです。

輸入は、海外から国境を越えて入ってくるものです。例えば、アフリカからシベリアに砂を輸入する。

この場合は輸入品の話です。ここでの領域はエキスパートAG_exp.ex4です。これは、コンパイルされたファイルとしてユーザーに提供されるAutoGraf 4アプリケーションのベースとなるものです。Expert Advisor のソースコードは提供されないため(もちろん、無料とはいえ商業的に配布されるアプリケーションであるため)、inclide(ユーザープログラマーによる)経由で Expert Advisor にモジュールを追加することはできない。

--

課題は、ユーザーがAutoGraf 4アプリケーションに、MQL4で書かれた独自の取引アルゴリズムを添付し、ストラテジーの.ex4ファイルとして実行できるようにすることでした。この問題を解決するために、Expert Advisor AG_exp.ex4 には、Expert Advisor に自動売買機能 AG_AT をインポートするコードが含まれており、 .ex4 および mq4 ファイルとして提供されています。さらに、コードをどのように配置するかは、ユーザー自身が決めることができます。2つの選択肢のうち、どちらかが最も便利です。

1.AG_AT()関数に直接自分のコードを書き、同名のAG_AT.mq4ファイルをコンパイルするには、AG_AT.eq4 を取得します。

Пример:http://autograf.dp.ua/Pages/2/26/267/26711/26711_1.htm, примеры 1-15:http://autograf.dp.ua/Pages/2/26/267/2679/2679_1.htm

2.新しい関数のコードを別のストラテジーファイル、例えばファイルMy_Strategy.mq4内のMy_Strategy()に記述してください。AG_AT()に、ファイルMy_Strategy.eq4(現代版)から関数My_Strategy()をインポートするように記述します。Примерыhttp://autograf.dp.ua/Pages/2/26/267/26712/26712_1.htm, http://autograf.dp.ua/Pages/2/26/267/26712/26712_2.htm

.

いずれのバージョンも、外部変数を書き込んでユーザーが利用できるようにすることはできません。外部変数の指定は、設計段階で AG_exp.ex4 に書き込むしかないため、それを行っています。変数の値は、AG_AT() を通して、Instrument 配列でユーザー My_Strategy() に転送されます。これは、最新版のオートグラフ4で採用された技術で、問題なく動作します。

--

このことは、ユーザーにとってどのような意味を持つのでしょうか。つまり、どんなユーザーでも独自のストラテジーを作成し、AutoGraf 4の環境で実行することができるのです。同時に、彼自身の戦略が機能し、AutoGraf 4のすべての機能を利用することができます。特に、プルアップ、オーバーターン、サウンドなどのオートグラフ4(!)ツールは、ストラテジーから制御することが可能です。

プロのプログラマー向けに、カスタマイズ可能なパスワード変数をストラテジーファイルに渡す機能を提供します。つまり、プログラマーはAutoGraf 4用のストラテジーを書き、商業ベースで(例えば、特定のアカウントに対してのみ)配布することができるのです。

 
LeonidSB писал(а)>>

親愛なる皆様へ

以下のような接続チェーン図を考えています。

AG_AT機能は、参加するストラテジーを選択するためのスイッチです。

はい、正解です。

 
LeonidSB писал(а)>>

レディース&ジェントルマンズ!

質問にお答えください。

AT関数がスイッチではなく、ストラテジーコードが入っている場合、(違いはないと理解していますが)アプリケーションは、AT関数が自分自身の取引ではなく、自分への指示(端末の参照など)であることをどのように区別しているのでしょうか。

ストラテジーはアプリケーションに渡すことができます。

- 共通調整パラメータの値(SL、TP、Lotsなど)。

- インストールまたは削除する機器のパラメータ

ストラテジーは、オープンオーダーとクローズオーダーをアプリケーションに送信せず(これはMQL 5の機能に基づいてAG 5で計画されています)、現在(AG 4では)これは厳密には必要ではありません。ストラテジーは、ユーザー独自のアルゴリズムで注文をオープン/クローズすることが可能であり、またそうする必要があります。

AT機能で売買注文が発生し、アプリケーションに登録するコード行がない場合は、ストラテジーが勝手に売買を行います。この場合、アプリケーションは、会計や処理を行わず、単に注文を端末にブロードキャストするだけである。

ある場合は、リンク経由で渡されたATファンクションのパラメータで、アプリケーションを経由して注文が行われる。

私の理解は正しいのでしょうか?

何をもって「アプリケーションに計上されるコード行」と呼ぶのか、あまり明確ではありませんね。

アプリケーションは、コントロールバックを受け取るたびに、オーダーの勘定をします。大きなサイクルの各反復で、再計算された注文の配列がAG_ATに渡され、次にストラテジーに渡される。注文数に基づいて、ストラテジーは適切なコントロールアクションを計算することができます。ストラテジーアプリケーションをもっと頻繁に更新して、ストラテジーに常に新鮮な注文記帳ができるようにすべきです。

プログラム(アプリケーションまたはAG_AT、ストラテジー)のどの部分からの取引注文も、MT4ターミナルに直接送られ、サーバーに直接送信されます。サーバでの注文実行後、同様に制御は取引注文送信ポイントに戻る。注文がサーバーで処理されている間、すべてが沈黙し、応答を待っている - 何も起こらない(私が間違っていなければ、MT5ではこの技術は変更されます - 我々は待つことはありません、我々は動作します:)。

 
ありがとうございました。