[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 192

 

ヒントをください。MathMaxが 動かない理由がわからない。

簡略化したコード(これ以上ないほど簡略化されています)もうまくいきません。変数GBPUSD_Highが 動作しません:-(GBPUSD_Lowは 問題なく動作しますが。

P.S. 私は、インジケータを読み込んだ瞬間からのバーの値だけに興味があります。

//+---------------------------------------------------------------
#property indicator_separate_window
#property indicator_buffers3
#property indicator_color1 Black
#property indicator_color2 Gray
#property indicator_color3 Gray
//--------------------------------------------------------
double GBPUSD[], GBPUSD_High[], GBPUSD_Low[].
//----------------------------------------------------

int init()
{
//----------------------------------------------------

SetIndexBuffer(0
,GBPUSD);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2
);
SetIndexBuffer(1
,GBPUSD_High);
SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1
);
SetIndexBuffer(2
,GBPUSD_Low);
SetIndexStyle(2,DRAW_LINE,STYLE_DOT,1);
//----------------------------------------------------------------

return;
}
//----------------------------------------------------------------

int start()
{

int Counted_bars, i;
//------------------------------------------------
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1.i;。

while(i>=0)
{
GBPUSD[i]=Close[i];

if (GBPUSD_Low[i]==0) GBPUSD_Low[i]=GBPUSD[i];
GBPUSD_High[i]=MathMax(GBPUSD_High[i],GBPUSD[i]);
GBPUSD_Low[i]=MathMin(GBPUSD_Low[i],GBPUSD[i]);
i--;
}
//-----------------------------------------

return;
} //-------------------------------------------------------------

ロードするには、もちろんGBPUSDに。

 
alderru >> :

ヒントをください。MathMaxが 動かない理由がわからない。

簡略化したコード(これ以上ないほど簡略化されています)もうまくいきません。変数GBPUSD_Highが 動作しません:-(GBPUSD_Lowは 問題なく動作しますが。

P.S. 私は、インジケータをロードした瞬間からのバーの値だけに興味があります。

もちろん、GBPUSDに読み込ませるのですが。

MathMaxは 何の関係もない。バリアントです。

while ( i>=0)
{
GBPUSD[ i]=Close[ i];
GBPUSD_High[ i]=High  [ i];
GBPUSD_Low[ i]=Low[ i];

//if (GBPUSD_Low[i]==0) GBPUSD_Low[i]=GBPUSD[i];

GBPUSD_High[ i]=MathMax( GBPUSD_High[ i], GBPUSD[ i]);
GBPUSD_Low[ i]=MathMin( GBPUSD_Low[ i], GBPUSD[ i]);
i--;
}
 
tmp.0 >> :

>>MathMaxは 関係ありません。

そのとおりです。つまり、Highは常にCloseより大きいか等しく、MathMinも同じであることは明らかである ;)

 
OneDepo писал(а)>>

そのとおりです。つまり、Highは常にCloseより大きいか等しく、MathMinも同じであることは明らかである ;)

例として、あえて 既知の 値の計算をあげてみました。オリジナルでは、全く別の変数のバーで最大値と最小値を探しています。インジケータを描画すると、当然ながらバーが形成 されている間に変数の曲線が再描画される。境界点を探しています。

MathMax 関数が動作しないこと自体が理解できない。MathMinが うまく機能し、GBPUSD_Lowの曲線が描かれる...

プログラミングの文法に関して、何かご指摘はありますか?

インジケータをインストールして、何が問題なのか、なぜGBPUSD_Highが計算されないのかを教えてください。

 
alderru >> :

例として、すでに知られている 値の計算をあえてあげて みました。オリジナルでは、全く別の変数のバーで最大値と最小値を探します。インジケータが表示されると、当然ながらバー形成 時に変数の曲線が再描画されます。境界点を探しています。

MathMax 関数そのものが動作しないのは理解できない。

プログラミングのグラフィックの 観点から、何かご指摘はありますか?

インジケータをインストールして、GBPUSD_Highが計算されないのはなぜか、何が問題なのか教えてください。

このコードを好きなところに貼り付けてください。

Print (GBPUSD_High[i],":",GBPUSD_Low[i],":",GBPUSD[i]); 
をクリックすると、"エキスパート "タブに表示されるエピソードをご覧いただけます。
 
tmp.0 писал(а)>>

このコードを好きな場所に置くのです。

をクリックすると、「エキスパート」タブで啓示を受けることができます。

だからなんだ...

エピファニーはない。Printは、インジケータを表示するのと同じように、2つの値だけを表示します。3番目はどうでしょうか?

アドバイスしたことを実行しようとしたことはありますか?

 
次の質問をどうぞ :)
 
tmp.0 писал(а)>>
次の質問をどうぞ :)

とても賢いですね。

助っ人」ありがとうございます。

 
alderru >> :

とても賢いですね。

助けてくれて」ありがとう。

すでに上記のような答えが出ていますね。理由は、代入演算子の右側部分に未代入の値が使われているためです。GBPUSD_High[i]は文字列の中で 何に相当するか?

GBPUSD_High[i]=MathMax(GBPUSD_High[i],GBPUSD[i]);

修正する選択肢も示されていますね。皮肉は置いてけぼり。


 
OneDepo писал(а)>>

理由は、代入演算子の右辺に未代入の値が使われているためです。

そのため、インジケータ・バッファを宣言しても、セルの値がゼロになるわけではありません。そうだろ?

したがって、比較される値の1つ(すなわちGBPUSD_High)には値がない(全く、ゼロでもない)ので、MathMaxは 計算されません。

なるほど。OneDepoさんありがとうございます。

私の単純化した表現で、皆さんを混乱させてしまったことをお詫びします(ダジャレです)。すでに述べたように、私はHigh quotesの値には興味がありません。私が興味があるのは、独自の関数のバー上の最大値で、その曲線はインジケータがバーを形成している間にうまく描画して再循環します。気になるバー中のインジケータの再描画の範囲です。

考えてみます。

P.S. しかし、なぜMathMinは 問題なく考慮され、条件は等しく、同じように宣言されるのでしょうか?

P.S. 私はとても鈍感です。私にはできないことです。助けてください。

理由: