iEnvelopesOnArray()関数

iEnvelopesOnArray()関数は、配列に格納された価格データからエンベロープを算出し、その値を返します。
配列内の価格データを使用するため、通貨ペア名、時間枠、適用価格の指定は必要としません。
価格データは事前に用意しておく必要があります。
エンベロープは左から右に(古い価格データから新しい価格データに向かって)計算されます。右から左に(新しい価格データから古い価格データに向かって)計算するためには、ArraySetAsSeries()関数を使用します。

iEnvelopesOnArray()関数について

iEnvelopesOnArray()関数の()括弧内は次のように指定します。

iEnvelopesOnArray(データ配列, 配列要素数, 計算期間, 計算方法, インジケーターシフト数, 偏差, ライン種類, シフト数)

データ配列
価格データが格納されている配列を指定します。

配列要素数
配列の要素数を指定します。0(ゼロ)は全要素を指定したことになります。

計算期間
移動平均を計算する期間(ローソク足の本数)を整数で指定します。

計算方法
移動平均の計算方法を整数または定数で指定します。

単純移動平均 0 MODE_SMA
指数移動平均 1 MODE_EMA
平滑移動平均 2 MODE_SMMA
加重移動平均 3 MODE_LWMA

インジケーターシフト数
移動平均の表示をシフトする(ずらす)ローソク足の本数を整数で指定します。

偏差
主線からの偏差(%)を数値で指定します。

ライン種類
インジケーターラインの種類を次の表の整数または定数で指定します。

上ライン 1 MODE_UPPER
下ライン 2 MODE_LOWER

シフト数
ローソク足何本分前かを指定します。

サンプルコード

// スクリプトファイルのコード
void OnStart()
{
   if(iEnvelopesOnArray(array, 0, 13, MODE_SMA, 0, 0.1, MODE_UPPER, 0)<Bid)
   {
      OrderSend(・・・
   }
}

上記のサンプルコードは、ユーザー配列内の価格データより算出したエンベロープ(期間13SMA偏差+0.1%)を現在価格(Bid)が上抜けたら、注文処理を実行するというスクリプトです。