设为首页收藏本站

 找回密码
 注册
楼主: ppzcgg
打印 上一主题 下一主题

小白提问 [复制链接]

Rank: 1

精华
0
UID
269950
积分
25
帖子
19
主题
2
阅读权限
10
注册时间
2018-9-11
最后登录
2018-10-30
21#
发表于 2018-10-26 09:18:48 |只看该作者
小米 发表于 2018-10-26 08:28
版主回答不了。
要不直接将你的代码以及你所说的不出信号的图表一并贴出来看一下吧。。。
否则版本说一个 ...

Begin

        mtBarCnt = MtBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOpenInt);//mtBarCnt表示的是从当前小周期的Bar到对应的大周期的Bar需要回溯的BAR数
        mtClose = refClose;       
       
        //获得大周期的20日平均值       
        SumValue = MtSummation(mtClose,mtBarCnt,Length);//取大周期的收盘价之和
        MidLine = SumValue/Length;       
       
        //Band = StandardDev(Close,Length,2);
        //求20日标准差
        VarPSValue = MtVvv(mtClose, mtBarCnt, Length, 2);

        If (VarPSValue > 0)
        {
                Band = Sqrt(VarPSValue);
        }Else
        {
                Band = 0;
        }       
       
       
        UpLine = MidLine + Offset * Band;
        DownLine = MidLine - Offset * Band;
        PlotNumeric("UpLine",UpLine);
        PlotNumeric("DownLine",DownLine);
        PlotNumeric("MidLine",MidLine);       
       
       
        // 集合竞价和小节休息过滤
        If(!CallAuctionFilter()) Return;
       
        //FileAppend("f:\\a.log","//Low:"+Text(Low)+"//High:"+Text(High)+"//DownLine:"+Text(DownLine)+"//UpLine:"+Text(UpLine));       
       
        //FileAppend("f:\\a.log","33333333 //close[1]:"+Text(close[1])+"//MidLine:"+Text(MidLine));
        //如果碰boll中轨,开空,平多
       
        If(close[1]>=MidLine)
        {
               
                FileAppend("f:\\a.log","//close[1]:"+Text(close[1])+"//MidLine:"+Text(MidLine));
                //commentary("max="+text(maxbarsback)+"currentbar="+text(currentbar));               
                SellShort(1,0);//平掉所有多仓,当前价开空
                //A_SendOrder(Enum_Sell,Enum_Entry,1,close);
        }
       
        /*
        If(close[1]<DownLine)
        {
                Buy(1,0); //平掉所有空仓,当前价开多
        }*/
       
End

全部代码贴上了MidLine是60分钟级别的boll中轨线

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
22#
发表于 2018-10-26 09:47:17 |只看该作者
ppzcgg 发表于 2018-10-26 09:18
Begin

        mtBarCnt = MtBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOp ...

参数与变量都没有给啊

使用道具 举报

Rank: 1

精华
0
UID
269950
积分
25
帖子
19
主题
2
阅读权限
10
注册时间
2018-9-11
最后登录
2018-10-30
23#
发表于 2018-10-26 10:03:54 |只看该作者
小米 发表于 2018-10-26 09:47
参数与变量都没有给啊

Params
        Numeric TimeFrame(60);                // 目标时间周期参数,参数说明参见MtBar
        Numeric BarsBack(1);                // 目标时间周期BAR偏移参数,说明见MtBar函数       
        Numeric Length(20);                       
        Numeric Offset(2);                            
Vars
        NumericSeries MA1;
        NumericSeries mtBarCnt;
        NumericSeries mtClose;
        Numeric refCurBar;
        Numeric refOpen;
        Numeric refHigh;
        Numeric refLow;
        Numeric refClose;
        Numeric refVol;
        Numeric refOpenInt;
       
        Numeric UpLine;                //上轨
        Numeric DownLine;                //下轨
        Numeric MidLine;        //中间线
        Numeric Band;
        Numeric SumValue(0);       
       
        Numeric VarPSValue;       
Begin

        mtBarCnt = MtBar(TimeFrame,BarsBack,refCurBar,refOpen,refHigh,refLow,refClose,refVol,refOpenInt);//mtBarCnt表示的是从当前小周期的Bar到对应的大周期的Bar需要回溯的BAR数
        mtClose = refClose;       
       
        //获得大周期的20日平均值       
        SumValue = MtSummation(mtClose,mtBarCnt,Length);//取大周期的收盘价之和
        MidLine = SumValue/Length;       
       
        //Band = StandardDev(Close,Length,2);
        //求20日标准差
        VarPSValue = MtVvv(mtClose, mtBarCnt, Length, 2);

        If (VarPSValue > 0)
        {
                Band = Sqrt(VarPSValue);
        }Else
        {
                Band = 0;
        }       
       
       
        UpLine = MidLine + Offset * Band;
        DownLine = MidLine - Offset * Band;
        PlotNumeric("UpLine",UpLine);
        PlotNumeric("DownLine",DownLine);
        PlotNumeric("MidLine",MidLine);       
       
       
        // 集合竞价和小节休息过滤
        If(!CallAuctionFilter()) Return;
       
        //FileAppend("f:\\a.log","//Low:"+Text(Low)+"//High:"+Text(High)+"//DownLine:"+Text(DownLine)+"//UpLine:"+Text(UpLine));       
       
        //FileAppend("f:\\a.log","33333333 //close[1]:"+Text(close[1])+"//MidLine:"+Text(MidLine));
        //如果碰boll中轨,开空,平多
       
        If(close[1]>=MidLine && MarketPosition!=-1)
        {
               
                FileAppend("f:\\a.log","//close[1]:"+Text(close[1])+"//MidLine:"+Text(MidLine));
                //commentary("max="+text(maxbarsback)+"currentbar="+text(currentbar));               
                SellShort(1,0);//平掉所有多仓,当前价开空
                //A_SendOrder(Enum_Sell,Enum_Entry,1,close);
        }
       
        /*
        If(close[1]<DownLine)
        {
                Buy(1,0); //平掉所有空仓,当前价开多
        }*/
       
End

使用道具 举报

Rank: 1

精华
0
UID
269950
积分
25
帖子
19
主题
2
阅读权限
10
注册时间
2018-9-11
最后登录
2018-10-30
24#
发表于 2018-10-29 08:16:36 |只看该作者
谁帮忙回答一下

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
25#
发表于 2018-10-29 14:38:01 |只看该作者
ppzcgg 发表于 2018-10-26 10:03
Params
        Numeric TimeFrame(60);                // 目标时间周期参数,参数说明参见MtBar
        Numeric BarsBack(1) ...

你这有自定义的函数,而函数代码也没有提供,工作人员没法重现您的问题啊。。
建议您还是通过注释信息进行代码的排查吧。。

使用道具 举报

Rank: 1

精华
0
UID
269950
积分
25
帖子
19
主题
2
阅读权限
10
注册时间
2018-9-11
最后登录
2018-10-30
26#
发表于 2018-10-30 09:57:39 |只看该作者
本帖最后由 ppzcgg 于 2018-10-30 09:58 编辑
小米 发表于 2018-10-29 14:38
你这有自定义的函数,而函数代码也没有提供,工作人员没法重现您的问题啊。。
建议您还是通过注释信息进 ...


Params
        Numeric Length(20);                       
        Numeric Offset(2);                            
Vars
        Numeric UpLine;                //上轨
        Numeric DownLine;                //下轨
        NumericSeries MidLine;        //中间线
        Numeric Band;
Begin
        MidLine = AverageFC(Close,Length);
        Band = StandardDev(Close,Length,2);
        UpLine = MidLine + Offset * Band;
        DownLine = MidLine - Offset * Band;
        PlotNumeric("UpLine",UpLine);
        PlotNumeric("DownLine",DownLine);
        PlotNumeric("MidLine",MidLine);
       
        If(close[1]>=UpLine)
        {
               
                //FileAppend("f:\\a.log","//close[1]:"+Text(close[1])+"//MidLine:"+Text(MidLine));
                //commentary("max="+text(maxbarsback)+"currentbar="+text(currentbar));               
                SellShort(1,0);//平掉所有多仓,当前价开空
                //A_SendOrder(Enum_Sell,Enum_Entry,1,close);
        }
       
        /*
        If(close[1]<DownLine)
        {
                Buy(1,0); //平掉所有空仓,当前价开多
        }*/       
       
End

直接在boll公式上加上SellShort,也是不能开仓,大致找到原因了,问题出在SellShort内部,SellShort肯定是被执行了,只不过没真正执行平仓和开空仓动作罢了,至于为什么不执行真正的平仓和开仓动作,只能去SellShort内部看了。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
27#
发表于 2018-10-30 13:46:56 |只看该作者
本帖最后由 小米 于 2018-10-30 13:49 编辑
ppzcgg 发表于 2018-10-30 09:57
Params
        Numeric Length(20);                       
        Numeric Offset(2);                            


注释内容以及所在图表位置能否截个图呢?

使用道具 举报

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

bottom

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

GMT+8, 2024-4-20 01:40

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部