全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
求大佬帮忙转换通达信指标公式成TBQ
2022-07-13 11:10

N:=20;
N1:=4;
N2:=60;
M:=40;
M1:=8;
M2:=120;

DIR1:=ABS(CLOSE-REF(CLOSE,N));
VIR1:=SUM(ABS(CLOSE-REF(CLOSE,1)),N);
ER1:=DIR1/VIR1;
CS1:=ER1*(2/(N1+1)-2/(N2+1))+2/(N2+1);
CQ1:=CS1*CS1;
AMA1:=EMA(DMA(CLOSE,CQ1),2);

DIR2:=ABS(CLOSE-REF(CLOSE,M));
VIR2:=SUM(ABS(CLOSE-REF(CLOSE,1)),M);
ER2:=DIR2/VIR2;
CS2:=ER2*(2/(M1+1)-2/(M2+1))+2/(M2+1);
CQ2:=CS2*CS2;
AMA2:=EMA(DMA(CLOSE,CQ2),2);
买线:REF(AMA1,1),COLORMAGENTA;
界点:REF(AMA2,1),COLORGRAY;

zhangnj

2022-07-13 14:29
bingobond
@zhangnj

非常感谢,导入TBQ后显示结果跟通达信里不一样,通达信里两条线的交叉点没那么多,买点和界点显示数值也不一样

2022-07-13 15:07
zhangnj

Params
    Numeric N(20);
    Numeric N1(4);
    Numeric N2(60);
    Numeric M(40);
    Numeric M1(8);
    Numeric M2(120);

Vars
   
    Series<Numeric>    DIR1;

    Series<Numeric>    VIR1;
    Series<Numeric>    ER1;
    Series<Numeric> CS1;
    Series<Numeric>    CQ1;
    Series<Numeric>    AMA1;
        
    Series<Numeric>    DIR2;
    Series<Numeric>    VIR2;
    Series<Numeric>    ER2;
    Series<Numeric>    CS2;
    Series<Numeric>    CQ2;
    Series<Numeric>    AMA2;
    


    
Events

    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        DIR1=ABS(CLOSE-CLOSE[N]);
        VIR1=Summation(ABS(CLOSE-CLOSE[1]),N);
        ER1=DIR1/VIR1;
        CS1=ER1*(2/(N1+1)-2/(N2+1))+2/(N2+1);
        CQ1=CS1*CS1;
        AMA1=XAverage(AverageFC(CLOSE,CQ1),2);
        
        DIR2=ABS(CLOSE-CLOSE[M]);
        VIR2=Summation(ABS(CLOSE-CLOSE[1]),M);
        ER2=DIR2/VIR2;
        CS2=ER2*(2/(M1+1)-2/(M2+1))+2/(M2+1);
        CQ2=CS2*CS2;
        AMA2=XAverage(AverageFC(CLOSE,CQ2),2);
        
        PlotNumeric("买线",AMA1[1]);
        PlotNumeric("界点",AMA2[1]);
    }

 

2022-07-13 14:30
bingobond

2022-07-13 15:04
bingobond

2022-07-13 15:05
Bryan2020

我在前面那个哥们的基础上改了一下,现在应该和你通达信里面的表现是一致的了。

Params
    Numeric N(20);
    Numeric N1(4);
    Numeric N2(60);
    Numeric M(40);
    Numeric M1(8);
    Numeric M2(120);

Vars
   
    Series<Numeric>    DIR1;

    Series<Numeric>    VIR1;
    Series<Numeric>    ER1;
    Series<Numeric> CS1;
    Series<Numeric>    CQ1;
    Series<Numeric>    AMA1;
        
    Series<Numeric>    DIR2;
    Series<Numeric>    VIR2;
    Series<Numeric>    ER2;
    Series<Numeric>    CS2;
    Series<Numeric>    CQ2;
    Series<Numeric>    AMA2;
    Series<Numeric> dma1;
    Series<Numeric> dma2;
    
Defs
  Numeric DMA(Numeric dmap,Numeric A)
  {
      Numeric tempdmap;
      If(CurrentBar == 0)
        tempdmap =close;
      Else
        tempdmap = dmap * (1 - A) + Close * A;
      Return tempdmap;
  }

    
Events

    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        DIR1=ABS(CLOSE-CLOSE[N]);
        VIR1=Summation(ABS(CLOSE-CLOSE[1]),N);
        ER1=DIR1/VIR1;
        CS1=ER1*(2/(N1+1)-2/(N2+1))+2/(N2+1);
        CQ1=CS1*CS1;
        dma1 =dma(dma1[1],CQ1);
        AMA1=XAverage(dma1,2);
        
        DIR2=ABS(CLOSE-CLOSE[M]);
        VIR2=Summation(ABS(CLOSE-CLOSE[1]),M);
        ER2=DIR2/VIR2;
        CS2=ER2*(2/(M1+1)-2/(M2+1))+2/(M2+1);
        CQ2=CS2*CS2;
        dma2 =dma(dma2[1],CQ2);
        AMA2=XAverage(dma2,2);
        
        PlotNumeric("买线",AMA1[1]);
        PlotNumeric("界点",AMA2[1]);
    }

2022-07-13 16:43
bingobond
@Bryan2020

可以了,非常感谢

2022-07-13 18:17
您未登录,请先 登录注册 后发表评论
顶部