単純化して比較してみましたが全く違いはありません。
ところで、指標バッファではなく、ただの配列なのになぜ ArraySetAsSeries を使っているのですか?
それに、どうせ1データしかコピーしないのだから
double MiddleBuffer[1];
でいいのでは?
NewBar チェックをしているのに、コピーしているデータは0番だからこの辺で違いが出てるんじゃないの?
動作テストできないから分からないけど。
単純化して比較してみましたが全く違いはありません。
ところで、指標バッファではなく、ただの配列なのになぜ ArraySetAsSeries を使っているのですか?
それに、どうせ1データしかコピーしないのだから
でいいのでは?
比較してみて頂いたとのこと回答ありがとうございます。
違いはないのですね。
ArraySetAsSeriesを使っているのは、参考にしたコードで使っていたためで、おっしゃる通りMiddleBuffer[1]で事足りますね。
>NewBar チェックをしているのに、コピーしているデータは0番だからこの辺で違いが出てるんじゃないの?
ご指摘の通りでした。
ありがとうございました。
CopyBuffer(handle,0,0,2,MiddleBuffer); Print("UpperBuffer[0]:",UpperBuffer[0]);
としたら、同じ値になりました。
(一応、今の足の値も取るようにしてます。)
CopyBuffer(handle,0,0,2,MiddleBuffer); Print("UpperBuffer[0]:",UpperBuffer[0]);
これは単純な間違いですか?
NewBar チェックをしている場合、新しいバーが出現した直後に1度だけ実行することになり、その後の価格の変動が反映されません。
ですから通常は0番ではなく、値の確定している1番のデータを使います。値に差異が出たのもそのためではないかと思ったんですが、0番のデータで問題ないんですか?
これは単純な間違いですか?
NewBar チェックをしている場合、新しいバーが出現した直後に1度だけ実行することになり、その後の価格の変動が反映されません。
ですから通常は0番ではなく、値の確定している1番のデータを使います。値に差異が出たのもそのためではないかと思ったんですが、0番のデータで問題ないんですか?
おっしゃる通りで、0番のデータを使ったことが差異の原因でした。
Printで"UpperBuffer[0]"としていたのは単純なコメント記載間違いです。。
実際の処理では、MiddleBuffer[1]として1番目のデータを使いました。
CopyBuffer(handle,0,0,2,MiddleBuffer); Print("MiddleBuffer[1]:",MiddleBuffer[1]);
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
iBands関数を使って取得した ボリンジャーバンド の値(Upper/Lower/Middle)とデータウィンドウで表示されている値が異なります。
原因わかる方教えて頂けないでしょうか。
以下、ソースコード抜粋です。