以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  后台程序化风控策略的问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=142956)

--  作者:chyhao
--  发布时间:2016/11/18 13:49:35
--  后台程序化风控策略的问题
DZS:=C<TAVGENTERPRICEEX2(\'\',\'\',0)-3 OR C>TAVGENTERPRICEEX2(\'\',\'\',0)+3;

IF DZS && TBUYHOLDINGEX(\'\',\'\',2)>0 then BEGIN
   TSELL(1,TBUYHOLDINGEX(\'\',\'\',2),LMT,C,0,\'\',\'\');
   END;

我写了一个后台风控策略,15分钟周期,监控螺纹1701合约,固定轮询模式,间隔1秒,然后我自己手工开了螺纹1701的多单,开仓均价为2678,但是发现当最新价格跌破2678-3=2675时,这个风控策略都没有自动发卖出指令,请问是什么问题呢?谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2016/11/18 14:04:43
--  

在有or判断的句子里面,把要先计算的都先括号起来,比如这样:

DZS:=(C<TAVGENTERPRICEEX2(\'\',\'\',0)-3) OR (C>TAVGENTERPRICEEX2(\'\',\'\',0)+3);

IF DZS && TBUYHOLDINGEX(\'\',\'\',2)>0 then BEGIN
   TSELL(1,TBUYHOLDINGEX(\'\',\'\',2),LMT,C,0,\'\',\'\');
   END;
不然or会先计算or附近的,

 

你再用上面的代码试试看

 

用户再加几句调试dzs,TAVGENTERPRICEEX2(\'\',\'\',0),和c的调试代码


--  作者:chyhao
--  发布时间:2016/11/21 14:26:36
--  

加了括号试过了,还是不行哦


--  作者:jinzhe
--  发布时间:2016/11/21 14:29:38
--  
那么用户按照我讲的,输出信息没?
用debugfile来输出信息