Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:下面这样写, 假如我设置的参数符合ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2,

1楼
OscarDeng 发表于:2020/11/16 16:53:41
下面这样写, 假如我设置的参数符合ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2, msgout 和 explain 为什么会显示不出来? 


runmode: 0; //在逐K线模式下
IF BARPOS>EXTGBDATA('T') THEN//程序运行虽然是逐K线模式下, 但是是每个tick都会运行一次, 只是买卖在K线完成后才运行。 MSGOUT 不是逐K线模式的, 是TICK模式的, 所以才会判断每步运行一次msgout,. 
BEGIN
EXTGBDATASET('T',BARPOS);
CC:TIME=093100 OR TIME=143100;
MSGOUT(ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2 ,'输入参数有误,立即停止交易') ;
    MSGOUT(C<BELOWPRICE2*0.97 AND CC,'价格低于最低价3%,考虑清楚是否需要止损?');
    EXPLAIN(ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2 ,'输入参数有误,立即停止交易');
    EXPLAIN(C<BELOWPRICE2*0.97 AND CC,'价格低于最低价3%,考虑清楚是否需要止损?');
END
2楼
FireScript 发表于:2020/11/16 16:56:24
 你是后面整个代码块都 在

IF BARPOS>EXTGBDATA('T') THEN//

这个条件后面吗?

那你在
工具-数据管理-全局变量 这里看下这个全局变量t值是否正常,或者是值过大导致if条件无法满足。
3楼
FireScript 发表于:2020/11/16 16:59:16
 如过你某次把数据拉的特别大,你后面如果数据量少于这个T。if条件都无法满足的。你手工重置下全局变量试下。
4楼
OscarDeng 发表于:2020/11/30 11:49:53
应该不会少于T的, 每个合约都已经够长了, 我试了几次,  msgout 和 explain 显示不出来。 


runmode: 0; 
IF BARPOS>EXTGBDATA('T') THEN
BEGIN
EXTGBDATASET('T',BARPOS);
CC:TIME=093100 OR TIME=143100;
MSGOUT(ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2 ,'输入参数有误,立即停止交易') ;
    MSGOUT(C<BELOWPRICE2*0.97 AND CC,'价格低于最低价3%,考虑清楚是否需要止损?');
    EXPLAIN(ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2 ,'输入参数有误,立即停止交易');
    EXPLAIN(C<BELOWPRICE2*0.97 AND CC,'价格低于最低价3%,考虑清楚是否需要止损?');
END
5楼
FireScript 发表于:2020/11/30 13:21:02
  你手工重置下全局变量或者把BARPOS>EXTGBDATA('T') 作为变量条件直接输出看下就知道了。另外测试时候把msgout 和explain的条件设为1.  就能判断到底卡在那个环境了。
6楼
OscarDeng 发表于:2020/12/16 8:45:21
把下面的程序放在外面就能执行了, 这是为什么?  IF BARPOS>EXTGBDATA('T') THEN  这个语句之前是你给我的, 为什么不行?

MSGOUT(ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2 ,'输入参数有误,立即停止交易') ;
 MSGOUT(C<BELOWPRICE2*0.97 AND CC,'价格低于最低价3%,考虑清楚是否需要止损?');
    EXPLAIN(ABOVEPRICE1<BELOWPRICE1 OR BELOWPRICE1<BELOWPRICE2 ,'输入参数有误,立即停止交易');
    EXPLAIN(C<BELOWPRICE2*0.97 AND CC,'价格低于最低价3%,考虑清楚是否需要止损?');
7楼
FireScript 发表于:2020/12/16 9:25:26
你现在情况是所有的品种都共享一个T的值。你白银现在就100个K,但是之前某次你在螺纹你加载了200个K,那么这个T就是200.  此外就是T的值只会增不会变下,你某次在图表上加载了很大的数据量,那么这个T值也会自然保存一个很大的值,导致后续都无法满足。

你在工具-数据管理-全局变量  里面看下T的值。
然后你在图表上输出看下BARPOS。判断下,比较下大小。


这个代码使用很有局限性的,不能多品种共享,也不能随意手工扩大数据量。所以你只能每次使用之前,手工重置下这个全局变量。

共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in .03027 s, 3 queries.