【※この記事にはプロモーションが含まれています。MQL5を使って自作したEAをシステムトレードに利用するには、取引プラットフォームとしてMT5を提供しているFX会社に口座を開設しなくてはいけません。配列の宣言ArrayResize関数ArrayFill関数for文printf関数フォーマット指定子この関数を使ってEAを作る際のアイディアArrayFill関数の働き・役割ArrayFill関数は、指定された値で配列を埋めるために使用されます。この関数は、基本データ型(int型やfloat型など)を要素とする配列に対して適用され、配列内の特定の範囲を指定した値で埋めます。配列の一部または全体に同じ値を設定する際に便利です。ArrayFill関数を使用することで、配列の要素を一括して初期化する作業を簡潔に行うことができ、効率的なコード記述が可能となります。);ArrayFill関数は、以下の4つの引数を取ります。arrayこれは、埋める対象となる配列です。配列は基本データ型のいずれかで構成されている必要があります。基本データ型には、以下のものが含まれます。doubleこの配列は、関数を通じて値が変更されるため、参照渡しとして渡されます。startこの引数は、配列のどの位置から値を埋め始めるかを指定します。インデックスは0から始まり、このインデックス位置から指定した数の要素がvalueで埋められます。startに0を指定すると配列の最初の要素から値を埋めることになります。count埋める要素の数を指定します。countが5の場合、startで指定した位置から連続して5つの要素が第4引数で指定した値で埋められます。valueこの引数で、配列の要素を埋める際に使用する値を指定します。valueは、配列の要素と同じデータ型でなければなりません。配列がint型で構成されている場合、valueもint型でなければなりません。ArrayFill関数の戻り値についてArrayFill関数には戻り値はありません。この関数はvoid型で定義されており、配列に値を埋める処理を行うだけです。ArrayFill関数を使う際の注意点ArrayFill関数を使用する際は、配列の要素へのアクセス順序に注意する必要があります。ArraySetAsSeries関数を使用して配列のアクセス順序を逆(右から左)に設定した場合でも、ArrayFill関数は常に通常の順序(左から右)で配列を処理します。このため、逆順でのアクセスを期待している場合には、意図しない結果が生じる可能性があります。アクセス順序をしっかり確認してから使用することが重要です。ArrayFill関数は多次元配列を1次元配列として処理します。2次元配列であっても、内部的には1次元配列のように扱われます。具体的には、配列[2][4]のような2次元配列は、1次元配列として処理され、8個の連続した要素(配列[8])として扱われます。この特性を理解するために、次の例を考えます。ArrayFill関数が配列のインデックス5から始まり、2つの要素に対して3.14を代入する場合、これはインデックス5から始まり、2つの要素に対して3.14を代入します。配列[2][4]という2次元配列では、インデックス5は配列[1][1]に相当し、その次のインデックスは配列[1][2]です。したがって、この場合、配列[1][1]と配列[1][2]が3.14で埋められることになります。多次元配列に対してArrayFill関数を使用する場合は、このように内部で1次元配列として扱われるため、開始インデックスや埋める要素の数を慎重に設定する必要があります。ArrayFill関数を使ったサンプルコード以下は、ArrayFill関数を使った簡単なサンプルコードです。このコードでは、動的配列を作成し、その配列の一部を特定の値で埋める処理を行っています。}}このサンプルコードを実行すると、配列の最初の5つの要素は123で埋められ、次の5つの要素は456で埋められます。結果として、配列は123が5回、456が5回連続する形になります。サンプルコードに使われた関数や文法要素の解説OnStart関数OnStart関数は、スクリプトが実行された際に自動的に呼び出される関数です。この関数の中で、配列を動的に作成し、ArrayFill関数を使用して配列の特定範囲に値を埋める処理が行われます。配列の宣言int型の配列を宣言することで、aという動的配列を作成しています。動的配列は初期サイズを持たないため、後からArrayResize関数でサイズを指定します。ArrayResize関数ArrayResize関数は、動的配列のサイズを変更するために使用されます。ArrayResize関数を使用することで、配列aのサイズを10に設定しています。これにより、配列aは10個の要素を持つことになります。ArrayFill関数ArrayFill関数は、指定した範囲の配列要素に同じ値を一括で代入するために使用されます。この例では、最初に配列の0番目から5つの要素を123で埋め、その後、6番目からの5つの要素を456で埋めています。for文for文を使用して、配列aの全ての要素にアクセスし、値をエキスパートログに出力しています。ArraySize関数は、配列の要素数を返すため、配列の範囲内でループ処理が行われます。printf関数printf関数は、エキスパートログにメッセージを出力するために使用されます。この例では、配列の各要素のインデックスとその値を出力しています。printf関数の引数として、インデックス番号iとその要素a[i]の値が表示されます。フォーマット指定子%dは、整数を表示するためのフォーマット指定子です。文字列の中で%dを使用すると、その場所に対応する整数値が表示されます。123のように結果がエキスパートログに表示されます。この関数を使ってEAを作る際のアイディアArrayFill関数は、配列を効率的に初期化したり、特定の範囲に一括で値を設定したりする際に役立ちます。以下のようなEA(:エキスパートアドバイザー)の作成に活用できます。過去の価格データを特定の値で初期化する際に使用できます。一定のルールに基づいて特定の期間の価格を一括で初期化し、そのデータを基に取引判断を行うEAを作成することができます。バックテストデータの操作バックテストにおいて、特定の範囲のデータを特定の値で埋めることで、特定の相場状況をシミュレートすることが可能です。ArrayFill関数を使用して、低ボラティリティの相場をシミュレーションするために一定の値で価格を埋めることができます。一括ポジション管理の初期化EAの中で、複数のポジションデータやオーダーデータを管理する際に、初期化処理としてAArrayFill関数を使用し、全てのポジションデータを一度にクリアしたり、特定の値でリセットすることができます。このように、ArrayFill関数は配列を簡単に操作できるため、様々なEA開発に役立てることができます。↑MQL5やFX関連の用語リンク集です。当サイトでは、元々わからない言葉や概念に出くわしたら、すぐその言葉に立ち戻れるよう、かなり細かく内部リンクを張り巡らせており、多様な用語を網羅しています。興味のある内容に直接アクセスし、疑問の解決にお役立ていただければと思います。【※この記事にはプロモーションが含まれています。MQL5を使って自作したEAをシステムトレードに利用するには、取引プラットフォームとしてMT5を提供しているFX会社に口座を開設しなくてはいけません。TesterWithdrawal関数は、バックテスト環境での出金動作をシミュレートするために使用されます。IndicatorCreate関数は、MqlParam構造体型のパラメータの配列に基づいて作成された特定のテクニカルインジケータのハンドルを返します。OnTester関数を利用したサンプルコードも掲載しているのですが、同じ記事内で解説するには、ちょっと長くて複雑だったもので、別記事にして数回に分けて解説しています。PositionSelect関数は、特定のシンボルに基づいて取引ポジションを選択するために使用されます。TerminalInfoInteger関数は、MQL5プログラム環境の対応するプロパティの値を返すために使用されます。HistoryOrderSelect関数は、取引履歴内の特定の注文を選択するために使用されます。この関数を使用することで、指定された注文チケットに基づいて履歴内の注文を選び出し、詳細な情...スポンサーリンク【MQL5】ArrayIsSeries関数について【MQL5】ArrayIsDynamic関数についてホームMQL5リファレンススポンサーリンクスポンサーリンクスポンサーリンクプロフィールエムキューエルシステムトレーダー。プログラミング経験ゼロ・四則演算も怪しい所から独学でMQL5を習得。使ったMT5用EAの作り方を発信中。EAを作ろうブログ.メニューMQL5でEAを作ろう講座EA制作お役立ち記事MQL5リファレンスおススメのMT5・MQL5対応FX業者お問い合わせホーム検索トップサイドバータイトルとURLをコピーしました。