チャートウィンドウを更新する - ページ 2

 

問題」は、インジケータがバーを再描画しないように制限、すなわちIndicatorCounted()関数を使用していることかもしれません。
を使用していることです。

時間枠を変更するとリセットされますが、WindowRedraw()はリセットされないかもしれません。その機能はオブジェクトを再描画することであり、指標のインデックスを再描画することではありません。

void WindowRedraw( )
現在のチャートを強制的に再描画します。これは通常、オブジェクトのプロパティが変更された後に使用されます。

私は通常、自分が書いたもののほとんどで、1000本ほどのバーを再計算していますし、それは右クリックによって行われます。
右クリックでリフレッシュします。

インジケータのループを厳しく制限しないと、ティックごとにインジケータがリフレッシュされます。

 
?何が起こっているのかのいくつかの手がかりを持っていますか?WindowRedraw()を使用した後、なぜ私は何の効果も見ないのですか?

どうもありがとうございました。
 

あなたは「難読症」なのでしょうか?

 
こんにちは、phyさん。

約2ヶ月ぶりにあなたの最後の返信を受け取りました。私はなぜそれをスキップしたのか分からない。私はまだ「インジケータの再描画」で困っています。今、私はあなたが私に与えた情報を使って問題を解決しようとします。
 

コードを表示する...

 
brspMA:
hi phy, ちょうど2ヶ月近く経ってから、あなたの最後の返信を受け取りました。私はなぜそれをスキップしたのか分からない。私はまだ "私のインジケータを再描画する "ことで困っています。今私はあなたが私に与えた情報を使って問題を解決しようとします。どうもありがとうございます、、、


このスレッドを読みましたが、あなたのコードに問題があるようです⇒WindowRefresh()関数では 解決しない。
 
こんにちは、

私はそれが最初からすべてを再描画するために強制的にインジケータをリセットしようとしていると思います!私の問題は、私は新しいデータの関数で過去のデータを変更する関数を 使用しており、その結果、私のチャートは時間の経過とともに塊になることです。私は定期的に私のインジケータ全体を再描画する必要があります。最近、私は私がいた時間枠に戻るとき、私は私のチャートウィンドウをきれいに(再描画)得るように、時間枠を変えてきた。ここに私のコードのスキーマがあります:

int start(){
   int limit;
   int counted_bars=IndicatorCounted();
   //---- check for possible errors
   if(counted_bars<0) return(-1);
   //---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   if (limit>GV) limit = GV;
   //---- main loop
   for(int i=limit; i>=1; i--){
 
 
{calculates the variable and feed the buffers}
 
return(0);}
どうもありがとうございます、、、。
 
2行をあなたのコードに挿入してください。

int start(){
   int limit;
   int counted_bars=IndicatorCounted();
   //---- check for possible errors
   if(counted_bars<0) return(-1);
   //---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
   double startTime=GetTickCount();
   if (limit>GV) limit = GV;
   //---- main loop
   for(int i=limit; i>=1; i--){
 
 
{calculates the variable and feed the buffers}
 
   double finishTime=GetTickCount();
   Print("Calculation time is ",(finishTime-startTime)/1000.0," seconds");
return(0);}
 

GVとは?

最近やっているのは、以下のようなものです。

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){.

これは、ティック ごとにインジケータの可視部分を再描画しますが、視界に入らないバーは再描画しません。

 
phy:

GVとは?

最近やっているのは、以下のようなものです。

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){.

これは、ティックごとにインジケータの可視部分を再描画しますが、視界に入らないバーは再描画しません。


GVはグローバル変数で、バックテストする時間に応じてリミットを設定するのに使っています。

君たちはすごいね!今日の午後、このコードを実装する予定です。

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
あなたの寛大さに感謝します、、、。