MT4からMT5への乗り換えの問題。正確には、MT5で一部のアルゴリズムをerrなしで実行できないことです。 - ページ 5

 
Andrey Khatimlianskii:

1分半ごとにタイマーをかけてやるという提案でした。すべてのティックの 前ではなく、また確実にチャートイベントの前でもありません。

MT5でのタイムスケールへのアクセスは、確かに理想的ではありません。しかし、言い訳を探すのではなく、問題を解決する必要があるのなら、それは可能なのです。

誰も言い訳をしようとは思っていない。課題の難易度がわからない。だから言い訳を簡単に話すんですね。

2分ごとにタイマーで更新することが提案されました。それが、私のやってきたことです。

でも...これだけでは不十分です。このタイマー更新後も、GUIでチャート上にイベントを作成すると、iBarShiftを呼び出すと-1が発生することがよくありました。その結果、配列の境界の外側で終了するなどのエラーが発生します。そこで、OnChartEventに入る前に、タイムスリリーのアクセシビリティチェックをやってみました。理解を深めるために言っておくと、21個のタイムシリーズ全てにアクセスできることを確認する必要がある。少なくとも1つの時系列がアクセスできない場合、ほぼ100%の確率で何らかの誤差を含んだグラフが作成されます。

プログラムは約5万行と複雑です。このようなボリュームでは、さまざまな時系列のアクセスが発生します。

遅延は常に発生する(MT5ヴァリアントにおいて)。MT4で時計のように動きます。

MT5には興味がない。トレーディングでは使っていません。MT4だけを使っています。ユーザーからの要望により、プログラムの翻訳を開始しました。 そんな面倒なことに直面したとき、面白いことをやったほうがいいと思ったんです。

14年間のプログラム開発の中で、いくつかの興味深いアイディアが生まれました。私は今、これらのアイデアを実行しています。

 
Eugeni Neumoin:

2分ごとにタイマーで更新するのがいいのではという意見がありました。それが、私の仕事です。

でも。これだけでは不十分です。このタイマー更新後も、GUIでチャート上にイベントを作成すると、iBarShiftを呼び出すと-1されることがよくありました。

ひょっとしてiBarShiftの exactは嘘なのでしょうか?

私も時間差で更新しても、同期がうまくいかないことがありました。しかし、皮肉にも再現できず、問題は浮いたままです。


Eugeni Neumoin:

MT5には興味がない。トレーディングでは使っていません。MT4のみ。ユーザーからの要望により、プログラムの翻訳を開始しました。そんな面倒なことに直面したとき、「自分が面白いと思うものを仕事にしたほうがいい」と思ったんです。

14年間のプログラム開発の中で、いくつかの興味深いアイディアが生まれました。私は今、これらのアイデアを実行しています。

MT5を擁護しているわけではありません。ただ、理解しようという気持ちがあまりないことに一発で気づきました)。

もちろん、面白いことはやったほうがいい!ということです。

 
Eugeni Neumoin:

誰も言い訳をしようとは思っていない。課題の難易度がわからない。だから、簡単に言い訳を口にするんですね。

提案されたのは、2分ごとにタイマーで更新すること。それが、私の仕事です。

でも...これだけでは不十分です。このタイマー更新後も、GUIでチャート上にイベントを作成すると、iBarShiftを呼び出すと-1が発生することがよくありました。その結果、配列の境界の外側で終了するなどのエラーが発生します。そこで、OnChartEventに入る前に、タイムスリリーのアクセシビリティチェックをやってみました。理解を深めるために言っておくと、21個のタイムシリーズ全てにアクセスできることを確認する必要がある。少なくとも1つの時系列がアクセスできない場合、ほぼ100%の確率で何らかの誤差を含んだグラフが作成されます。

プログラムは約5万行と複雑です。このようなボリュームでは、さまざまな時系列のアクセスが発生します。

遅延は常に発生する(MT5ヴァリアントにおいて)。MT4で時計のように動きます。

MT5には興味がない。トレーディングでは使っていません。MT4だけを使っています。ユーザーからの要望により、プログラムの翻訳を開始しました。 そんな面倒なことに直面したとき、面白いことをやったほうがいいと思ったんです。

14年間のプログラム開発の中で、いくつかの興味深いアイディアが生まれました。私は今、これらのアイデアを実行しています。

タイムスケールをキャッシュする。
 
Artyom Trishkin:
タイムスリップをキャッシュする

どういうことですか?手作業でキャッシュを作る?

 
Andrey Khatimlianskii:

どういうことですか?手作業でキャッシュを作る?

一度、すべての時系列をカウントして、あとは追加するだけです。これは、ウィンドウで行うことができます。
そう、自分たちのアレイにね。SBと一緒にやればいい。時系列クラスは、あなた自身のものです。
 
Andrey Khatimlianskii:

iBarShiftの正確な値がたまたま真であったのでしょうか?

を真に受ける。正確なバーナンバーを知りたい。

 
Artyom Trishkin:
すべての時系列を一度カウントし、あとは追加するだけです。窓際でも大丈夫です。

では、バッファを使わず、自前のアレイで作業した方がいいということですか?

では、バッファは何のためにあるのでしょうか?

つまり、バッファの代わりに自分で松葉杖を作ろうということですね :(

そして、iTimeや iLowなどの代わりに、独自の関数を作る...。MT5から動かない機能をバイパスして、すべてを独自に書き換える...。

これは思い切ったことをしましたね。でも、マニアにはやらせればいいんです。私は身を引きます。途中経過も見ない。

 
Eugeni Neumoin:

では、バッファを使わず、自前のアレイで作業した方がいいということですか?

SBをご覧ください。そこには指標を持った作品がある。自分で作るのが面倒な場合。一般に、クラスは一度作成すれば、どのテキストメッセージにも使用することができます。そして、そのデータは常に利用可能です。あなただけが無差別に新しいものを追加しなければならなくなります。
 
Eugeni Neumoin:

では、バッファを使わず、アレイで作業したほうがいいということですか?

では、バッファは何のためにあるのでしょうか?

つまり、バッファの代わりに自分で松葉杖を作ろうということですね :(

そして、iTimeやiLowなどの代わりに、独自の関数を作る...。MT5から動かない機能を迂回して、すべてを独自に書き換える...。

そこではすべてがうまくいく。しかし、アクセスが拒否されることもある。時系列更新のためか......よくわからない。拒否された場合、最初のリクエストでデータスワップが有効になるため、リクエストを繰り返す必要があります。
 
Eugeni Neumoin:

を真に受ける。正確なバーナンバーを知りたい。

そうすると、論理に間違いがあるのでしょう。バーがない場合もあります。