全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
代码转换
lr1900lr 分享到
2023-08-25 17:03

老师您好,我是一名TB的初学者,我想把同花顺和通信达里面的lon长线指标转换成为TB的代码,经过我自己的改写,一直都无法实现等效转换,请老师帮忙,谢谢!!!

这一段是同花顺中lon长线的代码


LC:=REF(CLOSE, 1);

VID:=SUM(VOL, 2)/((HHV(HIGH,2)-LLV(LOW,2))*100);

RC:=(CLOSE-LC)*VID;

LONG:=SUM(RC, 0);

LONGMA1:=SMA(LONG,10,1);

LONGMA2:=SMA(LONG,20,1);

LON:(LONGMA1-LONGMA2),COLORSTICK;

LONGMA:MA(LON, 10);


这一段是python版的代码

import pandas as pd

def lon(df, n=10):

   lc = df[\'close\'].shift(1)

   a = (df[\'high\'].rolling(2).max() - df[\'low\'].rolling(2).min()) * 100

   vid = df[\'volume\'].rolling(2).sum() / a

   rc = (df[\'close\'] - lc) * vid

   long = rc.cumsum()

   dif = long.ewm(com=9, adjust=False).mean()

   dea = long.ewm(com=19, adjust=False).mean()

   lon = dif - dea

   return pd.DataFrame({\'lon\': lon, \'lonma\': lon.rolling(n).mean()}, index=df.index)


这一段是我自己写的代码

Params

Numeric N(10); // DIFF和DEA的周期参数


Vars

Series<Numeric> LC;

Series<Numeric> VID;

Series<Numeric> RC;

Series<Numeric> LONG1;

Series<Numeric> DIFF;

Series<Numeric> DEA;

Series<Numeric> LON;

Series<Numeric> LONMA;

Series<Numeric> LONT;

Series<Numeric> H1;

Series<Numeric> L1;


Events

OnBar(ArrayRef<Integer> indexs)

{

{

LC = close [1];

H1 = HighD (2);

L1 = LowD (2);

VID = SummationFC(V, 2) /(( H1 - L1 )* 100);

RC = (Close - LC) * VID;

LONG1 = Summation(RC, N);

DIFF = SMA(LONG1, 10, 1);

DEA = SMA(LONG1, 20, 1);

LON = DIFF - DEA;

LONMA = SMA(LON, N,0);

}

PlotNumeric (\"Lon\", LON);

PlotNumeric (\"LONG1\", LONG1);

}


然后在我自己写的代码中,画线是画在主图里面,我想把图画在附图。希望老师指导,非常感谢!!!

lucky0596

可私

2023-09-14 15:31
Amita2012

一个简单的方法,就是把你策略公式的属性中显示方式,由主图改为子图,这样就显示在副图中了,另外同花顺里的MA,对应的函数是AverageFC,不是SMA,高低点也取错了,结果肯定不同了,供参考吧

2023-09-14 18:10
您未登录,请先 登录注册 后发表评论
顶部