
以前作ったma_cross01のタイミングを遅らせるようにしてみます。
修正箇所は start です。
以下のように修正してください。
double fast_ma1=iMA(NULL,0,ma1_Period,0,MODE_SMA,PRICE_CLOSE,i+1);
double fast_ma2=iMA(NULL,0,ma1_Period,0,MODE_SMA,PRICE_CLOSE,i+2);
double slow_ma1=iMA(NULL,0,ma2_Period,0,MODE_SMA,PRICE_CLOSE,i+1);
double slow_ma2=iMA(NULL,0,ma2_Period,0,MODE_SMA,PRICE_CLOSE,i+2);
if(fast_ma1>slow_ma1 && fast_ma2<slow_ma2)
{
ExtMapBuffer1[i]=Close[i];
ExtMapBuffer2[i]=0;
}
else if(fast_ma1<slow_ma1 && fast_ma2>slow_ma2)
fast_ma0 と slow_ma0 を削除し、
fast_ma2 と slow_ma2 を追加して、
0 と 1 の比較だったものを 1 と 2 の比較に変更しています。
修正が終わったらコンパイルしてみてください。
Before
After
矢印の表示のタイミングが1本遅れているのがわかると思います。
色々試してどちらが好みか確かめるのもいいかもしれません。



