重发一贴,请老师指导一下

想跟各位大佬和老师咨询下,以下第4条和第5条应该怎样实现??

策略想表达的:

1.求出前N天的涨跌幅

2.统计出前N天中涨幅1%以内的数量,1%-2%的数量,2%-3%的数量,3%.........以此类推

3. 假设第二条里A=涨幅1%以内的数量,B=2%-3%的数量,C=3%-4%的数量.......那么每天开盘比较一下谁的数量最多,也就是比较一下ABC......这些变量的大小,然后返回的不是统计到的数量,而是对应的变量名称。

4.比如今天开盘获取到前N根bar中涨幅1%以内的数量是最多的,即变量A是最大的。那么就用今天的OPEN*1%,如果B是最大的那就OPEN*2%,以此类推。

5.因为ABCDE中的两个或者更多有可能是相等的,如果使用变量AAA=ABCDE其中最大的,假设ABCDE分别为2  4  4  5  6,那么变量AAA就等于4;如果我在条件语句中使用IF(变量AAA=4),那就分不清到底应该使用B还是使用C。所以我想让他返回名称而不是返回对应的数值

问题1:我这个代码想让他智能一些,比如过去N根bar的涨幅中1%以内的最多,那么就用OPEN*1%画一条线,B最多就用OPEN*2%画一条线,如果AB相等就用OPEN分别乘,然后画两条线。

问题2:TBL语言中只有MAX函数能判断两个数值的大小,返回的也是数值。请问有没有类似简语言里MAX1函数效果的函数,能一次判断多个数值里的最大值,并且返回的是相应的变量名称?? 是否只能用数组解决??


最后写个伪代码表达一下想表达的意思

Params

Vars

Events

   onBar(ArrayRef<Integer> indexs)

   {

    变量A= 过去N根bar中涨跌幅1%以内的数量;

    变量B = 过去N根bar中涨跌幅1%-2%的数量;

   变量 C= 过去N根bar中涨跌幅2%-3%的数量;

   变量 D= .........................

  变量AAA=其中数值最大的变量(A,B,C,D,E.......);(返回结果:变量AAA=A/B/C/D.....)


  IF( 变量AAA = B AND 变量AAA=C)//意思就是如果变量B和变量C的数值是相等的(B=C同时又都是ABCDE中最大的)

   {

     画线:OPEN*0.01

     画线:OPEN*0.02

   }

   }

麻烦老师指导一下编写逻辑
原贴几天没人回,重发求解答……
老师请帮忙写一下代码
A_GetMarginRate函数这样写编译错?请指导
请问一下,没有按照设定的逻辑,管理员指导一下
请老师指导表达
程序编译报错,老师请帮忙看一下
交易助手撤单后未重发
无法订阅行情 ,请老师指导
老师改一下

1.求出前N天的涨跌幅

我建议你先想好第一个问题,前N天涨跌幅指什么

一般意义涨跌幅为  (close-open)/close[1];

也可以是(close-close[1])/close[1];

如果你这里的N对应着回溯的周期,那么就是

(close-close[N])/close[N];

意思是前N天的当日涨跌幅。

那就只是涨跌幅了

定义序列变量a

a = (close-open)/close[1];

对a回溯就是N天前的涨跌幅