开拓者期货期权程序化系统交易论坛

标题: 全局变量只有下个BAR才能改变,那无法控制当前BAR的TICK交易? [打印本页]

作者: jesseyoung    时间: 2014-11-7 10:38:10     标题: 全局变量只有下个BAR才能改变,那无法控制当前BAR的TICK交易?

全局变量只有下个BAR才能改变,那无法控制当前BAR的TICK交易?
作者: 小米    时间: 2014-11-7 13:47:01

全局变量是即时改变的,没有等到下个bar才改变一说。
作者: jesseyoung    时间: 2014-11-9 15:25:00

小米 发表于 2014-11-7 13:47
全局变量是即时改变的,没有等到下个bar才改变一说。


         P= GetGlobalVar(0);
        If(MarketPosition==1) // 有多仓的情况
         {
                        SetGlobalVar(0,0);

                        If( BarStatus == 2 and (P==1)  )
                        {
                        FileAppend(LogName, "平仓++++++++++++++++++");       
                        }
}
     下面代码是如果成交设置P==1
本来是只想向LOG写一次,下一tick获取P的新值改为0后就不写。
可是程序总是要一个bar期间每个tick都写log。


作者: 小米    时间: 2014-11-10 09:42:47

jesseyoung 发表于 2014-11-9 15:25
P= GetGlobalVar(0);
        If(MarketPosition==1) // 有多仓的情况
         {

将0号全局变量赋值 为1的语句在哪里?
作者: hbzz8888    时间: 2014-11-10 12:20:18


作者: jesseyoung    时间: 2014-11-10 15:16:16

小米 发表于 2014-11-10 09:42
将0号全局变量赋值 为1的语句在哪里?

完整语句如下:
         P= GetGlobalVar(0);
        If(MarketPosition==1) // 有多仓的情况
         {
                        SetGlobalVar(0,0);

                        If( BarStatus == 2 and (P==1)  )
                        {
                        FileAppend(LogName, "平仓++++++++++++++++++");        
                        }
        }
        if (MarketPosition==0 And BuyCondition )
         {

                        SetGlobalVar(0, 1);       

        }

作者: jesseyoung    时间: 2014-11-10 15:18:52

按道理下一个tick就不会进入写文件
可是我整个bar都在写文件,很影响效率,放弃实盘写log了
作者: 小米    时间: 2014-11-10 15:51:21

jesseyoung 发表于 2014-11-10 15:16
完整语句如下:
         P= GetGlobalVar(0);
        If(MarketPosition==1) // 有多仓的情况

其实你的代码还不完整的吧??不然,都没有看到任何的指令语句,怎么会有marketposition的改变呢?
如果你只是想验证全局变量是当前TICK赋值 后就能改变其值还是这个bar结束后方可改变的话,
我建议你不必要使用当前这个带marketposition的条件呀。。可以直接看TB公式指南里的“tick计数器”这个模板,
或是将你的条件里去掉marketposition等条件后再来试试。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2