设为首页收藏本站

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

多品种运行机制 [复制链接]

Rank: 1

精华
0
UID
259001
积分
47
帖子
31
主题
10
阅读权限
10
注册时间
2017-11-11
最后登录
2022-9-15
跳转到指定楼层
1#
发表于 2019-9-30 14:06:23 |只看该作者 |倒序浏览
一个策略单元内,50个品种,公式运行时
(1)从第一个品种第一个bar开始(跑完公式),然后所有品种的第一个bar运行完,才开始运行第二个bar吗?
还是?
(2)从都一个品种的第一个bar开始(跑完公式),第一个品种所有bar都跑完,才开始跑第二个品种的第一个bar,在跑完第二个品种后,依次跑?
(1)(2)那个是正确的

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2019-9-30 15:13:46 |只看该作者
(1)

使用道具 举报

Rank: 1

精华
0
UID
259001
积分
47
帖子
31
主题
10
阅读权限
10
注册时间
2017-11-11
最后登录
2022-9-15
3#
发表于 2019-9-30 16:11:51 |只看该作者
本帖最后由 gwf_13380222 于 2019-9-30 16:18 编辑
小米 发表于 2019-9-30 15:13
(1)


谢谢
但我下面的代码,使用一个全局变量(Global array<Numeric> TotalLong;)来记录品种开仓总数,为何记录的情况是不正确的
Params
        Numeric AvgLen(3);                                          //boll均线周期参数
        Numeric Disp(16);                                           //boll平移参数
        Numeric SDLen(12);                                          //boll标准差周期参数
        Numeric SDev(2);                                            //boll通道倍数参数
       
Vars
        Numeric Price;                                        //关键价格
    Series<Numeric> AvgVal(0);                             //中轨
        Series<Numeric> SDmult(0) ;                            //通道距离
        Series<Numeric> DispTop(0);                            //通道高点
        Series<Numeric> DispBottom(0);                         //通道低点
        Numeric MinPoint;       
        Global Numeric i;
        Global Numeric j;       
        Global Numeric k;
        Global array<Numeric> TotalLong;
        Series<numeric> Ratio(0);
Defs
    Integer LogFile(String str)
    {
        //FileAppend("d:\\my"+FormulaName()+".txt","["+Text(SystemDateTime())+"] "+ str);
        FileAppend("d:\\my"+FormulaName()+".txt","["+DateToString(Date)+"] "+ str);      
        Return 0;
    }
Events
    OnInit()
    {
             FileDelete("d:\\my"+FormulaName()+".txt");      
        LogFile("init......");
    for j=0 to DataCount-1   
    {
        TotalLong[j]=0;
    }                
    }
        OnBar(ArrayRef<Integer> indexs)
        {
        k=CurrentBar;

        Range[i=0ataCount-1]
        {
                // 集合竞价和小节休息过滤
                //If(!CallAuctionFilter()) Return;
               
                //指标计算
                MinPoint = MinMove*PriceScale;                  //最小变动价位
                Price = Close;                                    //关键价格
               
                //平移boll通道计算
                AvgVal = Average(Price,AvgLen);        
                SDmult = StandardDev(Price,SDLen,2)*SDev;
                DispTop = AvgVal[Disp] + SDmult;
                DispBottom = AvgVal[Disp] - SDmult;
                // PlotNumeric("DispTop",DispTop);
               
                TotalLong=MarketPosition;
               
                //系统入场
                If(MarketPosition == 0)
                {
                        If(High >= DispTop[1])
                        {
                                Buy(0,Max(Open,DispTop[1]));
                                TotalLong=1;
                        }
                }
                       
                //系统出场
                If(MarketPosition == 1 And BarsSinceEntry > 0)
                {
                        If(Low <= DispBottom[1])
                        {
                                Sell(0,Min(Open,DispBottom[1]));
                                TotalLong=0;                       
                        }
                }                                 
        }//range over

        LogFile("k="+Text(k)+"  "+TextArray(TotalLong)+"  "+Text(SummationArray(TotalLong)));        
       
}
       

使用道具 举报

Rank: 1

精华
0
UID
259001
积分
47
帖子
31
主题
10
阅读权限
10
注册时间
2017-11-11
最后登录
2022-9-15
4#
发表于 2019-9-30 16:20:51 |只看该作者
记录结果如下,显然是不对的,不知道为什么?
[N/A] init......
[2018-01-02] k=0  [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]  46
[2018-01-03] k=1  [0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]  7
[2018-01-04] k=2  [0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1]  36
[2018-01-05] k=3  [0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1]  28
[2018-01-08] k=4  [0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,1,1,0,1,1,1]  36

使用道具 举报

Rank: 1

精华
0
UID
259001
积分
47
帖子
31
主题
10
阅读权限
10
注册时间
2017-11-11
最后登录
2022-9-15
5#
发表于 2019-10-4 21:22:36 |只看该作者
小米 发表于 2019-9-30 15:13
(1)

再问一下
50个品种,回测时,是按照50个品种内,最短交易记录品种的时间进行回测的,对吗?
如何做到按照最长交易记录品种的时间进行回测尼?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-6 21:30

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部