策略改成TBQ可用

Data COD:\"P2309\"; //合约编码,数据区同步Vars Numeric N; //下单手数 Numeric X; //循环变量 Numeric M; //条件价位倍数 Numeric W; //委托价位倍数 Numeric P; //条件比例 Numeric T; //时间间隔 Numeric DTN; //撤单tick数量 Numeric ZYM; //止盈价位倍数 Numeric ZSM; //止损价位倍数 Numeric BKC; //多头开仓条件 Numeric SKC; //空头开仓条件 Numeric BKCP; //多头开仓价格 Numeric SKCP; //空头开仓价格 Numeric TKN; //数据区长度 Numeric TKSV; //tick成交量和 Numeric TKVL; //tick累计成交量 Numeric SH; //平仓参数 Numeric NOW; //当前时间 Numeric NEWP; //最新价 Numeric MINP; //最小变动价位 Numeric RLP,FLP; //涨跌停价 Numeric BIDP,ASKP; //买卖一价 Numeric BVSV,AVSV; //买卖量和 Numeric BRP,SRP; //多空头可用持仓 Numeric OPFLG; //模型处理标志 Numeric BKDFLG; //买开处理标志 Numeric SKDFLG; //卖开处理标志 Numeric BPDFLG; //买平处理标志 Numeric SPDFLG; //卖平处理标志 NumericArray TKV; //tick成交量 NumericArray TKA; //tick主动买卖 Var_TickData TKD; //数据区 Global_Numeric COFLG; //输出处理标志 Global_Numeric KCFLG; //开仓处理标志 Global_Numeric BKID,SKID; //开仓委托 Global_Numeric BPID,SPID; //平仓委托 Global_Numeric BKFLG,SKFLG; //开仓标志 Global_Numeric BPFLG,SPFLG; //平仓标志 Global_Numeric BKDEL,SKDEL; //开仓撤单标志 Global_Numeric BPDEL,SPDEL; //平仓撤单标志 Global_Numeric BKTKN,SKTKN; //开仓tick数量 Global_Numeric BKTKV,SKTKV; //开仓累计成交量 Global_Numeric BKAP,SKAP; //开仓成交均价 Global_Numeric BKCT,SKCT; //开仓成交时间 Global_Numeric BKM,SKM; //开仓委托手数 Global_Numeric BPM,SPM; //平仓委托手数 Global_Numeric BKP,SKP; //开仓委托价格 Global_Numeric BPP,SPP; //平仓委托价格Begin //------------------------处理开启------------------------// If(1) //处理开启 { If(A_IsExchangeOpen() == 1) //如果是开盘状态 { OPFLG = 1; //开启模型处理 } } //------------------------变量赋值------------------------// If(OPFLG == 1) //变量赋值 { N = 1; //下单手数 M = 1; //条件价位倍数 W = 1; //委托价位倍数 P = 0.3; //条件比例 T = 30; //时间间隔 DTN = 2; //撤单tick数量 ZYM = 3; //止盈价位倍数 ZSM = 2; //止损价位倍数 NOW = CurrentTime(); //当前时间 NEWP = Price(\"New\"); //最新价 BIDP = Price(\"Bid1\"); //买一价 ASKP = Price(\"Ask1\"); //卖一价 RLP = Price(\"RiseLimit\"); //涨停价 FLP = Price(\"FallLimit\"); //跌停价 MINP = Price(\"MinPrice\"); //最小变动价位 BIDP = IIF(BIDP == 0 && NEWP == FLP,FLP,BIDP); //买一价 ASKP = IIF(ASKP == 0 && NEWP == RLP,RLP,ASKP); //卖一价 BRP = F_BuyRemainPosition(); //多头可用持仓 SRP = F_SellRemainPosition(); //空头可用持仓 BRP = Min(BRP,A_BuyRemainPosition()); //多头可用持仓 SRP = Min(SRP,A_SellRemainPosition()); //空头可用持仓 SH = IIF(A_IsSHCode() == 1,Enum_ExitToday,Enum_Exit); //平仓参数 } //------------------------数据取值------------------------// If(OPFLG == 1) //数据取值 { TKD = Def_TickData(\"P2309\",1,2); //数据区 If(TKD.State != 1) //如果数据区无效 { If(COFLG == 0) //如果未执行输出处理 { Commentary(\"【数据存储:数据区存储中!】\"); COFLG = 1; //已执行输出处理 } OPFLG = 2; //关闭模型处理 } Else If(TKD.State == 1) //如果数据区有效 { If(COFLG == 1) //如果已执行输出处理 { Commentary(\"【数据存储:数据区已有效!】\"); COFLG = 2; //已完成输出处理 } TKN = TKD.Num; //数据区长度 For X = 0 To TKN - 1 //遍历数据区 { TKV[X] = TKD[X].DeltaVol; //tick成交量 TKA[X] = TKD[X].Activity; //tick主动买卖 TKSV = TKSV + TKV[X]; //tick成交量和 } TKVL = TKD[TKN - 1].TickVolum; //tick累计成交量 For X = 1 To 5 //遍历五档 { BVSV = BVSV + Price(\"BidVol\" + Text(X)); //买量和 AVSV = AVSV + Price(\"AskVol\" + Text(X)); //卖量和 } If(TKA[0] == 0 && TKA[1] == 0 && TKSV >= P * AVSV) //如果满足多头开仓条件 { BKCP = IIF(ASKP - BIDP > M * MINP,BIDP + W * MINP,ASKP); //多头开仓价格 BKC = 1; //满足多头开仓条件 } Else If(TKA[0] == 1 && TKA[1] == 1 && TKSV >= P * BVSV) //如果满足空头开仓条件 { SKCP = IIF(ASKP - BIDP > M * MINP,ASKP - W * MINP,BIDP); //空头开仓价格 SKC = 1; //满足空头开仓条件 } } } //------------------------成交判断------------------------// If(OPFLG == 1) //成交判断 { If(BKFLG == 1) //如果有买开委托 { If(F_OrderStatus(BKID) == Enum_Filled && BRP > 0) //如果买开委托成交 { Commentary(\"【多头开仓:买开委托成交!】\"); BKAP = F_OrderFilledPrice(BKID); //买开成交均价 SPDFLG = 1; //开启多头止盈卖平处理 BKCT = NOW; //买开成交时间 BKFLG = 0; //买开标志归0 BKDEL = 0; //买开撤单标志归0 } Else If(F_OrderStatus(BKID) == Enum_Canceled) //如果买开委托已撤 { Commentary(\"【多头开仓:买开委托已撤!】\"); If(F_OrderFilledLot(BKID) > 0) //如果买开委托部分成交 { BKAP = F_OrderFilledPrice(BKID); //买开成交均价 SPDFLG = 1; //开启多头止盈卖平处理 BKCT = NOW; //买开成交时间 } Else //如果买开委托全部撤单 { KCFLG = 0; //开仓处理标志归0 } BKFLG = 0; //买开标志归0 BKDEL = 0; //买开撤单标志归0 } Else If(F_OrderStatus(BKID) == Enum_Declared || F_OrderStatus(BKID) == Enum_FillPart) //如果买开委托挂单 { If(BKDEL == 0) //如果未撤单 { If(TKVL != BKTKV) //如果是新tick { BKTKN = BKTKN + 1; //买开tick数量 BKTKV = TKVL; //买开累计成交量 } If(BKTKN == DTN) //如果满足撤单条件 { Commentary(\"【多头开仓:买开委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(BKID)); //撤掉买开委托挂单 BKDEL = 1; //已发出撤掉买开委托挂单 } } } } If(SPFLG > 0) //如果有卖平委托 { If(F_OrderStatus(SPID) == Enum_Filled) //如果卖平委托成交 { If(SPFLG == 1) //如果是多头止盈卖平委托 { Commentary(\"【多头止盈:卖平委托成交!】\"); } Else If(SPFLG == 2) //如果是多头止损卖平委托 { Commentary(\"【多头止损:卖平委托成交!】\"); } Else If(SPFLG == 3) //如果是多头清仓卖平委托 { Commentary(\"【多头清仓:卖平委托成交!】\"); } KCFLG = 0; //开仓处理标志归0 SPFLG = 0; //卖平标志归0 SPDEL = 0; //卖平撤单标志归0 } Else If(F_OrderStatus(SPID) == Enum_Canceled && BRP > 0) //如果卖平委托已撤 { If(SPDEL == 1) //如果是追价撤单 { Commentary(\"【多头止损:卖平委托已撤!】\"); If(F_OrderFilledLot(SPID) > 0) //如果卖平委托部分成交 { SPM = SPM - F_OrderFilledLot(SPID); //卖平委托手数 } If(BRP > 0 && SPM > 0 && SPM <= BRP) //如果卖平委托手数不超过多头可用持仓 { SPP = BIDP; //卖平委托价格 Commentary(\"【多头止损:卖平委托追价!】\"); SPID = A_SendOrder(Enum_Sell,SH,SPM,SPP); //发出卖平委托 } } Else If(SPDEL == 2) //如果是多头止损撤单 { Commentary(\"【多头止损:卖平委托已撤!】\"); SPFLG = 0; //卖平标志归0 SPDFLG = 2; //开启多头止损卖平处理 } Else If(SPDEL == 3) //如果是多头清仓撤单 { Commentary(\"【多头清仓:卖平委托已撤!】\"); SPFLG = 0; //卖平标志归0 SPDFLG = 3; //开启多头清仓卖平处理 } SPDEL = 0; //卖平撤单标志归0 } Else If(F_OrderStatus(SPID) == Enum_Declared || F_OrderStatus(SPID) == Enum_FillPart) //如果卖平委托挂单 { If(SPDEL == 0) //如果未撤单 { If(TimeDiff(BKCT,NOW) >= T) //如果满足多头清仓条件 { Commentary(\"【多头清仓:卖平委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(SPID)); //撤掉卖平委托挂单 SPDEL = 3; //多头清仓撤掉卖平委托挂单 } Else //如果不满足多头清仓条件 { If(SPFLG == 1) //如果是多头止盈卖平委托 { If(NEWP <= BKAP - ZSM * MINP) //如果满足多头止损条件 { Commentary(\"【多头止损:卖平委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(SPID)); //撤掉卖平委托挂单 SPDEL = 2; //多头止损撤掉卖平委托挂单 } } Else If(SPFLG == 2) //如果是多头止损卖平委托 { Commentary(\"【多头止损:卖平委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(SPID)); //撤掉卖平委托挂单 SPDEL = 1; //已发出撤掉卖平委托挂单 } } } } } If(SKFLG == 1) //如果有卖开委托 { If(F_OrderStatus(SKID) == Enum_Filled && SRP > 0) //如果卖开委托成交 { Commentary(\"【空头开仓:卖开委托成交!】\"); SKAP = F_OrderFilledPrice(SKID); //卖开成交均价 BPDFLG = 1; //开启空头止盈买平处理 SKCT = NOW; //卖开成交时间 SKFLG = 0; //卖开标志归0 SKDEL = 0; //卖开撤单标志归0 } Else If(F_OrderStatus(SKID) == Enum_Canceled) //如果卖开委托已撤 { Commentary(\"【空头开仓:卖开委托已撤!】\"); If(F_OrderFilledLot(SKID) > 0) //如果卖开委托部分成交 { SKAP = F_OrderFilledPrice(SKID); //卖开成交均价 BPDFLG = 1; //开启空头止盈买平处理 SKCT = NOW; //卖开成交时间 } Else //如果卖开委托全部撤单 { KCFLG = 0; //开仓处理标志归0 } SKFLG = 0; //卖开标志归0 SKDEL = 0; //卖开撤单标志归0 } Else If(F_OrderStatus(SKID) == Enum_Declared || F_OrderStatus(SKID) == Enum_FillPart) //如果卖开委托挂单 { If(SKDEL == 0) //如果未撤单 { If(TKVL != SKTKV) //如果是新tick { SKTKN = SKTKN + 1; //卖开tick数量 SKTKV = TKVL; //卖开累计成交量 } If(SKTKN == DTN) //如果满足撤单条件 { Commentary(\"【空头开仓:卖开委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(SKID)); //撤掉卖开委托挂单 SKDEL = 1; //已发出撤掉卖开委托挂单 } } } } If(BPFLG > 0) //如果有买平委托 { If(F_OrderStatus(BPID) == Enum_Filled) //如果买平委托成交 { If(BPFLG == 1) //如果是空头止盈买平委托 { Commentary(\"【空头止盈:买平委托成交!】\"); } Else If(BPFLG == 2) //如果是空头止损买平委托 { Commentary(\"【空头止损:买平委托成交!】\"); } Else If(BPFLG == 3) //如果是空头清仓买平委托 { Commentary(\"【空头清仓:买平委托成交!】\"); } KCFLG = 0; //开仓处理标志归0 BPFLG = 0; //买平标志归0 BPDEL = 0; //买平撤单标志归0 } Else If(F_OrderStatus(BPID) == Enum_Canceled && SRP > 0) //如果买平委托已撤 { If(BPDEL == 1) //如果是追价撤单 { Commentary(\"【空头止损:买平委托已撤!】\"); If(F_OrderFilledLot(BPID) > 0) //如果买平委托部分成交 { BPM = BPM - F_OrderFilledLot(BPID); //买平委托手数 } If(SRP > 0 && BPM > 0 && BPM <= SRP) //如果买平委托手数不超过空头可用持仓 { BPP = ASKP; //买平委托价格 Commentary(\"【空头止损:买平委托追价!】\"); BPID = A_SendOrder(Enum_Buy,SH,BPM,BPP); //发出买平委托 } } Else If(BPDEL == 2) //如果是空头止损撤单 { Commentary(\"【空头止损:买平委托已撤!】\"); BPFLG = 0; //买平标志归0 BPDFLG = 2; //开启空头止损买平处理 } Else If(BPDEL == 3) //如果是空头清仓撤单 { Commentary(\"【空头清仓:买平委托已撤!】\"); BPFLG = 0; //买平标志归0 BPDFLG = 3; //开启空头清仓买平处理 } BPDEL = 0; //买平撤单标志归0 } Else If(F_OrderStatus(BPID) == Enum_Declared || F_OrderStatus(BPID) == Enum_FillPart) //如果买平委托挂单 { If(BPDEL == 0) //如果未撤单 { If(TimeDiff(SKCT,NOW) >= T) //如果满足空头清仓条件 { Commentary(\"【空头清仓:买平委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(BPID)); //撤掉买平委托挂单 BPDEL = 3; //空头清仓撤掉买平委托挂单 } Else //如果不满足空头清仓条件 { If(BPFLG == 1) //如果是空头止盈买平委托 { If(NEWP >= SKAP + ZSM * MINP) //如果满足空头止损条件 { Commentary(\"【空头止损:买平委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(BPID)); //撤掉买平委托挂单 BPDEL = 2; //空头止损撤掉买平委托挂单 } } Else If(BPFLG == 2) //如果是空头止损买平委托 { Commentary(\"【空头止损:买平委托撤单!】\"); F_DeleteOrder(F_OrderContractNo(BPID)); //撤掉买平委托挂单 BPDEL = 1; //已发出撤掉买平委托挂单 } } } } } } //------------------------多空处理------------------------// If(OPFLG == 1) //多空处理 { If(KCFLG == 0) //如果未执行开仓处理 { If(BKC == 1) //如果满足多头开仓条件 { Commentary(\"【多头开仓:满足开仓条件!】\"); BKDFLG = 1; //开启买开处理 KCFLG = 1; //已执行多头处理 } Else If(SKC == 1) //如果满足空头开仓条件 { Commentary(\"【空头开仓:满足开仓条件!】\"); SKDFLG = 1; //开启卖开处理 KCFLG = 2; //已执行空头处理 } } } //------------------------委托处理------------------------// If(OPFLG == 1) //委托处理 { If(BKDFLG == 1) //如果已开启买开处理 { If(BKFLG == 0) //如果没有买开委托 { BKM = N; //买开委托手数 BKP = BKCP; //买开委托价格 Commentary(\"【多头开仓:买开委托发出!】\"); BKID = A_SendOrder(Enum_Buy,Enum_Entry,BKM,BKP); //发出买开委托 BKTKV = TKVL; //买开累计成交量 BKTKN = 0; //买开tick数量 BKFLG = 1; //已发出买开委托 } } If(SPDFLG > 0) //如果已开启卖平处理 { If(SPFLG == 0) //如果没有卖平委托 { If(BRP > 0) //如果有多头可用持仓 { SPM = BRP; //卖平委托手数 If(SPDFLG == 1) //如果是多头止盈卖平 { SPP = Min(BKAP + ZYM * MINP,RLP); //卖平委托价格 Commentary(\"【多头止盈:卖平委托发出!】\"); } Else If(SPDFLG == 2) //如果是多头止损卖平 { SPP = BIDP; //卖平委托价格 Commentary(\"【多头止损:卖平委托发出!】\"); } Else If(SPDFLG == 3) //如果是多头清仓卖平 { SPP = BIDP; //卖平委托价格 Commentary(\"【多头清仓:卖平委托发出!】\"); } SPID = A_SendOrder(Enum_Sell,SH,SPM,SPP); //发出卖平委托 SPFLG = SPDFLG; //已发出卖平委托 } } } If(SKDFLG == 1) //如果已开启卖开处理 { If(SKFLG == 0) //如果没有卖开委托 { SKM = N; //卖开委托手数 SKP = SKCP; //卖开委托价格 Commentary(\"【空头开仓:卖开委托发出!】\"); SKID = A_SendOrder(Enum_Sell,Enum_Entry,SKM,SKP); //发出卖开委托 SKTKV = TKVL; //卖开累计成交量 SKTKN = 0; //卖开tick数量 SKFLG = 1; //已发出卖开委托 } } If(BPDFLG > 0) //如果已开启买平处理 { If(BPFLG == 0) //如果没有买平委托 { If(SRP > 0) //如果有空头可用持仓 { BPM = SRP; //买平委托手数 If(BPDFLG == 1) //如果是空头止盈买平 { BPP = Max(SKAP - ZYM * MINP,FLP); //买平委托价格 Commentary(\"【空头止盈:买平委托发出!】\"); } Else If(BPDFLG == 2) //如果是空头止损买平 { BPP = ASKP; //买平委托价格 Commentary(\"【空头止损:买平委托发出!】\"); } Else If(BPDFLG == 3) //如果是空头清仓买平 { BPP = ASKP; //买平委托价格 Commentary(\"【空头清仓:买平委托发出!】\"); } BPID = A_SendOrder(Enum_Buy,SH,BPM,BPP); //发出买平委托 BPFLG = BPDFLG; //已发出买平委托 } } } }End

这是文华的语言?目前转化服务只提供简语言级别的(文华6,同花顺,东方财富等)