设为首页收藏本站

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

关于A_BuyPosition函数的疑惑 [复制链接]

Rank: 3Rank: 3

精华
0
UID
282705
积分
223
帖子
93
主题
28
阅读权限
40
注册时间
2019-8-19
最后登录
2020-3-31
11#
发表于 2019-9-24 10:32:41 |只看该作者
小米 发表于 2019-9-24 10:26
你的日志怎么写的?如何判断是a_sendorder为false的?
一般只有条件不满足时,才会返回false ...

程序如下:
            If(BarStatus == 2 && A_TotalPosition() == 0 && UpTrend == True && GetGlobalVar(1) == 0)
            {
                    ww=A_SendOrder(Enum_Buy,Enum_Entry,Lot,Q_AskPrice());
                    SetGlobalVar(0,Q_AskPrice());
                    buyprice = GetGlobalVar(0);
                    SetGlobalVar(1,1);
                    if(ww)
                    {
                            qq=1;
                    }
                    FileAppend("D:\\Buy.log","CurrentTime="+Text(CurrentTime));
                    FileAppend("D:\\ww.log","ww="+Text(qq));
            }

最终输出到日志ww上的数是:0

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
12#
发表于 2019-9-24 10:36:29 |只看该作者
czs763268157 发表于 2019-9-24 10:32
程序如下:
            If(BarStatus == 2 && A_TotalPosition() == 0 && UpTrend == True && GetGlobalVar(1) = ...


lot的值不是0吧?

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
282705
积分
223
帖子
93
主题
28
阅读权限
40
注册时间
2019-8-19
最后登录
2020-3-31
13#
发表于 2019-9-24 10:39:10 |只看该作者
小米 发表于 2019-9-24 10:36
lot的值不是0吧?

lot是1,参数设置如下:
Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值
        Numeric GainTime(15);                //止盈单位倍数值

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
14#
发表于 2019-9-24 10:47:04 |只看该作者
czs763268157 发表于 2019-9-24 10:39
lot是1,参数设置如下:
Params
        Numeric Lot(1);                                //交易手数

将你整个公式(带日志的)发给我,以及你测试的设置细节等也一并描述一下。我这边测试看看

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
282705
积分
223
帖子
93
主题
28
阅读权限
40
注册时间
2019-8-19
最后登录
2020-3-31
15#
发表于 2019-9-24 10:54:34 |只看该作者
本帖最后由 czs763268157 于 2019-9-24 10:56 编辑
小米 发表于 2019-9-24 10:47
将你整个公式(带日志的)发给我,以及你测试的设置细节等也一并描述一下。我这边测试看看 ...


Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值
        Numeric GainTime(15);                //止盈单位倍数值
Vars
        Series<Numeric> COdiff1;
        Series<Numeric> COdiff2;
        Bool UpTrend(False);
        Bool DownTrend(False);
        Bool ww(False);
        Numeric qq(0);
       
        Series<Numeric> gainExitPrice;        //止盈价
        Series<Numeric> lossExitPrice;        //止损价
        Series<Numeric> buyprice(0);        //买入价
        Series<Numeric> sellprice(0);                //卖出价
Events
    onBar(ArrayRef<Integer> indexs)
    {   
            // 集合竞价过滤
            If(BarStatus == 2 && Time == 0.090000 && CurrentTime < 0.090000) Return;
            If(BarStatus == 2 && Time == 0.210000 && CurrentTime < 0.210000) Return;
            If(BarStatus == 2 && Time == 0.103000 && CurrentTime < 0.103000) Return;
            If(BarStatus == 2 && Time == 0.133000 && CurrentTime < 0.133000) Return;
            //涨跌停板过滤
            If((Close==Q_LowerLimit) or (Close==Q_UpperLimit)) Return;
           
            if(barstatus==0)
            {
                    SetGlobalVar(1,0);
        }
           
            COdiff1 = Close[1]-Open[1];
            COdiff2 = Close[2]-Open[2];
           
            If(COdiff1>0 && COdiff2>0)
            {
                    UpTrend = True;
            }
            Else If(COdiff1<-0 && COdiff2<-0)
            {
                    DownTrend = True;
            }
           
            //系统入场       
            If(BarStatus == 2 && A_TotalPosition() == 0 && UpTrend == True && GetGlobalVar(1) == 0)
            {
                    ww=A_SendOrder(Enum_Buy,Enum_Entry,Lot,Q_AskPrice());
                    SetGlobalVar(0,Q_AskPrice());
                    buyprice = GetGlobalVar(0);
                    SetGlobalVar(1,1);
                    if(ww)
                    {
                            qq=1;
                    }
                    FileAppend("D:\\Buy.log","CurrentTime="+Text(CurrentTime));
                    FileAppend("D:\\ww.log","ww="+Text(qq));
            }
            If(BarStatus == 2 && A_TotalPosition() == 0 && DownTrend == True && GetGlobalVar(1) == 0)
            {
                    ww=A_SendOrder(Enum_Sell,Enum_Entry,Lot,Q_BidPrice());
                    SetGlobalVar(0,Q_BidPrice());
                    sellprice = GetGlobalVar(0);
                    SetGlobalVar(1,1);
                    if(ww)
                    {
                            qq=1;
                    }
                    FileAppend("D:\\Sell.log","CurrentTime="+Text(CurrentTime));
                    FileAppend("D:\\ww.log","ww="+Text(qq));
            }
            FileAppend("D:\\AT.log","AT="+Text(A_TotalPosition()));
            FileAppend("D:\\bp.log","bp="+Text(buyprice));
            FileAppend("D:\\sp.log","sp="+Text(sellprice));

                //计算止盈止损
            If(BarStatus == 2 && A_TotalPosition() > 0 )
            {
                    buyprice = GetGlobalVar(0);
                    sellprice = 0;
                    gainExitPrice = buyprice + GainTime*MinMove*PriceScale;        //止盈价=开仓价+GT个最小变动价位
                    lossExitPrice = buyprice - LossTime*MinMove*PriceScale;                //止损价=开仓价-LT个最小变动价位
                    Commentary("我的止盈价="+Text(gainExitPrice));
                    Commentary("我的止损价="+Text(lossExitPrice));       
            }
            Else If(BarStatus == 2 && A_TotalPosition() < 0)
            {       
                    buyprice = 0;
                    sellprice = GetGlobalVar(0);
                    gainExitPrice = sellprice - GainTime*MinMove*PriceScale;                //止盈价=开仓价-GT个最小变动价位
                    lossExitPrice = sellprice + LossTime*MinMove*PriceScale;                //止损价=开仓价+LT个最小变动价位
                    Commentary("我的止盈价="+Text(gainExitPrice));
                    Commentary("我的止损价="+Text(lossExitPrice));       
            }
           
            //多单离场
                If(BarStatus == 2 && A_TotalPosition() > 0 && A_GetOpenOrderCount == 0)
            {
                    //高于止盈价,全部止盈出场
                    If(High >= gainExitPrice)
                    {
                            A_SendOrder(Enum_Sell,Enum_Exit,Lot,Q_BidPrice());
                            PlotString("Text","止盈",High+1,White);
                            SetGlobalVar(0,0);
                            //count=GetGlobalVar(0);
                            lossExitPrice = 0;
                            gainExitPrice = 0;
                            buyprice = 0;
                    }
                    Else If(Low <= lossExitPrice)
                    {
                            A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition(),Q_BidPrice());
                            SetGlobalVar(0,0);
                            //count=GetGlobalVar(0);
                            lossExitPrice = 0;
                            gainExitPrice = 0;
                            buyprice = 0;
                    }
                }
                //空单离场
                If(BarStatus == 2 && A_TotalPosition() < 0 && A_GetOpenOrderCount == 0)
            {
                    //低于止盈价,全部止盈出场
                    If(Low <= gainExitPrice)
                    {
                            A_SendOrder(Enum_Buy,Enum_Exit,Lot,Q_AskPrice());
                            PlotString("Text","止盈",High+1,White);
                            SetGlobalVar(0,0);
                            //count=GetGlobalVar(0);
                            lossExitPrice = 0;
                            gainExitPrice = 0;
                            sellprice = 0;
                    }
                    Else If(High >= lossExitPrice)
                    {
                            A_SendOrder(Enum_Buy,Enum_Exit,A_BuyPosition(),Q_AskPrice());
                            SetGlobalVar(0,0);
                            //count=GetGlobalVar(0);
                            lossExitPrice = 0;
                            gainExitPrice = 0;
                            sellprice = 0;
                    }
                }
        }

公式如上:
输出的日志细节
1.AT.log: 每一次运行时A_TotalPosition的值
2.bp.log: 每次发出买入委托时的对手价
3.sp.log: 每次发出卖出委托时的对手价
4.Buy.log: 每次发出买入委托的时间
5.Sell.log: 每次发出卖出委托的时间
6.ww.log: 每次发出委托后返回值,True为1,False为0。

公式是出现同色的两个K线就进行买卖的策略,在1min图上运行很快就会有数据

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
16#
发表于 2019-9-24 11:16:38 |只看该作者
czs763268157 发表于 2019-9-24 10:54
Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值

将你的公式直接代入if1911合约10秒的交易单 元中使用,并没有生成buy.low, ww.low,sell.low这几个日志。。
说明你的开仓条件是根本没有满足的。。为什么不愿意按我前面给的建议,“将您的开平仓条件里的变量等相关的值都输出看一下”呢?
如果你说你的测试中,可以有相关的日志生成,请将你测试的场景细节描述给我呀,我看一下能否有一样的日志生成呢?

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
282705
积分
223
帖子
93
主题
28
阅读权限
40
注册时间
2019-8-19
最后登录
2020-3-31
17#
发表于 2019-9-24 11:43:05 |只看该作者
小米 发表于 2019-9-24 11:16
将你的公式直接代入if1911合约10秒的交易单 元中使用,并没有生成buy.low, ww.low,sell.low这几个日志。 ...

版主,10秒波动太小了,我的策略就是前一根K线和前两个K线的开盘价比收盘价都高就买入,都低就卖出,10中很多都是十字线来的,很难有数据哦

我测试的是au1912,1min图
currenttime=0.1127


附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
282705
积分
223
帖子
93
主题
28
阅读权限
40
注册时间
2019-8-19
最后登录
2020-3-31
18#
发表于 2019-9-24 14:16:35 |只看该作者
小米 发表于 2019-9-24 11:16
将你的公式直接代入if1911合约10秒的交易单 元中使用,并没有生成buy.low, ww.low,sell.low这几个日志。 ...

版主,我看了一下if1911,发现它几乎没波动,现在if1910仍是主力合约,它的10s数据波动快许多,你可以再试一试,麻烦你帮忙看看我的程序在哪出问题了

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
19#
发表于 2019-9-24 14:30:09 |只看该作者
czs763268157 发表于 2019-9-24 14:16
版主,我看了一下if1911,发现它几乎没波动,现在if1910仍是主力合约,它的10s数据波动快许多,你可以再 ...

程序没有问题。
TBquant这里版本有bug,A_sendorder不能发单 。下个版本能修复。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
282705
积分
223
帖子
93
主题
28
阅读权限
40
注册时间
2019-8-19
最后登录
2020-3-31
20#
发表于 2019-9-24 14:32:27 |只看该作者
小米 发表于 2019-9-24 14:30
程序没有问题。
TBquant这里版本有bug,A_sendorder不能发单 。下个版本能修复。 ...

好的,谢谢版主

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 13:38

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部