いくつかのMAを描画しようとしたときに問題

こんにちは

このコードが正しく機能しない理由は誰でも教えてください。
代わりにチャート上に8つのMA線を引くと、最初の2つの5つの期間と5つの期間の移動平均のみが描かれます

#property indicator_chart_window //メインウィンドウにインジケータが描画されます
#property indicator_buffers 8 //バッファ数
#property indicator_color1ライム// 1行目の色
#property indicator_color2青// 2行目の色
#property indicator_color3赤
#property indicator_color4 SeaGreen
#property indicator_color5 MediumVioletRed
#property indicator_color6 DeepSkyBlue
#property indicator_color7 OrangeRed
#property indicator_color8オレンジ

extern int Aver5 = 5。 //計算する小節数
extern int Aver8 = 8。 //計算する小節数
extern int Aver21 = 21 $B!# //計算する小節数
extern int Aver55 = 55; //計算する小節数
extern int Aver89 = 89。 //計算する小節数
extern int Aver144 = 144。 //計算する小節数
extern int Aver233 = 233。 //計算する小節数
extern int Aver377 = 377。 //計算する小節数

double Buf_5 []、Buf_8 []、
Buf_21 []、Buf_55 []、
Buf_89 []、Buf_144 []、
Buf_233 []、Buf_377 []; //インジケータ配列を宣言する
// ———————————————— ——————–
int init()//特殊関数init()
{
// ———————————————— ——————–
SetIndexBuffer(0、Buf_5); //バッファに配列を代入する
SetIndexStyle(0、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(0,0);
// ———————————————— ——————–
SetIndexBuffer(1、Buf_8); //バッファに配列を代入する
SetIndexStyle(1、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(1,0);
// ———————————————— ——————–
SetIndexBuffer(2、Buf_21); //バッファに配列を代入する
SetIndexStyle(2、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(2,0);
// ———————————————— ——————–
SetIndexBuffer(3、Buf_55); //バッファに配列を代入する
SetIndexStyle(3、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(3,0);
// ———————————————— ———- ———-
SetIndexBuffer(4、Buf_89); //バッファに配列を代入する
SetIndexStyle(4、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(4,0);
// ———————————————— ——————–
SetIndexBuffer(5、Buf_144); //バッファに配列を代入する
SetIndexStyle(5、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(5,0);
// ———————————————— ——————–
SetIndexBuffer(6、Buf_233); //バッファに配列を代入する
SetIndexStyle(6、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(6,0);
// ———————————————— ——————–
SetIndexBuffer(7、Buf_377) 損 バッファに配列を代入する
SetIndexStyle(7、DRAW_LINE、STYLE_SOLID、1); //線のスタイル
SetIndexShift(7,0);
// ———————————————— ——————–
戻る
}
// ———————————————— ——————–
int start()
{
ma(Aver5、Buf_5);
ma(Aver8、Buf_8);
ma(Aver21、Buf_21);
ma(Aver55、Buf_55);
ma(Aver89、Buf_89);
ma(Aver144、Buf_144);
ma(Aver233、Buf_233);
ma(Aver377、Buf_377);

戻る
}
// ———————————————— ——————–

void ma(int&average、double&buffer [])
{
int n、i;
int Counted_bars;
二重合計
Counted_bars = IndicatorCounted(); //小節数
i = Bars-Counted_bars-1; //最初の未カウントのインデックス
while(i> = 0)//小節線をループする
{
合計= 0。 //ループ開始時にNULL
for(n = i; n <= i average-1; n )//合計値のループ
{
Sum = Sum Close [n]; //最大値の累積
}
バッファ[i] =合計/平均。 // iバーのバッファの値
私 – ; //次の小節のインデックスを計算する
}
}

ありがとう


それは私にとってはうまくいきます。

乾杯

ゼリービーン


ここでも同じですが、うまくいきま



4274: https://www.mql5.com/en/forum/121508


Originally posted 2019-08-04 01:03:28.

Translate »