キャンバスがカッコいい! - ページ 81

 
Dmitry Fedoseev モノと一緒に仕事を しようとするときに生じる。

問題の解決策はEAの中にある:

ObjectFind() は必要ないかもしれません。

問題のコードを添付していれば、問題は昨日解決したはずです。

これはまったく問題ではありません。
この問題(OnChartEventの フリーズ) はMT4だけに存在するもので、しかも全く目立たない。私も長い間悩まされた。しかし、このスレッドでは1年ほど前にすでに議論されていた。

 
Nikolai Semko #:

それはまったく問題ではありません。
この問題はMT4だけに存在し、しかもまったく目立たない。私自身、非常に長い間苦しめられました。しかし、このスレッドでは1年ほど前にすでに議論されていた。

何が問題なのか全く分からないので、原因と解決方法を書いただけです。でも、あなたは苦しみ続けることができる...。

 
Dmitry Fedoseev #:

そして、何が問題なのかはまったくわからない。何が原因で、どう解決するのかを書いただけだ。 でも、あなたは苦しみ続けることができる。

この言葉は石に刻むべきだ!:))
 
Dmitry Fedoseev #:

そして、何が問題なのかはまったくわからない。何が原因で、どう解決するのかを書いただけだ。でも、あなたは苦しみ続けることができる。

deunitの問題は関係ありません。この問題はMT5でのみ発生します。そして、ここではMT4の話をしている。

 
Nikolai Semko #:

あなたは不思議な人だ。
あなた自身は、質問するときは自分のコードや何百行ものコードを他人に理解してもらいたいのに、答えに入り込もうともせず、100行のコードを覗き込もうともしない。

わかった。もっと簡単にしよう。
OnChartEventのコードをすべてOnTimerに変換する。タイマーを30ミリ秒に設定する。OnChartEventで 更新され、OnTimerで リセットされる(boolである) グローバル変数(terminalではない)だけを入力する必要がある
変数は
以下のようになる。

僕には全然分からなかった。先にあげたリンクから、この問題は古く、市場で10,000以上の売上を持つ著者でさえ、その解決策を一度ならず模索していることを知った。

そして、これはオブジェクトを持つすべてのMT4 Expert Advisorに当てはまり、膨大な数のユーザーがこの問題に直面していることを意味します。つまり、非常に多くのユーザーがこの問題に直面しているということです。彼らは市場の作者に手紙を書いていますが、解決策を知りません。だからこそ、この問題を解決することが非常に重要だったのです。

GIF(実行可能性の証明)を見て、私は自分の製品にこのアプローチを導入する決意を固めた。明日、座って実験して報告することにしよう。
 
Vitaliy Kuznetsov #:

私にとっては、それはまったく明白なことではなかった。先にあげたリンクから、この問題は古くからあり、市場で1万以上の売上を持つ著者でさえ、その解決策を何度も模索していたことを知った。

そして、これはオブジェクトを持つすべてのMT4 Expert Advisorに当てはまり、膨大な数のユーザーがこの問題に直面していることを意味します。つまり、非常に多くのユーザーがこの問題に直面しているということです。彼らは市場の作者に手紙を書いていますが、解決策を知りません。だからこそ、この問題を解決することが非常に重要だったのです。

GIFを見て、私は自分の製品にこのアプローチを導入する決意を固めた。おそらく明日、座って実験し、報告することになるだろう。


でも、ラグもなく動いています。

 
Nikolai Semko #:

EAでも同じことができるかもしれない。
でも、ラグなく動いている。

まずは、ありがとうございました!

うーん、指定されたコード内では動作するようです。しかし、まだEAと競合しています。例えば、https://www.mql5.com/ru/code/35440。

他のEAでも確認しました。EAのコードを改善してみる必要がある。問題はまだ関連している。
cm partial closing position
cm partial closing position
  • www.mql5.com
Советник закрывает позиции частями и переводит их в безубыток.
 
Vitaliy Kuznetsov #:

まずはありがとう!

うーん、指定されたコード内では動作するようです。しかし、まだEAと競合しています。例えば、https://www.mql5.com/ru/code/35440。

他のEAでもチェックしました。EAのコードを改良してみよう。まだ問題があります。


はい、OnChartEvent で計算がないように EA のコードも調整すべきです
ルールは単純です:
- イベントと座標のグローバル変数(ターミナルではない )はOnChartEvent で埋めるべきですが、そこから 面倒な 計算を 伴う関数を実行してはいけません
- そのような関数の呼び出しはすべて、イベント変数に従ってタイマーから行う必要があります。
- イベントが処理された後、タイマーのこれらのイベントをリセットすることを忘れないようにしてください。そうすれば、タイマーの次の繰り返しで、同じことを再び実行することはありません。

繰り返しますが、これは MT4 でのみ OnChartEvent フリーズするバグです

面白いのは、MQ がこのバグを修正する場合です。 がフリーズするのは、その中に約10ミリ秒の計算がある場合)で、タイマーの助けを借りて簡単に修正することができる:)))
あるいは、MT5に乗り換えさせるための人為的なバグかもしれない ;))))

 
Nikolai Semko #:


そうです。EA のコードも調整して、OnChartEvent で計算がないようにしてください。
ルールは単純です。
- イベントと座標のグローバル変数(ターミナルではない )はOnChartEvent で埋めるべきですが、そこから 面倒な 計算を 伴う関数を実行しないで ください。
- そのような関数の呼び出しはすべて、イベント変数に従ってタイマーから行う必要があります。
- イベントが処理された後、タイマーのこれらのイベントをリセットすることを忘れないようにしてください。そうすれば、タイマーの次の繰り返しで、同じことを再び実行することはありません。

繰り返しますが、これは MT4 でのみ OnChartEvent フリーズするバグです

面白いのは、MQ がこのバグを修正する場合です。 がフリーズするのは、その中に約10ミリ秒の計算がある場合)で、タイマーの助けを借りて簡単に修正することができる:)))
あるいは、MT5に乗り換えさせるための人為的なバグかもしれない ;))))

オブジェクトを使用するクローズドコードのEAとのコンフリクトは、通常のインジケーターコードの改善方法では解決できないことが判明。

EAを改善することで、すべてのダッシュボード・インジケータとのコンフリクトがグローバルに解決されることを願っています(これが私の課題です)。

私はMT4ビルド1353のスレッドに書きました、多分ターミナルプログラマーは注意を払うでしょう。

P.S.私はフクロウで変更を加え、何かスキーは行きませんでした...

 
Vitaliy Kuznetsov #:


追伸:フクロウと何かのスキーが行かなかったので編集しました...。

OnChartEventに ループや他の関数の呼び出しが残って いないことを確認して いますか?
OnTimer(またはOnChartEvent )で 起こることの計算時間をGetMicrosecondCount()で 測定 する。

理由: