...
voidOnTick()
{
//---
count++;
//Comment(count);if(count==9 || count==19)
{
ResetLastError();
if(position==CHART_BEGIN)
{
if(ChartNavigate(ChartID(),CHART_BEGIN,100))
Print("Успешно. redraw ",redraw,". position ",EnumToString(position));
elsePrint("Ошибка №",GetLastError(),". redraw ",redraw,". position ",EnumToString(position));
}
if(position==CHART_END)
{
if(ChartNavigate(ChartID(),CHART_END,-100))
Print("Успешно. redraw ",redraw,". position ",EnumToString(position));
elsePrint("Ошибка №",GetLastError(),". redraw ",redraw,". position ",EnumToString(position));
}
if(redraw)
ChartRedraw();
}
//--- получим номер самого первого видимого на графике бара (нумерация как в таймсерии) long first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
//--- добавим символ переноса строки string comm="\r\n";
//--- дополним коментарий
comm=comm+"Первый бар на графике имеет номер "+IntegerToString(first_bar)+"\r\n";
//--- выведем комментарий Comment(comm);
}
//+------------------------------------------------------------------+
ダニがいなかったら、週末はどうする?そうすると、タイマーを接続する必要があります。
そして、解決すべき問題はただ一つ、ChartNavigateが正常に実行されたかどうかを判断する方法です。trueを返すということは、あくまで「ティック用」であって、実作業では何の役にも立たない。
上に載せたコードをExpert Advisorで確認したいのですが・・・。
上に載せたコードをEAで確認したいのですが・・・。
EAと何か関係があるのでしょうか?
参議院議員に何の関係があるんだ?
調べないと...
Vladimir Karputov:
このインジケータは、特に9ティックの遅延、2種類のチャートの動き、強制再描画フラグ(オン/オフ)を入れて います。
あなたはビギナーではありません。なぜ誤解を招くようなことをするのですか?なぜ、レナト・ファトフリンの発言を無視するのですか?
あなたのコードでは、(ここでも そうですが)ティックごとにコメントを作成することで、ティックごとにチャートを再描画することを強制しています。
すなわち、入力パラメーターのフラグが有効か無効かにかかわらず。
また、入力パラメータにフラグを含めると、この場合、ChartRedraw() による追加再描画が発生するだけです。
すなわち、有用である代わりに、コメントを作成することによって、すでに存在するものにさらなる負荷を与えることになる
P./S:
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
エラー、バグ、質問
レナート・ファットフーリン さん 2017.12.05 02:51
...
MT5では、コメント機能で明示的にチャートが再描画されるのですが...。
その差は、ただそれだけです。
MT4でCommentを呼び出した後、強制的にChartRedraw()をかけると、やはりMT5と同じ動作にはならない。Metatrader 4のChartRedraw()はコメント値を無視し、最後のフレームからチャートを更新するかどうかを自ら決定します。もちろん、チャートデータの無効化を引き起こすような毎秒数百の相場がない場合、ChartRedrawは「なぜ変化のないチャートを描くのか」と判断し、フレームの描画をスキップするのだそうです。
Metatrader 5も同様のシステムですが、無条件レンダリングが優先されるケースが多くなっています。
端末はグラフィカルなアプリケーションであり、1秒間に数百フレームを提供し、パフォーマンスのために無駄のない表示モードで動作させることができます。
それゆえ、ベンチマークを実行する際には、追加の結論が必要となります。
読み書きのコマンドを混在させず、一括読み込みと一括書き込みを別々に行うことを推奨します。
ノートパソコンとデスクトップパソコンでテストをした場合、グラフィックカードの速度が3〜5倍遅いだけで、結果が何倍も違ってくることがあるのです。
このような間違いは、誰にでもあることです。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
初期化中のChartNavigate
ウラジミール・カルプトフ さん 2018.06.25 18:52
確認しないと...
追伸: 2つ目のコードに加えて、同じコメントでテキスト入力と公開を更新する前に、データが変更されていないかどうかチェックしてください。そうでない場合は、テキストの更新と公開を延期するのがよいでしょう。
つまり、この場合は、グラフの最初のバーの数字が変わったかどうかということです
確認しないと...。
うーん。それがどういうことなのか、よくわからないんですけどね。よし、それならインストールしました。CHART_BEGIN モードとCHART_ENDモードで確認しました。 広告の通り動作しています。再起動後、OKです。
それとも、ChartNavigateの後にチャートの最初のバーの番号を確認し、それが正しいものでなければ、もう一度ChartNavigateを実行するという、松葉づえを使う必要があるところまで来ているのでしょうか?
そう、出口はもちろん、私も考えました。しかし、このような端末のフィッシュを常に覚えているのは面倒なことです。やはり、バグである可能性は十分にありますね。
追伸: 2つ目のコードに加えて、テキストエントリーを更新し、同じコメントで公開する前に、データが変更されていないかどうか確認してください。そうでない場合は、テキストの更新と公開を延期するのがよいでしょう。
すなわち、この場合、チャートの最初のバーの番号が変わったかどうかである
もちろん情報はありがたいのですが、ここでは性能の話はしていないんです。今回議論している問題は少し違う次元の問題で、問題が顕在化したかどうかを確認するためのテストコードです ))
もちろん、情報提供には感謝しますが、ここでは性能の話をしているわけではありません。今回議論している問題は少し違う次元の問題で、問題が現れるかどうかを確認するためのテストコードに過ぎません ))
どういたしまして。しかし、あなたが引用したものは追記であり、私の 他の投稿も 参照してください。
P./S.:切り捨てないでくださいよ。私は、その内容を知っているので、このようなコードを実行することはありません。私の機器は政府発行のものではありません
うーん。それがどういうことなのか、よくわからないんですけどね。よし、それならインストールした。CHART_BEGIN モードとCHART_ENDモードで確認しました。 すべて広告の通りに動作しています。再起動後、OKです。
それとも、ChartNavigateの後にチャートの最初のバーの番号を確認し、それが正しいものでなければ、もう一度ChartNavigateを実行するという、松葉づえを使う必要があるところまで来ているのでしょうか?
そう、出口はもちろん、私も考えました。しかし、このような端末のフィッシュを常に覚えているのは面倒なことです。やはり、バグである可能性は十分にありますね。
以前は作業用ナビがあったんですけどね。今はわざと確認するようになりました。
追記:Commentを気にしないように :)
以前は私のナビが活躍していました。今はわざと確認するようになりました。
追記:コメント無視 :)
なぜ?無意味なことを書いた/報告した?