新ブログ「ごんフラブログG2」

WordPressで始めてみました

[海外]バンドルされた複数のゲーム・PCアプリが購入できるサイト
humblebundle.com


ごんたろうのぼやきトップ

2019年09月28日

[MQL4]インジケータとEAでの配列初期化、リサイズ[MQL初]

MQL始めました。
FXはやってませんがw
FXも勉強しながらのMQL挑戦ですw
今年の8月頭くらいからなので
まだ1ヶ月半くらいでしょうか。

同じMQLでも、インジケータとEA(Expert Advisor)では
使える関数が違いますし、
インジケータでは

double arr[];
SetIndexBuffer(0,arr);
int limit=Bars - IndicatorCounted() - 1;//例
for(int i=limit;i>=0;i--){
arr[i]=〜〜
}

な感じに書きますが
EAだとこれは動きません。

※他の書き方があるかと思いますが、
あればコメントなどで教えて下さいませ。
double arr[];

int limit;
OnInit(){
limit=Bars - IndicatorCounted() - 1;//例
ArrayResize(arr,limit);
ArrayInitialize(arr,EMPTY_VALUE);
}
■以下tick等
for(int i=limit-1;i>=0;i--){
arr[i]=〜〜
}

※例えばlimitが1000の場合(配列の要素が1000個)
forでiに代入する値は1000ではなく999でないと
配列をいじる時に処理が強制終了します。
また
double ma1,ma2;
ma1=iMA(〜,i);
ma2=iMA(〜,i+1);

などの処理をする場合は

必要な処理だけをして
後は
if(i==limit-1){
//処理をしない
continue;//例
}

で抜けないと
iが要素数MAXの時に
i+1の配列にアクセスする時点で強制終了です。

御注意。
posted by ごんたろう(Gontaro-Soft) at 18:30 | Comment(0) | MQL/MQL4
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
ブログランキング・にほんブログ村へ
にほんブログ村

インターネット・コンピュータランキング