设为首页收藏本站

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

紧急求助!!! [复制链接]

Rank: 1

精华
0
UID
259445
积分
18
帖子
12
主题
6
阅读权限
10
注册时间
2017-11-21
最后登录
2020-3-16
跳转到指定楼层
1#
发表于 2019-11-9 02:28:32 |显示全部楼层 |倒序浏览
本帖最后由 xhqh96801317 于 2019-11-9 13:53 编辑

代码如下:
//------------------------------------------------------------------------
// 简称: bull_trade
// 名称:
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
//开多仓
Params
        Numeric number(2); //买卖手数
        Numeric sell_price(0.2); //买卖价格---滑点?
        Numeric A(100.12); //当前收盘价下跌x%
        Numeric M30_20(20); //20根(半小时K线周期)
        Numeric loss(100.20); //止损
        Numeric BandRange(20);
       
Vars
        Numeric bull_mid; //布林线中轨
        Numeric bull_down; //布林线下轨
        Numeric bull_up; // 布林线上轨
        Numeric entry; //标记进入策略
        Numeric B; //平均进入价格
        NumericSeries myflag(0);

Begin
        If(BarStatus == 0)
        {
                myflag = 0;
        }Else
        {
                bull_mid = Average(Close, M30_20); //20根均线--中轨
                PlotNumeric("bull_mid", bull_mid);
                bull_down = Average(Close, M30_20)-2*StandardDev(Close, M30_20);
                PlotNumeric("bull_down", bull_down);
                bull_up = Average(Close, M30_20)+2*StandardDev(Close, M30_20);
                PlotNumeric("bull_up", bull_up);
                //---------集合竞价和小节休息过滤-------/////
                If(IsCallAuctionTime()) return;//集合竞价
                If ((Close==Q_LowerLimit || Close==Q_UpperLimit) AND BarStatus == 2) Return;
               
                If (MarketPosition == 0 && time!=0.1459 && myflag==0)
                {
                        If(bull_up-bull_mid>BandRange)
                        {
                                If (High > bull_up*A/100)
                                {
                                        myflag=1; //进场信号发出,下根K线开盘进场
                                }
                               
                        }
                }
                Else If(MarketPosition == 0 && time!=0.1459 && myflag==1 && Close<bull_up)
                {
                        SellShort(number, Open+sell_price);
                        myflag=2; //持仓
                } Else If(MarketPosition<0 and BarsSinceEntry >0)
                {
                        B=AvgEntryPrice;
                        If(Close>=B*loss/100 and (Close>bull_up || Open>bull_up) ) //止损
                        {
                                BuyToCover(0, Close+sell_price);
                                myflag=0;
                        }
                        If(Close <= bull_mid and myflag == 2)
                        {
                             BuyToCover(0, Close+sell_price);
                                myflag=0;
                        }
                }Else
                {
                        myflag=0;
                }
        }

       
End

//------------------------------------------------------------------------
// 编译版本        GS2015.12.25
// 用户版本        2019/11/01 10:33:21
// 版权所有        cying01
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------


问题就是在实盘中 当我持仓 1手空单时,BuyToCover(0, Close+sell_price);  并不是平仓1手,而是开了2手多单,空单的持仓依然存在,还有就是此公式运用在30分钟K线,但是BuyToCover(0, Close+sell_price)的交易发生的时间却是在23分,而不是K线走完时的价格,跪求解决

另:开空仓时间为早上10点,平仓时间为当天下午1点23分

Rank: 1

精华
0
UID
259445
积分
18
帖子
12
主题
6
阅读权限
10
注册时间
2017-11-21
最后登录
2020-3-16
2#
发表于 2019-11-11 01:15:44 |显示全部楼层
没人知道原因吗?

使用道具 举报

Rank: 1

精华
0
UID
259445
积分
18
帖子
12
主题
6
阅读权限
10
注册时间
2017-11-21
最后登录
2020-3-16
3#
发表于 2019-11-11 23:07:01 |显示全部楼层
小米 发表于 2019-11-11 11:42
1,bull_mid,bull_up,bull_down这三个变量都是使用close来计算的,这个数据在盘中是会实时变化的,不稳定的 ...

BuyToCover(0, Close+sell_price)为什么不是平掉所有的空仓,而且直接开了2个多仓,空仓依然存在,这样会影响接下来指令的运行

使用道具 举报

Rank: 1

精华
0
UID
259445
积分
18
帖子
12
主题
6
阅读权限
10
注册时间
2017-11-21
最后登录
2020-3-16
4#
发表于 2019-11-12 11:12:51 |显示全部楼层
本帖最后由 xhqh96801317 于 2019-11-12 11:19 编辑
小米 发表于 2019-11-12 09:01
首先,信号是平空没错吧?
委托单如果是开多的话,你要看看系统设置---风控,是否勾选了日内开平转换? ...


信号确实是平空,勾了日内开平转换,是不是要取消了就不会出现这种情况

使用道具 举报

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

bottom

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

GMT+8, 2024-5-7 03:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部