设为首页收藏本站

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

64位旗舰版5.5.2.0多账户A函数,只有1个账户可用! [复制链接]

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
跳转到指定楼层
1#
发表于 2018-4-9 10:34:55 |只看该作者 |倒序浏览
本帖最后由 wwr_5817 于 2018-4-9 10:49 编辑

64位旗舰版5.5.2.0,今天节休前,我用两个模拟账户测试,发现只有1个账户可用A函数!详情见下图。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
入市须谨慎,TB有风险!

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
2#
发表于 2018-4-9 10:38:25 |只看该作者
上述TB界面中的Trb工作区用SimKPRB公式应用交易螺纹钢,Ti工作区用SimKPI公式应用交易铁矿石。二公式应用开平仓语句几乎完全相同,详见下。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
3#
发表于 2018-4-9 10:39:28 |只看该作者
SimKPRB公式应用源码上半部分:
//------------------------------------------------------------------------
// 简称: SimKPRB
// 名称: 模拟RB开平
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
Params
    Numeric M5Length(5);//5分钟均线参数
        Numeric TestStart(20180404.09);//5分钟均线参数
Vars
        NumericSeries M5MAs;//5分钟Bar的MA值
        Numeric preBar5;
        NumericSeries CurrentBar5DTs;//5分钟CurrentBar日期时间值
        NumericSeries Bar5MPs;//5分钟Bar的MarketPosition值
       
        NumericSeries CroCru5Signs;//5分钟前BarCro/Cru之标志,1Cro;-1Cru;0无效
       
        NumericSeries preCro1Bar5s;//5分钟上穿MA之Bar索引值
        NumericSeries preCro1BarH5s;//5分钟前Bar上穿MA之Bar顶值
        NumericSeries FpreCro1Bar5DTs;//5分钟Cro后Bar日期时间值
       
        NumericSeries preCru1Bar5s;//5分钟下穿MA之Bar索引值
        NumericSeries preCru1BarL5s;//5分钟前Bar下穿MA之Bar底值
        NumericSeries FpreCru1Bar5DTs;//5分钟Cru后Bar日期时间值
       
        NumericSeries BKbms;//BK基准
        NumericSeries BKnos;//图表信号BK连开次数
        StringSeries BKtypes;//BK类型
        NumericSeries BKDTs;//BK日期时间值
        NumericSeries SPbms;//SP基准
        StringSeries SPtypes;//SP类型
        NumericSeries SPDTs;//SP日期时间值
        NumericSeries G1Cro1HBar5DTs;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
        NumericSeries G1Cro1HBarH5s;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5顶值
        NumericSeries GG2Cro1HBar5DTs;//5分钟Cro后Cru前,过G1Cro1HBarH5s首Bar5日期时间值
       
        NumericSeries SKbms;//SK基准
        NumericSeries SKnos;//图表信号SK连开次数
        StringSeries SKtypes;//SK类型
        NumericSeries SKDTs;//SK日期时间值
        NumericSeries BPbms;//时BP基准
        StringSeries BPtypes;//BP类型
        NumericSeries BPDTs;//BP日期时间值
        NumericSeries L1Cru1LBar5DTs;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5日期时间值
        NumericSeries L1Cru1LBarL5s;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5底值
        NumericSeries LL2Cru1LBar5DTs;//5分钟Cru后Cro前,破L1Cru1LBarL5s首Bar5日期时间值
Begin
        M5MAs=AverageFC(C,M5Length);//层0
        PlotNumeric("MyMA",M5MAs);
        preBar5=CurrentBar-1;
        CurrentBar5DTs=MakeDateTime(Date,Time);
        If (BarStatus==0)//层0
        {SetTBProfileString("LBKbm","fm5"+Symbol,"0");//层1;图表信号最后BK信号价
         SetTBProfileString("LSPbm","fm5"+Symbol,"0");//图表信号最后SP信号价
         SetTBProfileString("LSKbm","fm5"+Symbol,"0");//图表信号最后SK信号价
         SetTBProfileString("LBPbm","fm5"+Symbol,"0");//图表信号最后BP信号价
         SetTBProfileString("LBKDT","fm5"+Symbol,"0");//图表信号最后BK时点
         SetTBProfileString("LSPDT","fm5"+Symbol,"0");//图表信号最后SP时点
         SetTBProfileString("LSKDT","fm5"+Symbol,"0");//图表信号最后SK时点
         SetTBProfileString("LBPDT","fm5"+Symbol,"0");//图表信号最后BP时点
         SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
        }
        If (BarStatus==2)//层0
        {If (((Time==0.0900&&Time[1]==0.1448)||Time==0.2100)&&H==L)//层1
         {Return;//层2;集合竞价数据过滤
         }
         If (AccountDataExist==False)//层1
         {FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_账户未连");//层2
          PlotString("账户未连","X",H+40,white);
          If (AlertEnabled)//层2
          {Alert("账户未连");//层3
          }
          Return;//层2
         }
        }
        If (C[1]>M5MAs[1]&&((C[2]<M5MAs[2]&&CurrentBar>M5Length)||(C[2]==M5MAs[2]&&C[3]<M5MAs[3]&&(CurrentBar>(M5Length+1)))))//层0
        {PlotBool("CrMA",True,H[1]+50,-1,1);//层1
         preCro1Bar5s=preBar5;
         preCro1BarH5s=H[1];
         FpreCro1Bar5DTs=CurrentBar5DTs;
         CroCru5Signs=1;
         L1Cru1LBar5DTs=0;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5日期时间值
         L1Cru1LBarL5s=0;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5底值
         LL2Cru1LBar5DTs=0;//5分钟Cru后Cro前,破L1Cru1LBarL5s首Bar5日期时间值
        }
        If (C[1]<M5MAs[1]&&((C[2]>M5MAs[2]&&CurrentBar>M5Length)||(C[2]==M5MAs[2]&&C[3]>M5MAs[3]&&(CurrentBar>(M5Length+1)))))//层0
        {PlotBool("CrMA",False,L[1]-50,-1,1);//层1
         preCru1Bar5s=preBar5;
         preCru1BarL5s=L[1];
         FpreCru1Bar5DTs=CurrentBar5DTs;
         CroCru5Signs=-1;
         G1Cro1HBar5DTs=0;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
         G1Cro1HBarH5s=0;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5顶值
         GG2Cro1HBar5DTs=0;//5分钟Cro后Cru前,过G1Cro1HBarH5s首Bar5日期时间值
        }
        If (CroCru5Signs==1)//层0
        {If (G1Cro1HBar5DTs==0&&H>preCro1BarH5s)//层1
         {G1Cro1HBar5DTs=CurrentBar5DTs;//层2;5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
         }
         If (G1Cro1HBar5DTs==CurrentBar5DTs[1])//层1
         {G1Cro1HBarH5s=H[1];//层2;5分钟Cro后Cru前,过preCro1BarH5s首Bar5顶值
         }
         If (GG2Cro1HBar5DTs==0&&G1Cro1HBarH5s>0&&H>G1Cro1HBarH5s)//层1
         {GG2Cro1HBar5DTs=CurrentBar5DTs;//层2;5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
         }
         If (SKDTs<FpreCro1Bar5DTs&&H>preCro1BarH5s)//层1
         {If ((BarStatus==2&&Max(Value(GetTBProfileString("LSKDT","fm5"+Symbol)),Value(GetTBProfileString("LBPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==-1//防同Bar5内RealSK后TickBP
                   &&A_GetOpenOrderCount==0&&A_SellPosition>=0&&A_BuyPosition==0)
                  ||(BarStatus<2&&MarketPosition==-1))//层2
          {BPbms=Max(preCro1BarH5s,O);//层3
           If (BarStatus==2&&Max(Value(GetTBProfileString("LSKDT","fm5"+Symbol)),Value(GetTBProfileString("LBPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==-1
                   &&A_GetOpenOrderCount==0&&A_SellPosition>=0&&A_BuyPosition==0)//层3
           {A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+1);//层4
                FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_P/rBP/"+Text(A_SellPosition));
                PlotString("Plot","P/"+Text(A_SellPosition),BPbms+20,-1,4);
                SetTBProfileString("LBPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BP时点
                SetTBProfileString("LBPbm","fm5"+Symbol,Text(BPbms));//图表信号最后BP信号价
                SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {BuyToCover(0,BPbms);//层4
                SKnos=0;
           }
           PlotString("Ptype","rBP",BPbms+10,-1,2);//层3
           BPtypes="rBP";
           BPDTs=CurrentBar5DTs;
          }
         }
         If (CurrentBar5DTs>=TestStart&&BKDTs<FpreCro1Bar5DTs&&GG2Cro1HBar5DTs==CurrentBar5DTs&&H>G1Cro1HBarH5s)//层1
         {If (BarStatus==2&&Max(Value(GetTBProfileString("LSKDT","fm5"+Symbol)),Value(GetTBProfileString("LBPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==-1//防同Bar5内RealSK后TickBP
                  &&A_GetOpenOrderCount==0&&A_SellPosition>=0&&A_BuyPosition==0)//层2
          {BPbms=Max(G1Cro1HBarH5s,O);//层3
           A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+1);
           FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_P/rBPK/"+Text(A_SellPosition));
           PlotString("Plot","P/"+Text(A_SellPosition),BPbms+20,-1,4);
           SetTBProfileString("LBPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BP时点
           SetTBProfileString("LBPbm","fm5"+Symbol,Text(BPbms));//图表信号最后BP信号价
           SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
          If ((BarStatus==2&&Value(GetTBProfileString("LBKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=-1&&A_GetOpenOrderCount==0&&A_SellPosition==0)//防同Bar5内RealSK后TickBK
                  ||(BarStatus<2&&((MarketPosition!=1&&BKnos==0)||(MarketPosition==1&&BKnos>0))))//层2
          {BKbms=Max(G1Cro1HBarH5s,O);//层3
           If (BarStatus==2&&Value(GetTBProfileString("LBKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=-1&&A_GetOpenOrderCount==0&&A_SellPosition==0)//层3
           {A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice+1);//层4
                FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_RealK/rBPK/1");
                PlotString("Klot","RealK/1",BKbms+30,-1,9);
                SetTBProfileString("LBKbm","fm5"+Symbol,Text(BKbms));//图表信号最后BK基准
                SetTBProfileString("LBKDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BK时点
                SetTBProfileString("LPosition","fm5"+Symbol,"1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {If (SKnos>0)//层4
                {BuyToCover(0,BKbms);//层5
                 SKnos=0;
                }
                Buy(2,BKbms);//层4
                BKnos=BKnos+1;
           }
           PlotString("Ktype","rBPK",BKbms+10,-1,3);//层3
           BKtypes="rBPK";
           BKDTs=CurrentBar5DTs;
          }
         }
        }

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
4#
发表于 2018-4-9 10:40:29 |只看该作者
SimKPRB公式应用源码下半部分:
        If (CroCru5Signs==-1)//层0
        {If (L1Cru1LBar5DTs==0&&L<preCru1BarL5s)//层1
         {L1Cru1LBar5DTs=CurrentBar5DTs;//层2;5分钟Cru后Cro前,破preCru1BarL5s首Bar5日期时间值
         }
         If (L1Cru1LBar5DTs==CurrentBar5DTs[1])//层2
         {L1Cru1LBarL5s=L[1];//层3;5分钟Cru后Cro前,破preCru1BarH5s首Bar5顶值
         }
         If (LL2Cru1LBar5DTs==0&&L1Cru1LBarL5s>0&&L<L1Cru1LBarL5s)//层1
         {LL2Cru1LBar5DTs=CurrentBar5DTs;//层2;5分钟Cru后Cro前,破L1Cru1LBarL5s首Bar5日期时间值
         }
         If (BKDTs<FpreCru1Bar5DTs&&L<preCru1BarL5s)//层1
         {If ((BarStatus==2&&Max(Value(GetTBProfileString("LBKDT","fm5"+Symbol)),Value(GetTBProfileString("LSPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==1//防同Bar5内RealBK后TickSP
                   &&A_GetOpenOrderCount==0&&A_BuyPosition>=0&&A_SellPosition==0)
                  ||(BarStatus<2&&MarketPosition==1))//层2
          {SPbms=Min(preCru1BarL5s,O);//层3
           If (BarStatus==2&&Max(Value(GetTBProfileString("LBKDT","fm5"+Symbol)),Value(GetTBProfileString("LSPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==1
                   &&A_GetOpenOrderCount==0&&A_BuyPosition>=0&&A_SellPosition==0)//层3
           {A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-1);//层4
                FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_P/rSP/"+Text(A_BuyPosition));
                PlotString("Plot","P/"+Text(A_BuyPosition),SPbms-20,-1,4);
                SetTBProfileString("LSPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后SP时点
                SetTBProfileString("LSPbm","fm5"+Symbol,Text(SPbms));//图表信号最后SP信号价
                SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {Sell(0,SPbms);//层4
                BKnos=0;
           }
           PlotString("Ptype","rSP",SPbms-10,-1,2);//层3
           SPtypes="rSP";
           SPDTs=CurrentBar5DTs;
          }
         }
         If (CurrentBar5DTs>=TestStart&&SKDTs<FpreCru1Bar5DTs&&LL2Cru1LBar5DTs==CurrentBar5DTs&&L<L1Cru1LBarL5s)//层1
         {If (BarStatus==2&&Max(Value(GetTBProfileString("LBKDT","fm5"+Symbol)),Value(GetTBProfileString("LSPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==1//防同Bar5内RealBK后TickSP
                  &&A_GetOpenOrderCount==0&&A_BuyPosition>=0&&A_SellPosition==0)//层2
          {SPbms=Min(L1Cru1LBarL5s,O);//层3
           A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-1);
           FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_P/rSPK/"+Text(A_BuyPosition));
           PlotString("Plot","P/"+Text(A_BuyPosition),SPbms-20,-1,4);
           SetTBProfileString("LSPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后SP时点
           SetTBProfileString("LSPbm","fm5"+Symbol,Text(SPbms));//图表信号最后SP信号价
           SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
          If ((BarStatus==2&&Value(GetTBProfileString("LSKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=1&&A_GetOpenOrderCount==0&&A_BuyPosition==0)//防同Bar5内RealBK后TickSK
                  ||(BarStatus<2&&((MarketPosition!=-1&&SKnos==0)||(MarketPosition==-1&&SKnos>0))))//层2
          {SKbms=Min(L1Cru1LBarL5s,O);//层3
           If (BarStatus==2&&Value(GetTBProfileString("LSKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=1&&A_GetOpenOrderCount==0&&A_BuyPosition==0)//层3
           {A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice-1);//层4
                FileAppend("C:\\Trb.log",Text(CurrentBar5DTs)+"_RealK/rSPK/1");
                PlotString("Klot","RealK/1",SKbms-30,-1,9);
                SetTBProfileString("LSKbm","fm5"+Symbol,Text(SKbms));//图表信号最后SK基准
                SetTBProfileString("LSKDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BK时点
                SetTBProfileString("LPosition","fm5"+Symbol,"-1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {If (BKnos>0)//层4
                {Sell(0,SKbms);//层5
                 BKnos=0;
                }
                SellShort(2,SKbms);//层4
                SKnos=SKnos+1;
           }
           PlotString("Ktype","rSPK",SKbms-10,-1,3);//层3
           SKtypes="rSPK";
           SKDTs=CurrentBar5DTs;
          }
         }
        }
    Bar5MPs=MarketPosition;//层0;60分钟Bar的MarketPosition值
    If (BarStatus<2)//层0
        {If (Bar5MPs[1]==-1&&CurrentBar5DTs==BPDTs&&BKDTs<BPDTs)//层1
         {SetTBProfileString("LBPDT","fm5"+Symbol,Text(BPDTs));//层2;图表信号最后BP时点
          If (MarketPosition==0)//层2
          {SetTBProfileString("LPosition","fm5"+Symbol,"0");//层3;图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
         }
         If (Bar5MPs[1]==1&&CurrentBar5DTs==SPDTs&&SKDTs<SPDTs)//层1
         {SetTBProfileString("LSPDT","fm5"+Symbol,Text(SPDTs));//层2;图表信号最后SP时点
          If (MarketPosition==0)//层2
          {SetTBProfileString("LPosition","fm5"+Symbol,"0");//层3;图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
         }
         If (MarketPosition==1&&CurrentBar5DTs==BKDTs)//层1
         {SetTBProfileString("LBKbm","fm5"+Symbol,Text(BKbms));//层2;图表信号最后BK信号价
          SetTBProfileString("LBKDT","fm5"+Symbol,Text(BKDTs));//图表信号最后BK时点
          SetTBProfileString("LPosition","fm5"+Symbol,"1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          If (Bar5MPs[1]==-1)//层2
          {SetTBProfileString("LBPbm","fm5"+Symbol,Text(BKbms));//层3;图表信号最后BP信号价
           SetTBProfileString("LBPDT","fm5"+Symbol,Text(BKDTs));//图表信号最后BP时点
          }
         }
         If (MarketPosition==-1&&CurrentBar5DTs==SKDTs)//层1
         {SetTBProfileString("LSKbm","fm5"+Symbol,Text(SKbms));//层2;图表信号最后SK信号价
          SetTBProfileString("LSKDT","fm5"+Symbol,Text(SKDTs));//图表信号最后SK时点
          SetTBProfileString("LPosition","fm5"+Symbol,"-1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          If (Bar5MPs[1]==1)//层2
          {SetTBProfileString("LSPbm","fm5"+Symbol,Text(SKbms));//层3;图表信号最后SP信号价
           SetTBProfileString("LSPDT","fm5"+Symbol,Text(SKDTs));//图表信号最后SP时点
          }
         }
        }
        If (preBar5>(M5Length-1))//层0
        {Commentary("M5Length="+Text(M5Length)+",TestStart="+Text(TestStart)+",M5MAs="+Text(M5MAs)+",preBar5="+Text(preBar5)+",CurrentBar5DTs="+Text(CurrentBar5DTs));//层1
         Commentary("Bar5MPs="+Text(Bar5MPs)+",CroCru5Signs="+Text(CroCru5Signs));
         Commentary("preCro1Bar5s="+Text(preCro1Bar5s)+",preCro1BarH5s="+Text(preCro1BarH5s)+",FpreCro1Bar5DTs="+Text(FpreCro1Bar5DTs));
         Commentary("preCru1Bar5s="+Text(preCru1Bar5s)+",preCru1BarL5s="+Text(preCru1BarL5s)+",FpreCru1Bar5DTs="+Text(FpreCru1Bar5DTs));
         Commentary("BKbms="+Text(BKbms)+",BKnos="+Text(BKnos)+",BKtypes="+BKtypes+",BKDTs="+Text(BKDTs)+",SPbms="+Text(SPbms)+",SPtypes="+SPtypes+",SPDTs="+Text(SPDTs));
         Commentary("G1Cro1HBar5DTs="+Text(G1Cro1HBar5DTs)+",G1Cro1HBarH5s="+Text(G1Cro1HBarH5s)+",GG2Cro1HBar5DTs="+Text(GG2Cro1HBar5DTs));
         Commentary("SKbms="+Text(SKbms)+",SKnos="+Text(SKnos)+",SKtypes="+SKtypes+",SKDTs="+Text(SKDTs)+",BPbms="+Text(BPbms)+",BPtypes="+BPtypes+",BPDTs="+Text(BPDTs));
         Commentary("L1Cru1LBar5DTs="+Text(L1Cru1LBar5DTs)+",L1Cru1LBarL5s="+Text(L1Cru1LBarL5s)+",LL2Cru1LBar5DTs="+Text(LL2Cru1LBar5DTs));
         Commentary("M5Vol="+Text(Vol)+",M5OpenInt="+Text(OpenInt));
        }
End
//------------------------------------------------------------------------
// 编译版本        GS205.08
// 用户版本        2013/01/31 07:18
// 版权所有        wwr5817
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
5#
发表于 2018-4-9 10:41:44 |只看该作者
SimKPI公式应用源码上半部分:
//------------------------------------------------------------------------
// 简称: SimKPI
// 名称: 模拟I开平
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
Params
    Numeric M5Length(5);//5分钟均线参数
        Numeric TestStart(20180404.09);//5分钟均线参数
Vars
        NumericSeries M5MAs;//5分钟Bar的MA值
        Numeric preBar5;
        NumericSeries CurrentBar5DTs;//5分钟CurrentBar日期时间值
        NumericSeries Bar5MPs;//5分钟Bar的MarketPosition值
       
        NumericSeries CroCru5Signs;//5分钟前BarCro/Cru之标志,1Cro;-1Cru;0无效
       
        NumericSeries preCro1Bar5s;//5分钟上穿MA之Bar索引值
        NumericSeries preCro1BarH5s;//5分钟前Bar上穿MA之Bar顶值
        NumericSeries FpreCro1Bar5DTs;//5分钟Cro后Bar日期时间值
       
        NumericSeries preCru1Bar5s;//5分钟下穿MA之Bar索引值
        NumericSeries preCru1BarL5s;//5分钟前Bar下穿MA之Bar底值
        NumericSeries FpreCru1Bar5DTs;//5分钟Cru后Bar日期时间值
       
        NumericSeries BKbms;//BK基准
        NumericSeries BKnos;//图表信号BK连开次数
        StringSeries BKtypes;//BK类型
        NumericSeries BKDTs;//BK日期时间值
        NumericSeries SPbms;//SP基准
        StringSeries SPtypes;//SP类型
        NumericSeries SPDTs;//SP日期时间值
        NumericSeries G1Cro1HBar5DTs;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
        NumericSeries G1Cro1HBarH5s;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5顶值
        NumericSeries GG2Cro1HBar5DTs;//5分钟Cro后Cru前,过G1Cro1HBarH5s首Bar5日期时间值
       
        NumericSeries SKbms;//SK基准
        NumericSeries SKnos;//图表信号SK连开次数
        StringSeries SKtypes;//SK类型
        NumericSeries SKDTs;//SK日期时间值
        NumericSeries BPbms;//时BP基准
        StringSeries BPtypes;//BP类型
        NumericSeries BPDTs;//BP日期时间值
        NumericSeries L1Cru1LBar5DTs;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5日期时间值
        NumericSeries L1Cru1LBarL5s;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5底值
        NumericSeries LL2Cru1LBar5DTs;//5分钟Cru后Cro前,破L1Cru1LBarL5s首Bar5日期时间值
Begin
        M5MAs=AverageFC(C,M5Length);//层0
        PlotNumeric("MyMA",M5MAs);
        preBar5=CurrentBar-1;
        CurrentBar5DTs=MakeDateTime(Date,Time);
        If (BarStatus==0)//层0
        {SetTBProfileString("LBKbm","fm5"+Symbol,"0");//层1;图表信号最后BK信号价
         SetTBProfileString("LSPbm","fm5"+Symbol,"0");//图表信号最后SP信号价
         SetTBProfileString("LSKbm","fm5"+Symbol,"0");//图表信号最后SK信号价
         SetTBProfileString("LBPbm","fm5"+Symbol,"0");//图表信号最后BP信号价
         SetTBProfileString("LBKDT","fm5"+Symbol,"0");//图表信号最后BK时点
         SetTBProfileString("LSPDT","fm5"+Symbol,"0");//图表信号最后SP时点
         SetTBProfileString("LSKDT","fm5"+Symbol,"0");//图表信号最后SK时点
         SetTBProfileString("LBPDT","fm5"+Symbol,"0");//图表信号最后BP时点
         SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
        }
        If (BarStatus==2)//层0
        {If (((Time==0.0900&&Time[1]==0.1448)||Time==0.2100)&&H==L)//层1
         {Return;//层2;集合竞价数据过滤
         }
         If (AccountDataExist==False)//层1
         {FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_账户未连");//层2
          PlotString("账户未连","X",H+20,white);
          If (AlertEnabled)//层2
          {Alert("账户未连");//层3
          }
          Return;//层2
         }
        }
        If (C[1]>M5MAs[1]&&((C[2]<M5MAs[2]&&CurrentBar>M5Length)||(C[2]==M5MAs[2]&&C[3]<M5MAs[3]&&(CurrentBar>(M5Length+1)))))//层0
        {PlotBool("CrMA",True,H[1]+10,-1,1);//层1
         preCro1Bar5s=preBar5;
         preCro1BarH5s=H[1];
         FpreCro1Bar5DTs=CurrentBar5DTs;
         CroCru5Signs=1;
         L1Cru1LBar5DTs=0;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5日期时间值
         L1Cru1LBarL5s=0;//5分钟Cru后Cro前,破preCru1BarL5s首Bar5底值
         LL2Cru1LBar5DTs=0;//5分钟Cru后Cro前,破L1Cru1LBarL5s首Bar5日期时间值
        }
        If (C[1]<M5MAs[1]&&((C[2]>M5MAs[2]&&CurrentBar>M5Length)||(C[2]==M5MAs[2]&&C[3]>M5MAs[3]&&(CurrentBar>(M5Length+1)))))//层0
        {PlotBool("CrMA",False,L[1]-10,-1,1);//层1
         preCru1Bar5s=preBar5;
         preCru1BarL5s=L[1];
         FpreCru1Bar5DTs=CurrentBar5DTs;
         CroCru5Signs=-1;
         G1Cro1HBar5DTs=0;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
         G1Cro1HBarH5s=0;//5分钟Cro后Cru前,过preCro1BarH5s首Bar5顶值
         GG2Cro1HBar5DTs=0;//5分钟Cro后Cru前,过G1Cro1HBarH5s首Bar5日期时间值
        }
        If (CroCru5Signs==1)//层0
        {If (G1Cro1HBar5DTs==0&&H>preCro1BarH5s)//层1
         {G1Cro1HBar5DTs=CurrentBar5DTs;//层2;5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
         }
         If (G1Cro1HBar5DTs==CurrentBar5DTs[1])//层1
         {G1Cro1HBarH5s=H[1];//层2;5分钟Cro后Cru前,过preCro1BarH5s首Bar5顶值
         }
         If (GG2Cro1HBar5DTs==0&&G1Cro1HBarH5s>0&&H>G1Cro1HBarH5s)//层1
         {GG2Cro1HBar5DTs=CurrentBar5DTs;//层2;5分钟Cro后Cru前,过preCro1BarH5s首Bar5日期时间值
         }
         If (SKDTs<FpreCro1Bar5DTs&&H>preCro1BarH5s)//层1
         {If ((BarStatus==2&&Max(Value(GetTBProfileString("LSKDT","fm5"+Symbol)),Value(GetTBProfileString("LBPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==-1//防同Bar5内RealSK后TickBP
                   &&A_GetOpenOrderCount==0&&A_SellPosition>=0&&A_BuyPosition==0)
                  ||(BarStatus<2&&MarketPosition==-1))//层2
          {BPbms=Max(preCro1BarH5s,O);//层3
           If (BarStatus==2&&Max(Value(GetTBProfileString("LSKDT","fm5"+Symbol)),Value(GetTBProfileString("LBPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==-1
                   &&A_GetOpenOrderCount==0&&A_SellPosition>=0&&A_BuyPosition==0)//层3
           {A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+0.5);//层4
                FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_P/rBP/"+Text(A_SellPosition));
                PlotString("Plot","P/"+Text(A_SellPosition),BPbms+20,-1,4);
                SetTBProfileString("LBPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BP时点
                SetTBProfileString("LBPbm","fm5"+Symbol,Text(BPbms));//图表信号最后BP信号价
                SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {BuyToCover(0,BPbms);//层4
                SKnos=0;
           }
           PlotString("Ptype","rBP",BPbms+5,-1,2);//层3
           BPtypes="rBP";
           BPDTs=CurrentBar5DTs;
          }
         }
         If (CurrentBar5DTs>=TestStart&&BKDTs<FpreCro1Bar5DTs&&GG2Cro1HBar5DTs==CurrentBar5DTs&&H>G1Cro1HBarH5s)//层1
         {If (BarStatus==2&&Max(Value(GetTBProfileString("LSKDT","fm5"+Symbol)),Value(GetTBProfileString("LBPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==-1//防同Bar5内RealSK后TickBP
                  &&A_GetOpenOrderCount==0&&A_SellPosition>=0&&A_BuyPosition==0)//层2
          {BPbms=Max(G1Cro1HBarH5s,O);//层3
           A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+0.5);
           FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_P/rBPK/"+Text(A_SellPosition));
           PlotString("Plot","P/"+Text(A_SellPosition),BPbms+10,-1,4);
           SetTBProfileString("LBPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BP时点
           SetTBProfileString("LBPbm","fm5"+Symbol,Text(BPbms));//图表信号最后BP信号价
           SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
          If ((BarStatus==2&&Value(GetTBProfileString("LBKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=-1&&A_GetOpenOrderCount==0&&A_SellPosition==0)//防同Bar5内RealSK后TickBK
                  ||(BarStatus<2&&((MarketPosition!=1&&BKnos==0)||(MarketPosition==1&&BKnos>0))))//层2
          {BKbms=Max(G1Cro1HBarH5s,O);//层3
           If (BarStatus==2&&Value(GetTBProfileString("LBKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=-1&&A_GetOpenOrderCount==0&&A_SellPosition==0)//层3
           {A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice+0.5);//层4
                FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_RealK/rBPK/1");
                PlotString("Klot","RealK/1",BKbms+15,-1,9);
                SetTBProfileString("LBKbm","fm5"+Symbol,Text(BKbms));//图表信号最后BK基准
                SetTBProfileString("LBKDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BK时点
                SetTBProfileString("LPosition","fm5"+Symbol,"1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {If (SKnos>0)//层4
                {BuyToCover(0,BKbms);//层5
                 SKnos=0;
                }
                Buy(2,BKbms);//层4
                BKnos=BKnos+1;
           }
           PlotString("Ktype","rBPK",BKbms+5,-1,3);//层3
           BKtypes="rBPK";
           BKDTs=CurrentBar5DTs;
          }
         }
        }

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
6#
发表于 2018-4-9 10:43:00 |只看该作者
SimKPI公式应用源码下半部分:
        If (CroCru5Signs==-1)//层0
        {If (L1Cru1LBar5DTs==0&&L<preCru1BarL5s)//层1
         {L1Cru1LBar5DTs=CurrentBar5DTs;//层2;5分钟Cru后Cro前,破preCru1BarL5s首Bar5日期时间值
         }
         If (L1Cru1LBar5DTs==CurrentBar5DTs[1])//层2
         {L1Cru1LBarL5s=L[1];//层3;5分钟Cru后Cro前,破preCru1BarH5s首Bar5顶值
         }
         If (LL2Cru1LBar5DTs==0&&L1Cru1LBarL5s>0&&L<L1Cru1LBarL5s)//层1
         {LL2Cru1LBar5DTs=CurrentBar5DTs;//层2;5分钟Cru后Cro前,破L1Cru1LBarL5s首Bar5日期时间值
         }
         If (BKDTs<FpreCru1Bar5DTs&&L<preCru1BarL5s)//层1
         {If ((BarStatus==2&&Max(Value(GetTBProfileString("LBKDT","fm5"+Symbol)),Value(GetTBProfileString("LSPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==1//防同Bar5内RealBK后TickSP
                   &&A_GetOpenOrderCount==0&&A_BuyPosition>=0&&A_SellPosition==0)
                  ||(BarStatus<2&&MarketPosition==1))//层2
          {SPbms=Min(preCru1BarL5s,O);//层3
           If (BarStatus==2&&Max(Value(GetTBProfileString("LBKDT","fm5"+Symbol)),Value(GetTBProfileString("LSPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==1
                   &&A_GetOpenOrderCount==0&&A_BuyPosition>=0&&A_SellPosition==0)//层3
           {A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-0.5);//层4
                FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_P/rSP/"+Text(A_BuyPosition));
                PlotString("Plot","P/"+Text(A_BuyPosition),SPbms-5,-1,4);
                SetTBProfileString("LSPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后SP时点
                SetTBProfileString("LSPbm","fm5"+Symbol,Text(SPbms));//图表信号最后SP信号价
                SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {Sell(0,SPbms);//层4
                BKnos=0;
           }
           PlotString("Ptype","rSP",SPbms-5,-1,2);//层3
           SPtypes="rSP";
           SPDTs=CurrentBar5DTs;
          }
         }
         If (CurrentBar5DTs>=TestStart&&SKDTs<FpreCru1Bar5DTs&&LL2Cru1LBar5DTs==CurrentBar5DTs&&L<L1Cru1LBarL5s)//层1
         {If (BarStatus==2&&Max(Value(GetTBProfileString("LBKDT","fm5"+Symbol)),Value(GetTBProfileString("LSPDT","fm5"+Symbol)))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))==1//防同Bar5内RealBK后TickSP
                  &&A_GetOpenOrderCount==0&&A_BuyPosition>=0&&A_SellPosition==0)//层2
          {SPbms=Min(L1Cru1LBarL5s,O);//层3
           A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice-0.5);
           FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_P/rSPK/"+Text(A_BuyPosition));
           PlotString("Plot","P/"+Text(A_BuyPosition),SPbms-10,-1,4);
           SetTBProfileString("LSPDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后SP时点
           SetTBProfileString("LSPbm","fm5"+Symbol,Text(SPbms));//图表信号最后SP信号价
           SetTBProfileString("LPosition","fm5"+Symbol,"0");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
          If ((BarStatus==2&&Value(GetTBProfileString("LSKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=1&&A_GetOpenOrderCount==0&&A_BuyPosition==0)//防同Bar5内RealBK后TickSK
                  ||(BarStatus<2&&((MarketPosition!=-1&&SKnos==0)||(MarketPosition==-1&&SKnos>0))))//层2
          {SKbms=Min(L1Cru1LBarL5s,O);//层3
           If (BarStatus==2&&Value(GetTBProfileString("LSKDT","fm5"+Symbol))<CurrentBar5DTs&&Value(GetTBProfileString("LPosition","fm5"+Symbol))!=1&&A_GetOpenOrderCount==0&&A_BuyPosition==0)//层3
           {A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice-0.5);//层4
                FileAppend("C:\\Ti.log",Text(CurrentBar5DTs)+"_RealK/rSPK/1");
                PlotString("Klot","RealK/1",SKbms-15,-1,9);
                SetTBProfileString("LSKbm","fm5"+Symbol,Text(SKbms));//图表信号最后SK基准
                SetTBProfileString("LSKDT","fm5"+Symbol,Text(CurrentBar5DTs));//图表信号最后BK时点
                SetTBProfileString("LPosition","fm5"+Symbol,"-1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
           }Else
           {If (BKnos>0)//层4
                {Sell(0,SKbms);//层5
                 BKnos=0;
                }
                SellShort(2,SKbms);//层4
                SKnos=SKnos+1;
           }
           PlotString("Ktype","rSPK",SKbms-5,-1,3);//层3
           SKtypes="rSPK";
           SKDTs=CurrentBar5DTs;
          }
         }
        }
    Bar5MPs=MarketPosition;//层0;60分钟Bar的MarketPosition值
    If (BarStatus<2)//层0
        {If (Bar5MPs[1]==-1&&CurrentBar5DTs==BPDTs&&BKDTs<BPDTs)//层1
         {SetTBProfileString("LBPDT","fm5"+Symbol,Text(BPDTs));//层2;图表信号最后BP时点
          If (MarketPosition==0)//层2
          {SetTBProfileString("LPosition","fm5"+Symbol,"0");//层3;图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
         }
         If (Bar5MPs[1]==1&&CurrentBar5DTs==SPDTs&&SKDTs<SPDTs)//层1
         {SetTBProfileString("LSPDT","fm5"+Symbol,Text(SPDTs));//层2;图表信号最后SP时点
          If (MarketPosition==0)//层2
          {SetTBProfileString("LPosition","fm5"+Symbol,"0");//层3;图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          }
         }
         If (MarketPosition==1&&CurrentBar5DTs==BKDTs)//层1
         {SetTBProfileString("LBKbm","fm5"+Symbol,Text(BKbms));//层2;图表信号最后BK信号价
          SetTBProfileString("LBKDT","fm5"+Symbol,Text(BKDTs));//图表信号最后BK时点
          SetTBProfileString("LPosition","fm5"+Symbol,"1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          If (Bar5MPs[1]==-1)//层2
          {SetTBProfileString("LBPbm","fm5"+Symbol,Text(BKbms));//层3;图表信号最后BP信号价
           SetTBProfileString("LBPDT","fm5"+Symbol,Text(BKDTs));//图表信号最后BP时点
          }
         }
         If (MarketPosition==-1&&CurrentBar5DTs==SKDTs)//层1
         {SetTBProfileString("LSKbm","fm5"+Symbol,Text(SKbms));//层2;图表信号最后SK信号价
          SetTBProfileString("LSKDT","fm5"+Symbol,Text(SKDTs));//图表信号最后SK时点
          SetTBProfileString("LPosition","fm5"+Symbol,"-1");//图表信号最后持仓状态,1买持仓/0空仓/-1卖持仓
          If (Bar5MPs[1]==1)//层2
          {SetTBProfileString("LSPbm","fm5"+Symbol,Text(SKbms));//层3;图表信号最后SP信号价
           SetTBProfileString("LSPDT","fm5"+Symbol,Text(SKDTs));//图表信号最后SP时点
          }
         }
        }
        If (preBar5>(M5Length-1))//层0
        {Commentary("M5Length="+Text(M5Length)+",TestStart="+Text(TestStart)+",M5MAs="+Text(M5MAs)+",preBar5="+Text(preBar5)+",CurrentBar5DTs="+Text(CurrentBar5DTs));//层1
         Commentary("Bar5MPs="+Text(Bar5MPs)+",CroCru5Signs="+Text(CroCru5Signs));
         Commentary("preCro1Bar5s="+Text(preCro1Bar5s)+",preCro1BarH5s="+Text(preCro1BarH5s)+",FpreCro1Bar5DTs="+Text(FpreCro1Bar5DTs));
         Commentary("preCru1Bar5s="+Text(preCru1Bar5s)+",preCru1BarL5s="+Text(preCru1BarL5s)+",FpreCru1Bar5DTs="+Text(FpreCru1Bar5DTs));
         Commentary("BKbms="+Text(BKbms)+",BKnos="+Text(BKnos)+",BKtypes="+BKtypes+",BKDTs="+Text(BKDTs)+",SPbms="+Text(SPbms)+",SPtypes="+SPtypes+",SPDTs="+Text(SPDTs));
         Commentary("G1Cro1HBar5DTs="+Text(G1Cro1HBar5DTs)+",G1Cro1HBarH5s="+Text(G1Cro1HBarH5s)+",GG2Cro1HBar5DTs="+Text(GG2Cro1HBar5DTs));
         Commentary("SKbms="+Text(SKbms)+",SKnos="+Text(SKnos)+",SKtypes="+SKtypes+",SKDTs="+Text(SKDTs)+",BPbms="+Text(BPbms)+",BPtypes="+BPtypes+",BPDTs="+Text(BPDTs));
         Commentary("L1Cru1LBar5DTs="+Text(L1Cru1LBar5DTs)+",L1Cru1LBarL5s="+Text(L1Cru1LBarL5s)+",LL2Cru1LBar5DTs="+Text(LL2Cru1LBar5DTs));
         Commentary("M5Vol="+Text(Vol)+",M5OpenInt="+Text(OpenInt));
        }
End
//------------------------------------------------------------------------
// 编译版本        GS205.08
// 用户版本        2013/01/31 07:18
// 版权所有        wwr5817
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
7#
发表于 2018-4-9 10:49:14 |只看该作者
交易助手今天的设置见下图
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
113966
积分
1033
帖子
642
主题
207
阅读权限
60
注册时间
2012-12-9
最后登录
2021-2-18
8#
发表于 2018-4-9 11:04:11 |只看该作者
本帖最后由 wwr_5817 于 2018-4-9 11:43 编辑

在1楼中上传的文件中,可以发现:
1.Trb工作区的SimKPRB公式应用关联的是模拟账户sim002218,交易的是螺纹钢;Ti工作区的SimKPI公式应用关联的是模拟账户sim002219,交易的是铁矿石。
2.在模拟账户sim002218今天的sorder文件第6-11行:
[20180409 095518] 发送委托: sim002218 rb1810 卖开 1 3341.00 [A_SendOrder#SimKPRB]
[20180409 095518] 委托发送成功: sim002218 rb1810 1 3341.000
[20180409 100001] 发送委托: sim002218 rb1810 卖开 2 3343.00 [SimKPRB]
[20180409 100001] 委托发送成功: sim002218 rb1810 2 3343.000
[20180409 100001] 撤单: sim002218 orderNo=[336033]
[20180409 100001] 发送委托: sim002218 rb1810 卖开 2 3338.00 [SimKPRB:R]
表明关联模拟账户sim002218的SimKPRB公式应用先在BarStatus==2时A函数卖开1手,再在下1Bar首TickSellShort2手。
3.在模拟账户sim002219今天的sorder文件第4-10行:
[20180409 090501] 发送委托: sim002219 i1809 卖开 2 435.00 [SimKPI]
[20180409 090501] 委托发送成功: sim002219 i1809 2 435.000
[20180409 100501] 发送委托: sim002219 i1809 卖开 2 437.00 [SimKPI]
[20180409 100501] 委托发送成功: sim002219 i1809 2 437.000
[20180409 100501] 撤单: sim002219 orderNo=[336221]
[20180409 100502] 发送委托: sim002219 i1809 卖开 2 436.00 [SimKPI:R]
[20180409 100502] 委托发送成功: sim002219 i1809 2 436.000
表明关联模拟账户sim002219的SimKPI公式应用2次在BarStatus==2的末Tick且BarStatus<2的首TickSellShort卖开2手,而A函数均未先卖开。

两个模拟账户用同样的卖开语句,为何只有1个账户的A函数正常卖开???

使用道具 举报

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

bottom

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

GMT+8, 2024-4-27 12:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部