ma0 = iMA(NULL, PERIOD_CURRENT, MA_period, 0, MA_method, aPrice, i); //遅行線1 ma1 = iMA(NULL, PERIOD_CURRENT, MA_period, 0, MA_method, aPrice, i + 1); //遅行線2 ma2 = iMA(NULL, PERIOD_CURRENT, MA_period, 0, MA_method, aPrice, i + 21); //先行線1 ma3 = iMA(NULL, PERIOD_CURRENT, MA_period, 0, MA_method, aPrice, i + 21 + 1); //先行線2 if (ma0 > ma2 && ma1 <= ma3) { //買いオーダー }
先行線の21本目の所に遅行線の0本目が来ているので、このようになります。
ma_shift を使っても画面上の表示が移動するだけですから、うまくいかないはずです。
Naguisa Unada 様
丁寧かつわかりやすい解説ありがとうございます。
いただいた内容で試してみます。
お手数お掛けしました。
よろしくお願いします。
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
どうすれば良いでしょうか?
移動平均線のインジケーターに表示位置があったので、表示位置を-21とした移動平均線とのクロスでのエントリーを考えています。
ma_shiftとshiftの数値を
[0] = iMA(NULL,0,MA_period1,-21,0,0,21);
[1] = iMA(NULL,0,MA_period1,-21,0,0,22);
[2] = iMA(NULL,0,MA_period2,0,0,0,1);
[3] = iMA(NULL,0,MA_period2,0,0,0,2);
とすると、思ったところではないところでエントリーされます。
以下の様に設定すると、エントリーされないです。
[0] = iMA(NULL,0,MA_period1,-21,0,0,1);
[1] = iMA(NULL,0,MA_period1,-21,0,0,2);
[2] = iMA(NULL,0,MA_period2,0,0,0,1);
[3] = iMA(NULL,0,MA_period2,0,0,0,2);
移動平均線を遅行させたいだけ(左寄せ)としたいだけなので、shift値を変更するのも違うような気もします。
それとも、以下の様にshift値だけ遅らせるのが良いのでしょうか?
[0] = iMA(NULL,0,MA_period1,0,0,0,21);
[1] = iMA(NULL,0,MA_period1,0,0,0,22);
[2] = iMA(NULL,0,MA_period2,0,0,0,1);
[3] = iMA(NULL,0,MA_period2,0,0,0,2);
ちなみに、買いエントリー の記載は以下となっています。
if( [1] <= [3] ){
if( [0] > [2] ){
稚拙な質問で申し訳ありませんが、ご教授いただけますと幸いです。
よろしくお願いします。