オフラインのチャートが表示されない - ページ 5

 
qjol:

33324というコマンドは、ティックではなくデータを更新するためのものです。


こんにちは、Raptorです。

qjolさんと同意見で、私が求めているものではなさそうです。 33324コマンドは、オフラインのチャートウィンドウにデータの更新/リフレッシュを依頼するだけで、オフラインのチャートのティックをトリガーする(つまり、EAのOnStartをトリガーする)わけではないようです。 また、PeriodConvertはスクリプトであり、EAではありません。

これを回避するために、OnTimer()の中に無限ループを追加して、メインロジックが永遠に走り続けるようにしています(少しスリープして)。 基本的には、スクリプトに変更しています。

でも、新しいMT4で解決されることをまだ期待しています。

 
lingwuchung:


こんにちは、Raptorさん。

qjolさんと同意見で、私が求めているものではなさそうです。 33324コマンドは、オフラインのチャートウィンドウにデータの更新/リフレッシュを依頼するだけで、オフラインのチャートのティックをトリガーする(つまり、EAのOnStartをトリガーする)わけではないようです。 また、PeriodConvertはスクリプトであり、EAではありません。

これを回避するために、OnTimer()の中に無限ループを追加して、メインロジックが永遠に走り続けるようにしています(少しスリープして)。 基本的には、スクリプトに変更しています。

でも、新しいMT4で解決されることをまだ期待しています。

ダメ元で! このままではテスターが使えません。 最初のバーでずっと止まってしまいます。

 
lingwuchung:


Raptorさん、こんにちは。

qjolさんと同意見で、私が求めているものではなさそうです。 33324コマンドは、オフラインのチャートウィンドウにデータの更新/リフレッシュを依頼するだけで、オフラインのチャートのティックをトリガーする(つまり、EAのOnStartをトリガーする)わけではないようです。 また、PeriodConvertはスクリプトであり、EAではありません。

これを回避するために、OnTimer()の中に無限ループを追加して、メインロジックが永遠に走り続けるようにしています(少しスリープして)。 基本的には、スクリプトに変更しています。

でも、新しいMT4で解決されることをまだ期待しています。

OK、区別はつきましたが、start()を実行させるために以前は何をしたのですか?
 
RaptorUK:
OK、区別がつきました。start()を実行させるために、以前は何をしたのですか?


修正しました! qjolさんに感謝です。 qjolさんに感謝です。

解決方法は簡単です。 オフラインチャートを生成するスクリプトの中で、次のように置き換えるだけです。

RegisterWindowMessageA("MetaTrader4_Internal_Message") を RegisterWindowMessageW("MetaTrader4_Internal_Message") に書き換えるだけです。

PostMessageA(hwnd, MT4InternalMsg, 2, 1) with PostMessageW(hwnd, MT4InternalMsg, 2, 1)

 
qjol:

33324のコマンドは、データの更新であり、ティックではありません。


qjol! ありがとうございます。 実は他のフォーラムでも今日の時点ではまだ解決していない人を見かけました。 このフォーラムが最初です(少なくとも助けを求めて いる人たち)! Rocks! これは、私がまだ有能なプログラマーであることを私に良い感じをもたらします! :)

 
自分のためにやったことだから、共有できてうれしい
 
RaptorUK:
多分、あなたは古いmql4と新しいmql4の違いについて読むべきでしょう ... ...


レガシーコードをサポートすることで、生産性の高い トレーダーが趣味のコーディングで時間を浪費する必要がなくなるかもしれませんね。

YL

 

議論するのはやめましょう。

33324はティックを受信するコマンドではありません。チャートのリフレッシュコマンドです。

他のコマンドについては、ググってみてください。私たちはそのようなコマンドを使うことをハッキングとして扱っていますが、6、7年前からコマンドを変更していませんし、今後も変更することはありません。(極秘)

オフラインのチャートで、エキゾチックなシンボル名(ERRUDDなど、冗談です)のバグがありました/ビルド605で修正しました。


さて、"degrade "について。

タイマーを秒単位だけでなく、ミリ秒単位で設定できるようになりました。試してみてください。

EventChartCustomも試してみて ください。きっと楽しいですよ。

 
yellowlion:


生産性の高いトレーダーが趣味のコーディングで時間を浪費することがないように、レガシーコードをサポートすべきかもしれません。

どうすればいいのでしょうか?
 
stringo:

議論するのはやめましょう。

33324はティックを受信するコマンドではありません。チャートのリフレッシュコマンドです。

他のコマンドについては、ググってみてください。私たちはそのようなコマンドを使うことをハッキングとして扱っていますが、6、7年前からコマンドを変更していませんし、今後も変更することはありません。(極秘)

オフラインのチャートで、エキゾチックなシンボル名(ERRUDDなど、冗談です)のバグがありました/ビルド605で修正しました。


さて、"degrade "について。

タイマーを秒単位だけでなく、ミリ秒単位で設定できるようになりました。試してみてください。

EventChartCustomも試してみて ください。きっと楽しいはずです。



公開された回避策をありがとうございました、一応書いておきます。

どちらも、オフラインのチャートに接続されたインディケータやエキスパートがOnCalculate, OnTick, start() 以外のメソッドを使用していることが前提です。つまり、既製のex4インジケータやエキスパートのためのソリューションではありません。