以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=166495)

--  作者:刘永进
--  发布时间:2018/11/15 9:56:19
--  请找出这个语句的毛病,如何修改

n:=rand(2);

if n=1 then

BUY(n=1,手数,MARKET);

  if BARSLAST(n=1)=3 and DYNAINFO(211)<= CLOSE then SELL(DYNAINFO(211)<= CLOSE,手数,MARKET);

  ElseIF BARSLAST(n=1)>3 and REF(CLOSE,3)> CLOSE then SELL(REF(CLOSE,3)> CLOSE,手数,MARKET);

End


请找出这个语句的毛病,如何修改


--  作者:FireScript
--  发布时间:2018/11/15 10:07:00
--  
 n:=rand(2);
len:BARSLAST(n=1);
ref_c:REF(CLOSE,3);
if n=1 then
begin
BUY(n=1,手数,MARKET);
if len=3 and DYNAINFO(211)<= CLOSE
then
SELL(DYNAINFO(211)<= CLOSE,手数,MARKET);
else IF len>3 and ref_c> CLOSE then SELL(ref_c>CLOSE,手数,MARKET);
end

ref,BARSLAST 此类函数不能用在if下面,必须先计算好,然后在if下面调用。DYNAINFO(211)这种动态函数也是不能用在图表上的,会对历史信号代码很大的不利影响。