ライブラリ: エキスパート - ページ 9

 
vek_y4icb:
クールなライブラリですね!このような方法でEAオープンを実装するとは思いつきませんでした。DLLを使わずにmqlを使ってアクティブチャートを定義する方法を教えてください。winapiを使ったことがありますが、あまりに面倒でした:

もしかしたら、このケースをmqlで、あるいは少なくともdllを使って、よりシンプルに実装する方法をご存知かもしれません。

ターミナルの子ウィンドウが最大化されている場合、それは1つのウィンドウです(他のウィンドウは最大化されているとはみなされません)。このため、ChartFirst/ChartNextループでChartGetInteger(id, CHART_IS_MAXIMIZED, 0, value)をチェックすることができます。

 
Stanislav Korotky:

ターミナル内の子ウィンドウが最大化されている場合、それは1つです(他のウィンドウは最大化されているとは見なされません)。このため、ChartFirst/ChartNextループでChartGetInteger(id, CHART_IS_MAXIMIZED, 0, value)をチェックし、値が1である場合、これがアクティブ・ウィンドウであることを確認できます。

これは私が必要としているものとは少し違います。でも、とにかくありがとう

 
fxsaber:

ちょっとしたフライハックは、OBJ_CHARTオブジェクトでEA/スクリプトを実行することです。

そのため、起動したExpert Advisorはハング・デッドし、何も実行されない。しかしスクリプトは完全に動作する。これでいくつかの可能性が開けます。

例えば、すでにExpert Advisorが稼働しているチャートにインジケーターのOrder-functionを使用することができます。また、新たに補助チャートを開く必要もありません。


スクリプトの コンパイル ScriptsOrderSend.mq5


そして、"取引できる "インジケータを実行する。

こんにちは。以下の問題が発生しました。OBJ_CHARTで Expert Advisorを起動すると、OnTickが動作しません。OnTickを動作させる解決策はありますか?

 
vek_y4icb:

こんにちは。以下の問題が発生しました。OBJ_CHARTで Expert Advisorを起動するとOnTickが動作しません。OnTickを動作させるための解決策はありますか?

OBJ_CHARTでExpert Advisorが動かないというメッセージは、あなた自身が引用したものです。これはMT5の制限です。

 
fxsaber:

OBJ_CHARTで死んだEAについてのメッセージを引用したのはあなた自身です。これはMT5の制限です。

OnTimerはその上で動作します。

 
vek_y4icb:

OnTimerはそれらに対応する。

確認された方が早いと思いますが、私は覚えていません。

 
fxsaber:

確認した方が早いよ、覚えていないんだ。

いや、質問ではない)OnTimerはそのような専門家でも動作する、そこがポイントだ。しかし、OnTickは絶対に拒否する。

 
一般的に、私が理解しているように、このようなExpert AdvisorでOnTickを有効にすることは基本的に不可能であり、そのための回避策はないのでしょうか?
 
vek_y4icb:
一般的に、私が理解しているように、OnTickをこのようなExpert Advisorで有効にすることは基本的に不可能であり、そのための回避策はないのですか?

On関数を有効にするための回避策はありません。高頻度のOnTimerでOnTickを呼び出し、CopyTicksで(必要であれば)足りないティックを取得することでエミュレートできます。

 
fxsaber:

On関数を含めるための回避策はない。高頻度のOnTimerでOnTickを呼び出し、CopyTicksで(必要であれば)足りないtickを取得することでエミュレートできます。

私はそうしています。ご回答ありがとうございました!