开拓者期货期权程序化系统交易论坛

标题: 关于A_BuyPosition函数的疑惑 [打印本页]

作者: czs763268157    时间: 2019-9-24 00:04:27     标题: 关于A_BuyPosition函数的疑惑

为什么A_BuyPosition函数显示无效值??

程序如下:
OnBar(ArrayRef<Integer> indexs)
        {
                cdiff1 = Close[1]-Open[1];
                cdiff2 = Close[2]-open[2];
                con1 = (cdiff1>0 && cdiff2>0);
               
                If(A_BuyPosition == 0 && con1 )
                {
                        Buy(Lot,Open);
                }
                Else
                {
                        Commentary("A_BuyPosition="+Text(A_BuyPosition));
                }
        }
结果如图:
[attach]38504[/attach]




作者: 小米    时间: 2019-9-24 08:31:36

A函数的属性决定了,只有在最后K线且图表关联(或交易单元)关联了交易帐户后方可取到有 效值 。。
一般是启动自动交易进行关联
作者: czs763268157    时间: 2019-9-24 08:37:26

小米 发表于 2019-9-24 08:31
A函数的属性决定了,只有在最后K线且图表关联(或交易单元)关联了交易帐户后方可取到有 效值 。。
一般是 ...

版主早上好,我已经换成TBQquant了,启动自动交易前也已经在头寸管理里关联了模拟账号,为什么还是没有有效值呢?
作者: 小米    时间: 2019-9-24 09:08:36

czs763268157 发表于 2019-9-24 08:37
版主早上好,我已经换成TBQquant了,启动自动交易前也已经在头寸管理里关联了模拟账号,为什么还是没有有 ...

启动自动交易了吗?
代码怎么写的?发给我看一下。                                
作者: czs763268157    时间: 2019-9-24 09:19:03

小米 发表于 2019-9-24 09:08
启动自动交易了吗?
代码怎么写的?发给我看一下。                                 ...

Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值
        Numeric GainTime(15);                //止盈单位倍数值
Vars
        Series<Numeric> COdiff1;
        Series<Numeric> COdiff2;
        Bool UpTrend(False);
        Bool DownTrend(False);
       
        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;
           
            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(A_TotalPosition == 0 && UpTrend == True)
            {
                    A_SendOrder(Enum_Buy,Enum_Entry,Lot,Q_AskPrice());
                    SetGlobalVar(0,Q_AskPrice());
                    buyprice = GetGlobalVar(0);
            }
            If(A_TotalPosition == 0 && DownTrend == True)
            {
                    A_SendOrder(Enum_Sell,Enum_Entry,Lot,Q_BidPrice());
                    SetGlobalVar(0,Q_BidPrice());
                    sellprice = GetGlobalVar(0);
            }       
            Commentary("buyprice="+Text(buyprice));
            Commentary("sellprice="+Text(sellprice));

                //计算止盈止损
            If(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(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));       
            }

            Commentary("buyprice="+Text(buyprice));
            Commentary("sellprice="+Text(sellprice));
           
            //多单离场
                If(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(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;
                    }
                }
        }
作者: 小米    时间: 2019-9-24 09:27:53

czs763268157 发表于 2019-9-24 09:19
Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值

1,前面有强调在最后一个K线上,即barstatus==2的状态下。。你的代码里没有这样的限制 。。
2,前面有强调要关联帐户,即启动自动交易。。而tbquant的K线图是不可以启动自动交易的。
作者: czs763268157    时间: 2019-9-24 09:33:20

小米 发表于 2019-9-24 09:27
1,前面有强调在最后一个K线上,即barstatus==2的状态下。。你的代码里没有这样的限制 。。
2,前面有强 ...

Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值
        Numeric GainTime(15);                //止盈单位倍数值
Vars
        Series<Numeric> COdiff1;
        Series<Numeric> COdiff2;
        Bool UpTrend(False);
        Bool DownTrend(False);
       
        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;
           
            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) == 0 && UpTrend == True)
            {
                    A_SendOrder(Enum_Buy,Enum_Entry,Lot,Q_AskPrice());
                    SetGlobalVar(0,Q_AskPrice());
                    buyprice = GetGlobalVar(0);
            }
            If(BarStatus == 2 && A_TotalPosition(0) == 0 && DownTrend == True)
            {
                    A_SendOrder(Enum_Sell,Enum_Entry,Lot,Q_BidPrice());
                    SetGlobalVar(0,Q_BidPrice());
                    sellprice = GetGlobalVar(0);
            }
            Commentary("AT="+Text(A_TotalPosition(0)));
            Commentary("buyprice="+Text(buyprice));
            Commentary("sellprice="+Text(sellprice));

                //计算止盈止损
            If(BarStatus == 2 && A_TotalPosition(0) > 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) < 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) > 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) < 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;
                    }
                }
        }

根据版主的要求加上了barstatus==2,但为什么在策略交易里还是没有任何交易数据?
是因为在TBQuant里用不了这些函数吗??
作者: 小米    时间: 2019-9-24 09:42:23

czs763268157 发表于 2019-9-24 09:33
Params
        Numeric Lot(1);                                //交易手数
        Numeric LossTime(15);                //止损单位倍数值

您的策略里的开平仓的条件是容易出现的吗?改了代码就应该立马进行交易的吗?
现在是说这个结果与你预期不符合是吗?
如果这样,建议您 在公式里加上fileappend写日志的语句,将您的开平仓条件里的变量等相关的值都输出看一下。
作者: czs763268157    时间: 2019-9-24 10:20:21

小米 发表于 2019-9-24 09:42
您的策略里的开平仓的条件是容易出现的吗?改了代码就应该立马进行交易的吗?
现在是说这个结果与你预期 ...

先谢谢版主提供的建议,我发现输出日志后终于发现不是A_TotalPosition的问题了,而是因为A_SendOrder返回False,请问这个问题如何解决呢?
A_SendOrder语句和上面程序一样:
       A_SendOrder(Enum_Buy,Enum_Entry,Lot,Q_AskPrice());
作者: 小米    时间: 2019-9-24 10:26:40

czs763268157 发表于 2019-9-24 10:20
先谢谢版主提供的建议,我发现输出日志后终于发现不是A_TotalPosition的问题了,而是因为A_SendOrder返回 ...

你的日志怎么写的?如何判断是a_sendorder为false的?
一般只有条件不满足时,才会返回false
作者: czs763268157    时间: 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
作者: 小米    时间: 2019-9-24 10:36:29

czs763268157 发表于 2019-9-24 10:32
程序如下:
            If(BarStatus == 2 && A_TotalPosition() == 0 && UpTrend == True && GetGlobalVar(1) = ...


lot的值不是0吧?
作者: czs763268157    时间: 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);                //止盈单位倍数值
作者: 小米    时间: 2019-9-24 10:47:04

czs763268157 发表于 2019-9-24 10:39
lot是1,参数设置如下:
Params
        Numeric Lot(1);                                //交易手数

将你整个公式(带日志的)发给我,以及你测试的设置细节等也一并描述一下。我这边测试看看
作者: czs763268157    时间: 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图上运行很快就会有数据
作者: 小米    时间: 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这几个日志。。
说明你的开仓条件是根本没有满足的。。为什么不愿意按我前面给的建议,“将您的开平仓条件里的变量等相关的值都输出看一下”呢?
如果你说你的测试中,可以有相关的日志生成,请将你测试的场景细节描述给我呀,我看一下能否有一样的日志生成呢?
作者: czs763268157    时间: 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
[attach]38506[/attach]


作者: czs763268157    时间: 2019-9-24 14:16:35

小米 发表于 2019-9-24 11:16
将你的公式直接代入if1911合约10秒的交易单 元中使用,并没有生成buy.low, ww.low,sell.low这几个日志。 ...

版主,我看了一下if1911,发现它几乎没波动,现在if1910仍是主力合约,它的10s数据波动快许多,你可以再试一试,麻烦你帮忙看看我的程序在哪出问题了
作者: 小米    时间: 2019-9-24 14:30:09

czs763268157 发表于 2019-9-24 14:16
版主,我看了一下if1911,发现它几乎没波动,现在if1910仍是主力合约,它的10s数据波动快许多,你可以再 ...

程序没有问题。
TBquant这里版本有bug,A_sendorder不能发单 。下个版本能修复。
作者: czs763268157    时间: 2019-9-24 14:32:27

小米 发表于 2019-9-24 14:30
程序没有问题。
TBquant这里版本有bug,A_sendorder不能发单 。下个版本能修复。 ...

好的,谢谢版主




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2