定義済みインジケーターを呼び出しGMMAを作る

概要

callIndicatorメソッドを使えば、定義済みのインジケーターを呼び出すことが可能です。 定義済みのEMAを呼び出してGMMAの作成方法について説明します。

他の人が作成したインジケーターを追加することも可能ですが、作成者により悪意を持ったコードが埋め込まれている可能性があります。信頼できるコードのみを使用するようご注意ください。
参照:callIndicator
GMMAの説明はアイネット証券様のサイトを参照してください。 アイネット証券:GMMA(複合型移動平均線)
このサンプルを実行する前に、tutor.EMAを登録してください 参照:指数移動平均を作る

callIndicatorの使用例

callIndicatorの例として、EMAを2つ追加します。

{
    indicatorName:"callIndicatorSample"	
    ,indicatorType: INDICATOR_TYPE.ITEM
    ,init:function(){
        this.ema1=this.callIndicator('tutor.EMA',{//1
            emaPeriod:25
        });
        this.ema2=this.callIndicator('tutor.EMA',{//2
            emaPeriod:50,
            lineColor:'cyan',
            lineDash:[],
            lineWidth:3
        })
    }
    //,calc:function(index,times,opens,highs,lows,closes){}//3
}
1
定義済みのtutor.EMAを呼び出しています。
2
上記とは別に、tutor.EMAを呼び出しています。 呼び出すインジケーターにパラメーターを渡す場合は、callIndicatorの第2引き数にオブジェクトを渡します。
3
callIndicatorメソッドで定義済みのインジケーターを使用するだけの場合、calcメソッドのオーバーライドは不要です。 参照:calc

GMMA

実装例は下記です。

{
    indicatorName:"tutor.GMMA"	
    ,indicatorType: INDICATOR_TYPE.ITEM
    ,init:function(){
        var params=this.params;
          this.shortEmas=params.shortPeriods.map(function(period){
            return this.callIndicator('tutor.EMA',{emaPeriod:period,lineColor:params.shortColor,lineDash:[],lineWidth:1}) 
        },this);
        this.longEmas=params.longPeriods.map(function(period){
            return this.callIndicator('tutor.EMA',{emaPeriod:period,lineColor:params.longColor,lineDash:[],lineWidth:1})
        },this)
    }
    ,params:[
    {shortPeriods:[3,5,8,10,12,15]},
        {longPeriods:[30,35,40,45,50,60]},
        {shortColor:'cyan'},
        {longColor:'pink'}
    ]
}

補足

callIndicatorはネストすることが可能です。 例えば、上記のcallIndicatorを使用したGMMAを、別のインジケーターからcallIndicatorを使って呼び出すことが可能です。

その場合、再帰呼び出しにならないようにご注意ください。