iEnvelopesOnArray()関数
iEnvelopesOnArray()関数は、配列に格納された価格データからエンベロープを算出し、その値を返します。
配列内の価格データを使用するため、通貨ペア名、時間枠、適用価格の指定は必要としません。
価格データは事前に用意しておく必要があります。
エンベロープは左から右に(古い価格データから新しい価格データに向かって)計算されます。右から左に(新しい価格データから古い価格データに向かって)計算するためには、ArraySetAsSeries()関数を使用します。
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)が上抜けたら、注文処理を実行するというスクリプトです。