设为首页收藏本站

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

请教Crossover的问题 [复制链接]

Rank: 3Rank: 3

精华
0
UID
2416
积分
134
帖子
21
主题
4
阅读权限
40
注册时间
2008-9-21
最后登录
2019-3-30
跳转到指定楼层
1#
发表于 2009-9-9 14:32:46 |只看该作者 |倒序浏览
CrossOver(Close-(5* MinMove*PriceScale), AvgSettlePrice)
avgsettleprice是均线

如上述代码所示,如果我想将上面代码中的5 用参数或者变量来表示可以么?参数或者变量应该如何设置?


Params
NumericSeries A;

if (CrossOver(Close-(A* MinMove*PriceScale), AvgSettlePrice))

{
buy(1,0)
}


这样写好像系统会提示错误,麻烦管理员指正哪里有误,谢谢

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20906
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2009-9-9 14:41:04 |只看该作者
可以的,Numeric A(5)

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2416
积分
134
帖子
21
主题
4
阅读权限
40
注册时间
2008-9-21
最后登录
2019-3-30
3#
发表于 2009-9-9 14:51:13 |只看该作者
我是这样写的,但是有问题,提示被调用公式要求传入序列参数或序列表达式作为参数
错误号L0015

Numeric A(5)


NumericSeries A(5)
我都试过了,都有这个提示。。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20906
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
4#
发表于 2009-9-9 15:11:03 |只看该作者
方便把你的代码粘贴出来吗?
或者论坛短信给我看看

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2416
积分
134
帖子
21
主题
4
阅读权限
40
注册时间
2008-9-21
最后登录
2019-3-30
5#
发表于 2009-9-9 15:35:23 |只看该作者
Params
        Numeric StopPoint(15);
        Numeric A(5);
        Numeric ProfitPoint(130);
        Numeric FailureLimit(3);
        
        
Vars
        NumericSeries AmountCum;                                // 当日以来成交总额的合计值
        NumericSeries VolCum;                                // 当日以来成交量的合计值
        NumericSeries AvgSettlePrice;        // 当日均价,因为均价是交易所公布的,只有分时图
                                                                        // 里面才有均价数据,在K线图只能近似计算出均价
        NumericSeries HighestClose(0);// 当日以来的收盘价的最大值
        NumericSeries LowestClose(0);        // 当日以来的收盘价的最小值
        
        NumericSeries StartPrice;
        NumericSeries EndPrice;
        
        
        Numeric myExitPrice;        
        Numeric lots(1);
        
        NumericSeries FailureTimes(3);
        
Begin
        if(Day!=Day[1])
        {
                Amountcum=close*Vol;
                volcum=vol;
                                failuretimes=0;
        }else
        {
        AmountCum = amountcum[1]+close*vol;
        VolCum = volcum[1]+vol;
                FailureTimes=Failuretimes[1];
        
        }


        AvgSettlePrice = Trunc(AmountCum/VolCum);
        
        //开仓
        
        
        If(Time > 0.091000 And Time<0.112500 Or Time>0.133000 And Time < 0.145000) // 时间在9:10分之后,14:50之前
        {
        
                If (MarketPosition == 0)                 
               
                {
                                
               
                        //多开

                        If(CrossOver(Close-(A* MinMove*PriceScale), AvgSettlePrice)&&FailureTimes<Failurelimit) // 开多仓
                        {
                                Buy(1,Open,True);
                        }
                       //空开                    
                        If(CrossUnder(Close+(A* MinMove*PriceScale),AvgSettlePrice)&&FailureTimes<Failurelimit) // 开空仓

                        
                        {
                                                             SellShort(1,High,True);
                                                        
                                       
                        }
                }
               
                }

end

就是A替代之后就报错,麻烦指教,谢谢

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2009-9-9 16:03:18 |只看该作者
你可以先建一个序列变量
NumericSeries MyLine;

MyLine = Close - N*MinMove*PriceScale;

然后再用CrossOver

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2416
积分
134
帖子
21
主题
4
阅读权限
40
注册时间
2008-9-21
最后登录
2019-3-30
7#
发表于 2009-9-10 11:27:00 |只看该作者
感谢答复。。。测试中

使用道具 举报

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

bottom

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

GMT+8, 2024-5-20 01:17

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部