以下是我的止损代码。在前台运行没有问题,但是在后台,运行时,从监视输出可以发现,“支撑位”在STEP_STOP<>1的情况下,
支撑位=-6。而且可以确定的是,在修了“TENTERPRICE-6” 为 “TENTERPRICE-8”后,“支撑位”在STEP_STOP<>1的情况下,
支撑位=-8。
彻底晕了,请高手斧正!!!
阶梯高位:=IF (TOPENBAR+1<=5,TENTERPRICE+6,HHV(HIGH,STEP_ZY)+2);
阶梯低位:=IF (TOPENBAR+1<=5,TENTERPRICE-6,LLV(LOW,STEP_ZY)-2);
IF (TBuyHoldingEx(Account, '', 1)>0 OR TsellHoldingEx(Account, '', 1)>0) THEN STEP_STOP:=MOD(TOPENBAR,5);
IF STEP_STOP=1 THEN 低位保持:=阶梯低位;
低位保持:=IFELSE ( 低位保持<REF(低位保持,1) AND TOPENBAR<>1,REF(低位保持,1),低位保持);
支撑位:IF(TBuyHoldingEx(Account, '', 1)>0 ,低位保持,drawnull);
IF STEP_STOP=1 THEN 高位保持:=阶梯高位;
高位保持:=IFELSE ( 高位保持>REF(高位保持,1) AND TOPENBAR<>1 ,REF(高位保持,1),高位保持);
压力位:IF(TsellHoldingEx(Account, '', 1)>0 ,高位保持,drawnull);
我觉得,它现啥错都可以接受,为什么会有“-6”、"-8"这个值,如何往下查呢?
具体使用DEBUGFILE调试输出结果看看到底问题出在哪个函数上面画,另外请确认使用的是2.2最新版
今天再试,问题定位了(简化代码):
aa:=tavgenterprice+6;
bb:=tavgenterprice-6;
TT:=TOPENBAR;
阶梯高位:=IFELSE (TT+1<=5,aa,HHV(HIGH,STEP_ZY)+2);
阶梯低位:=IFELSE (TT+1<=5,bb,LLV(LOW,STEP_ZY)-2);
IF (TBuyHoldingEx(Account, '', 1)>0 OR TsellHoldingEx(Account, '', 1)>0) THEN STEP_STOP:=MOD(TOPENBAR,5)+1;
CC:=REF(阶梯低位,1);
结果是,cc=-6, 阶梯低位=正常值。
再试 : bb:=tavgenterprice;
结果: CC=0;
问题清楚了:错误是出在tavgenterprice上(用TENTERPRICE也是一样的结果)。
我想不通的是,CC:=REF(阶梯低位,1); 此时已经与“tavgenterprice”无关了啊?再就是“阶梯低位"正常,为什么取了一下REF就不对了呢?
高手帮一下吧!!!
[此贴子已经被作者于2011-1-12 11:59:10编辑过]
实际持仓没有ref这个属性
[此贴子已经被作者于2011-1-13 22:58:03编辑过]