打印本文打印本文 关闭窗口关闭窗口

powerl**guage 里怎么得到MACD面积啊

作者:MC 来源:cxh99.com 发布时间:2018年02月28日
  • MC用户求助:

    一、关于图表的面积,可以参考一下数学上的定积分的求解原理,通过求解曲面上所有柱子的高度之和;而在MACD中,柱子的高度是由价格决定的,不受视觉上放大放小的影响,忽略柱子之间的间隙,因为这个间隙会受到视觉上放大放小的影响,我们只需要考虑某片区域柱子的数量和高度就可以了,重要的是不同区域之间的比较。
    二、下面以求解MACD中红柱子(即“MACDDiff”)的面积来举例说明其中的逻辑,其它的面积求解原理相同。
    inputs: FastLength( 12 ), SlowLength( 26 ), MACDLength( 9 ) ;
    variables: var0( 0 ), var1( 0 ), var2( 0 ), var2up(0), var2down(0), flag(0);

    var0 = MACD( Close, FastLength, SlowLength ) ;
    var1 = XAverage( var0, MACDLength ) ;
    var2 = var0 - var1 ;

    Plot1( var0, "MACD" ) ;
    Plot2( var1, "MACDAvg" ) ;
    Plot3( var2, "MACDDiff" ) ;
    Plot4( 0, "ZeroLine" ) ;

    condition1 = var2 crosses over 0 ;     
    if condition1 then begin
            Alert( "Bullish alert" );
            flag=1;
            var2down=0;
            end
    else 
    begin 
    condition1 = var2 crosses under 0 ;
    if condition1 then begin
            Alert( "Bearish alert" ) ;
            flag=-1;
            var2up=0;
            end;
    end;

    if flag=1 then
    var2up=var2up+var2
    else if flag=-1 then
    var2down=var2down+var2;

    print(date:7:0,time:7:0," currentbar=",currentbar," var2up=",var2up," var2down=",var2down);、下面以求解MACD中红柱子(即“MACDDiff”)的面积来举例说明其中的逻辑,其它的面积求解原理相同。
    inputs: FastLength( 12 ), SlowLength( 26 ), MACDLength( 9 ) ;
    variables: var0( 0 ), var1( 0 ), var2( 0 ), var2up(0), var2down(0), flag(0);

    var0 = MACD( Close, FastLength, SlowLength ) ;
    var1 = XAverage( var0, MACDLength ) ;
    var2 = var0 - var1 ;

    Plot1( var0, "MACD" ) ;
    Plot2( var1, "MACDAvg" ) ;
    Plot3( var2, "MACDDiff" ) ;
    Plot4( 0, "ZeroLine" ) ;

    condition1 = var2 crosses over 0 ;     
    if condition1 then begin
            Alert( "Bullish alert" );
            flag=1;
            var2down=0;
            end
    else 
    begin 
    condition1 = var2 crosses under 0 ;
    if condition1 then begin
            Alert( "Bearish alert" ) ;
            flag=-1;
            var2up=0;
            end;
    end;

    if flag=1 then
    var2up=var2up+var2
    else if flag=-1 then
    var2down=var2down+var2;

    print(date:7:0,time:7:0," currentbar=",currentbar," var2up=",var2up," var2down=",var2down);

打印本文打印本文 关闭窗口关闭窗口