设为首页收藏本站

 找回密码
 注册
查看: 4251|回复: 4
打印 上一主题 下一主题

全局变量初始化问题(已经解决,附出错代码) [复制链接]

Rank: 5Rank: 5

精华
1
UID
404
积分
1434
帖子
236
主题
74
阅读权限
60
注册时间
2007-9-23
最后登录
2014-7-25
跳转到指定楼层
1#
发表于 2011-2-16 13:39:19 |显示全部楼层 |倒序浏览
本帖最后由 skyline 于 2011-2-17 19:55 编辑

Params
        Numeric Position(0);
Begin
        If(BarStatus==0)
        {
                SetGlobalVar(0,Position);

        }//初始化全局变量

        Commentary("GlobalVar0="+Text(GetGlobalVar(0)));

用参数初始化全局变量,早上把0改成1,为什么最后一根BAR输出还是0?前面的bar都是1
开盘后重新登录后改参数是正常的,而开盘前修改了没用。


--------------------------------------------------------------------------------------------------------------------
找到问题了,引用了在最后一根bar有效的函数导致出错,忘记加barstatus==2限定了。
但是很奇怪,参数只有1出错,如果改成0或2或其他数字都不会出错,不知道是不是BUG?

Params

        Numeric Position(1);
        Numeric UpBand(1.5);       
        Numeric DownBand(1.5);
        Numeric Length(400);       
        Numeric EntryRate(8.5);
        Numeric Lots(1);
Vars
        Numeric BuyRevenue;
        Numeric SellRevenue;               
        NumericSeries SpreadRate;
        Numeric UpLine;                //上轨
        Numeric DownLine;                //下轨
        NumericSeries MidLine;        //中间线
Begin
        If(BarStatus==0)
        {
                SetGlobalVar(0,Position);

        }//初始化全局变量
       
        If(Data0.Close != InvalidNumeric && Data1.Close != InvalidNumeric)
        {
        SpreadRate = Data1.Close - Data0.Close;
            MidLine = AverageFC(SpreadRate,Length);
            UpLine = MidLine + UpBand;
            DownLine = MidLine - DownBand;
               
                BuyRevenue = Data1.Q_BidPrice - Data0.Q_AskPrice;
                SellRevenue= Data1.Q_AskPrice - Data0.Q_BidPrice;

                If(BuyRevenue>EntryRate And BuyRevenue> UpLine And GetGlobalVar(0)==0 And High!=Low)
                {
                        Data0.A_SendOrder(Enum_Buy,Enum_Entry,Lots,Data0.Q_AskPrice+10);
                        Data1.A_SendOrder(Enum_Sell,Enum_Entry,Lots,data1.Q_BidPrice-10);
                        SetGlobalVar(0,1);
                }

                If(SellRevenue<DownLine And GetGlobalVar(0)==1 And High!=Low)
                {
                        Data0.A_SendOrder(Enum_Sell,Enum_Exit,Lots,Data0.Q_BidPrice-10);
                        Data1.A_SendOrder(Enum_Buy,Enum_Exit,Lots,data1.Q_AskPrice+10);
                        SetGlobalVar(0,0);
                }
        }

        Commentary("GlobalVar0="+Text(GetGlobalVar(0)));
End

Rank: 5Rank: 5

精华
1
UID
404
积分
1434
帖子
236
主题
74
阅读权限
60
注册时间
2007-9-23
最后登录
2014-7-25
2#
发表于 2011-2-16 17:30:10 |显示全部楼层
0改成1,是将Position默认值改成1,是吧?
最后一个bar变成历史bar的时候,输出还是0吗? ...
lh948 发表于 2011-2-16 14:14

0改成1,是将Position默认值改成1,是吧?   是的
最后一个bar变成历史bar的时候,输出还是0吗?
我是用全局变量控制下单的,因为有仓位了,所以把0改成1,但是点启动交易的时候还是下单出去,由于没开盘被拒绝,试了几次都是这样

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
404
积分
1434
帖子
236
主题
74
阅读权限
60
注册时间
2007-9-23
最后登录
2014-7-25
3#
发表于 2011-2-16 17:32:05 |显示全部楼层
回复  skyline


    参数直接设置就可以了,不用赋值变量,你这样初始化会在每次断线重连或加载公式时都 ...
欲速不达 发表于 2011-2-16 14:09

怎么参数设置全局变量?

如果单纯的参数,后面是没法给他赋值修改的

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
404
积分
1434
帖子
236
主题
74
阅读权限
60
注册时间
2007-9-23
最后登录
2014-7-25
4#
发表于 2011-2-17 07:58:47 |显示全部楼层
本帖最后由 skyline 于 2011-2-17 08:00 编辑

今天确认了,开盘之前无论怎么修改参数,最后一根bar的全局变量都为0.请问是什么机制导致?
我写的套利交易有隔夜的,第二天必须我手动设置下目前的仓位,不知道我这种需求还有什么其他更好的方法实现不?
Params
        Numeric Position(1);
Begin
        If(BarStatus==0)
        {
                SetGlobalVar(0,Position);

        }//初始化全局变量
       
        If(Data0.Close != InvalidNumeric && Data1.Close != InvalidNumeric)
        {

                If(开仓条件 And GetGlobalVar(0)==0 And High!=Low)
                {
                        Data0.A_SendOrder
                        Data1.A_SendOrder
                        SetGlobalVar(0,1);
                }

                If(平仓条件 And GetGlobalVar(0)==1 And High!=Low)
                {
                        Data0.A_SendOrder
                        Data1.A_SendOrder
                        SetGlobalVar(0,0);
                }
        }

        Commentary("GlobalVar0="+Text(GetGlobalVar(0)));
End

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
404
积分
1434
帖子
236
主题
74
阅读权限
60
注册时间
2007-9-23
最后登录
2014-7-25
5#
发表于 2011-2-17 18:24:05 |显示全部楼层
谁能帮忙解答下,先谢了

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-11 16:01

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部