你使用循环是为了实现什么操作思路。
你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的
你使用循环是为了实现什么操作思路。
你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的
k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。
而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。
或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?
k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。
而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。
或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?
你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。
不过你需要先了解pel的语法特点以及其图表后台的机制问题。
holding>0代表多头持仓,
holding<0代表多空持仓,
holding=0代表持仓为0,
例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况)
if holding>0 and ENTERPRICE<close+10*mindiff then begin
sell();
BUYSHORT();
end
你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。
不过你需要先了解pel的语法特点以及其图表后台的机制问题。
holding>0代表多头持仓,
holding<0代表多空持仓,
holding=0代表持仓为0,
例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况)
if holding>0 and ENTERPRICE<close+10*mindiff then begin
sell();
BUYSHORT();
end
一样的。开仓以来以来的最高价
HH:hhv(high,ENTERBARS);
直接拿这个和当前行情比较就行了。
buy(BARPOS=1,1,MARKETr);
if holding>0 and hhv(high,ENTERBARS)<close+10*mindiff and ENTERBARS>0 then begin
sell();
BUYSHORT();
end
hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。
buy(BARPOS=1,1,MARKETr);
if holding>0 and hhv(high,ENTERBARS)<close+10*mindiff and ENTERBARS>0 then begin
sell();
BUYSHORT();
end
hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。