以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]以下代码有什么问题?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=169573)

--  作者:saintlucifer
--  发布时间:2019/4/25 9:36:44
--  [求助]以下代码有什么问题?

如下:

 

FOR I = 1 TO T DO BEGIN
 V1 := REF(C,I) - REF(O,2*I-1);
 V2 := C - REF(O,I-1);
 A[I] : (V2 - V1) / I,COLORWHITE;
 MAX_A_HHV[I] : HHV(A[I],T*10),COLORRED;
 MIN_A_LLV[I] : LLV(A[I],T*10),COLORGREEN;
END;

 

数组的赋值是不是不能直接这么写?编译可以通过,但是在图上就无法显示出A[I]与其他两个最大最小值,如果我想显示出这三个数的话要怎么写才好?


--  作者:wenarm
--  发布时间:2019/4/25 9:44:10
--  

策略交易中基本上用不到数组这种方式,数组和k线不在一个坐标系内。数组在k线上计算结果是纵向的最后一个。对于整个k线看,每根k的结果就是固定不变的、
数组需要定义。
VARIABLE:A[5]:=0,MAX_A_HHV[5]:=0,MIN_A_LLV[5]:=0;

FOR I = 1 TO T DO BEGIN
 V1 : REF(C,I) - REF(O,2*I-1);
 V2 : C - REF(O,I-1);
 A[I] := (V2 - V1) / I,COLORWHITE;
 MAX_A_HHV[I] := HHV(A[I],T*10),COLORRED;
 MIN_A_LLV[I] := LLV(A[I],T*10),COLORGREEN;
END;

显示必须单独指定显示。

A1:A[1];
bb:MAX_A_HHV[2] ;
cc: MIN_A_LLV[2];

[此贴子已经被作者于2019/4/25 9:50:50编辑过]

--  作者:out-u
--  发布时间:2019/4/25 12:35:04
--  
循环内就得指定下标,你这样肯定是错的。
--  作者:saintlucifer
--  发布时间:2019/4/26 9:35:19
--  

那我这样定义一个临时参数再加一个循环来传导其中一个特定目标的呢,为什么还是没显示?

 

INPUT : T(5,1,50);//自行定义td的值。

TEMP_UP := -100000;//初始定义一个比较小的值
TEMP_DOWN := 100000;//初始定义一个比较小的值

J_UP := 0;
J_DOWN := 0;

VARIABLE:A[5]:=0,MAX_A_HHV[5]:=0,MIN_A_LLV[5]:=0;

 

FOR I = 1 TO T DO BEGIN
 V1 := REF(C,I) - REF(O,2*I-1);
 V2 := C - REF(O,I-1);
 A[I] := (V2 - V1) / I,COLORWHITE;
 MAX_A_HHV[I] := HHV(A[I],T*10),COLORRED;
 MIN_A_LLV[I] := LLV(A[I],T*10),COLORGREEN;
END;

 

FOR J := T TO 1 DO BEGIN
 IF A[J] > TEMP_UP AND A[J] > 0 AND A[J] > REF(MAX_A_HHV[J],1) THEN BEGIN
  TEMP_UP := A[J];
  J_UP := J;
 END;
 IF A[J] < TEMP_DOWN AND A[J] < 0 AND A[J] < REF(MIN_A_LLV[J],1) THEN BEGIN
  TEMP_DOWN := A[J];
  J_DOWN := J;
 END;
END;

 

MAX_A_UP_NOW : TEMP_UP,COLORYELLOW;//最大值
MAX_T_UP : J_UP,LINETHICK0,COLORBLUE;//最大值对应的t

MAX_A_DOWN_NOW : TEMP_DOWN,COLORWHITE;//最大值
MAX_T_DOWN : J_DOWN,LINETHICK0,COLORBLUE;//最大值对应的t


--  作者:wenarm
--  发布时间:2019/4/26 10:01:10
--  

MAX_A_HHV[I] := HHV(A[I],T*10),COLORRED;
 MIN_A_LLV[I] := LLV(A[I],T*10),COLORGREEN;

你这种不符合金字塔pel策略的运行计算机制。hhv等函数计算的条件就是必须是序列变量,而不是元素。元素自己没有最大最小的说法

你这类多维的需求,pel很难实现。