MQ 手動(dòng)下單輔助加入Tick問(wèn)題 [文華財(cái)經(jīng)]

  • 咨詢內(nèi)容: ?我想在手動(dòng)下單輔助中加入Tick數(shù)據(jù),以幫助判斷是否需要成交,具體如下
    首先定義全局變量COD,然后賦值:COD = M_GetTradeContract(); //合約編碼 然后定義Tick數(shù)據(jù)區(qū)并引用Tick數(shù)據(jù) VAR_TICKDATA m_TickData; m_TickData = Def_TickData(COD,1,50);
    此時(shí)報(bào)錯(cuò):第101行 "COD附近" DEF_TICKDATA函數(shù)第一個(gè)參數(shù)只能是字符常量
    這個(gè)該如何解決?在手動(dòng)下單輔助模型中如何引用Tick數(shù)據(jù)?







    全部代碼如下: //----------------------------------------------------------------------------------------------------------/*【策略】1、取得手動(dòng)下單的合約、手?jǐn)?shù)、買賣方向、開平方向;自設(shè)委托價(jià)格。2、如果為開倉(cāng):? ? ? ? 1)如果為買入開倉(cāng):
    3、如果為平倉(cāng):? ? ? ?1)如果為買入平倉(cāng):
    ? ? ? 2)如果為賣出平倉(cāng):
    *///----------------------------------------------------------------------------------------------------------

    Vars? ?Global_String TAC; //賬號(hào)? ?Global_String COD; //合約編碼? ?Global_Numeric TBS; //買賣方向? ?Global_Numeric TEE; //開平方向? ?Global_Numeric TVL; //交易手?jǐn)?shù)? ?Global_Numeric BIDP; //買一價(jià)? ?Global_Numeric ASKP; //賣一價(jià)? ?Global_Numeric BIDV; //買一量? ?Global_Numeric ASKV; //賣一量? ?Global_Numeric SH; //上海合約標(biāo)志? ?Global_Numeric MINP; //最小變動(dòng)價(jià)位? ?Global_Numeric BRP; //多頭可用持倉(cāng)? ?Global_Numeric SRP; //空頭可用持倉(cāng)? ?Global_Numeric BRP0; //多頭今倉(cāng)可用持倉(cāng)? ?Global_Numeric SRP0; //空頭今倉(cāng)可用持倉(cāng)? ?Global_Numeric BRP1; //多頭老倉(cāng)可用持倉(cāng)? ?Global_Numeric SRP1; //空頭老倉(cāng)可用持倉(cāng)? ?Global_Numeric BKID; //買開委托? ?Global_Numeric SKID; //賣開委托? ?Global_Numeric BPID0; //買平今倉(cāng)委托? ?Global_Numeric BPID1; //買平老倉(cāng)委托? ?Global_Numeric BPID; //買平委托? ?Global_Numeric SPID0; //賣平今倉(cāng)委托? ?Global_Numeric SPID1; //賣平老倉(cāng)委托? ?Global_Numeric SPID; //賣平委托? ?Global_Numeric BKFLG; //買開標(biāo)志? ?Global_Numeric SKFLG; //賣開標(biāo)志? ?Global_Numeric BPFLG0; //買平今倉(cāng)標(biāo)志? ?Global_Numeric BPFLG1; //買平老倉(cāng)標(biāo)志? ?Global_Numeric BPFLG; //買平標(biāo)志? ?Global_Numeric SPFLG0; //賣平今倉(cāng)標(biāo)志? ?Global_Numeric SPFLG1; //賣平老倉(cāng)標(biāo)志? ?Global_Numeric SPFLG; //賣平標(biāo)志? ?Global_Numeric BKM; //買開委托手?jǐn)?shù)? ?Global_Numeric SKM; //賣開委托手?jǐn)?shù)? ?Global_Numeric BPM0; //買平今倉(cāng)委托手?jǐn)?shù)? ?Global_Numeric BPM1; //買平老倉(cāng)委托手?jǐn)?shù)? ?Global_Numeric BPM; //買平委托手?jǐn)?shù)? ?Global_Numeric SPM0; //賣平今倉(cāng)委托手?jǐn)?shù)? ?Global_Numeric SPM1; //賣平老倉(cāng)委托手?jǐn)?shù)? ?Global_Numeric SPM; //賣平委托手?jǐn)?shù)? ?Global_Numeric BKP; //買開委托價(jià)格? ?Global_Numeric SKP; //賣開委托價(jià)格? ?Global_Numeric BPP0; //買平今倉(cāng)委托價(jià)格? ?Global_Numeric BPP1; //買平老倉(cāng)委托價(jià)格? ?Global_Numeric BPP; //買平委托價(jià)格? ?Global_Numeric SPP0; //賣平今倉(cāng)委托價(jià)格? ?Global_Numeric SPP1; //賣平老倉(cāng)委托價(jià)格? ?Global_Numeric SPP; //賣平委托價(jià)格? ?Global_Numeric KPFLG; //委托處理標(biāo)志? ?Global_Numeric KT; ? ? ? ? ? ? ? ? ? ? ? ? ? //開倉(cāng)委托發(fā)出時(shí)間?
    ? ?Numeric Lost(2); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //止損參數(shù)? ?Numeric Win(10); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //止盈參數(shù)? ?Numeric m_CurrTime; ? ? ? ? ? ? ? ? ? ? ? ?//當(dāng)前時(shí)間? ?Numeric m_BuyAvg; ? ? ? ? ? ? ? ? ? ? ? ? ? //多頭持倉(cāng)均價(jià)? ?Numeric m_New; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 最新價(jià)? ?Numeric m_MinPrice; ? ? ? ? ? ? ? ? ? ? ? ? // 最小變動(dòng)價(jià)位? ?Numeric m_isClose; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//收盤清倉(cāng)標(biāo)志,1 = 收盤0 = 盤中? ?Numeric T(2); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//停頓2秒平倉(cāng)? ?VAR_TICKDATA m_TickData;
    Begin
    //<1 數(shù)據(jù)準(zhǔn)備>? ?m_New = COD.Price("New");? ?m_BuyAvg = A_BuyAvgPrice(); //取得持倉(cāng)欄中該合約多頭持倉(cāng)均價(jià)? ?m_MinPrice = COD.Price("MinPrice");//取最小變動(dòng)價(jià)? ?//m_TickData = Def_TickData("m1705",1,4); // 保存最近四筆的tick 數(shù)據(jù)? ?m_CurrTime = CurrentTime(); // 獲取當(dāng)前時(shí)間? ?//m_isClose = (m_CurrTime >=0.101430 && m_CurrTime <=0.101510)||(m_CurrTime >=0.112930 && m_CurrTime <=0.113010)||(m_CurrTime >=0.145930 && m_CurrTime <=0.150010);? ?//</1>

    ? ?//------------------------------------委托獲取------------------------------------//? ?If(KPFLG == 0) //如果未開啟委托處理? ?{? ? ? TAC = M_GetTradeAccount(0); //賬號(hào)? ? ? COD = M_GetTradeContract(); //合約編碼? ? ? TBS = M_GetTradeBuySell(); //買賣方向? ? ? TEE = M_GetTradeEntryExit(); //開平方向? ? ? TVL = M_GetTradeVol(); //交易手?jǐn)?shù) m_TickData = Def_TickData(COD,1,50);? ? ? If(TVL > 0 && COD.A_IsExchangeOpen() == 1) //如果交易手?jǐn)?shù)大于0,且當(dāng)前狀態(tài)是開盤? ? ? { ? If(TBS == Enum_Buy && TEE == Enum_Entry) //如果是買開方向? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "做多:手動(dòng)買開" + Text(TVL) + "手!】");? ? ? ? ? ? KPFLG = 1; //開啟買開委托處理? ? ? ? ?}? ? ? ? ?Else If(TBS == Enum_Sell && TEE == Enum_Entry) //如果是賣開方向? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "做空:手動(dòng)賣開" + Text(TVL) + "手!】");? ? ? ? ? ? KPFLG = 2; //開啟賣開委托處理? ? ? ? ?}? ? ? ? ?Else If(TBS == Enum_Buy && TEE == Enum_Exit) //如果是買平方向? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平空:手動(dòng)買平" + Text(TVL) + "手!】");? ? ? ? ? ? KPFLG = 3; //開啟買平委托處理? ? ? ? ?}? ? ? ? ?Else If(TBS == Enum_Buy && TEE == Enum_ExitToday) //如果是買平今方向? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平今空:手動(dòng)買平" + Text(TVL) + "手!】");? ? ? ? ? ? KPFLG = 4; //開啟買平今倉(cāng)委托處理? ? ? ? ?}? ? ? ? ?Else If(TBS == Enum_Sell && TEE == Enum_Exit) //如果是賣平方向? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平多:手動(dòng)賣平" + Text(TVL) + "手!】");? ? ? ? ? ? KPFLG = 5; //開啟賣平委托處理? ? ? ? ?}? ? ? ? ?Else If(TBS == Enum_Sell && TEE == Enum_ExitToday) //如果是賣平今方向? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平今多:手動(dòng)賣平" + Text(TVL) + "手!】");? ? ? ? ? ? KPFLG = 6; //開啟賣平今倉(cāng)委托處理? ? ? ? ?} SH = COD.A_IsSHCode(); //上海合約標(biāo)志? ? ? ? ?MINP = COD.Price("MinPrice"); //最小變動(dòng)價(jià)位? ? ? }? ?}
    ? ?//------------------------------------委托處理------------------------------------//? ?If(KPFLG > 0 && COD.A_IsExchangeOpen() == 1) //如果已開啟委托處理,且當(dāng)前狀態(tài)是開盤? ?{? ? ? BIDP = COD.Price("Bid1"); //買一價(jià)? ? ? ASKP = COD.Price("Ask1"); //賣一價(jià)? ? ? BIDV = COD.Price("BidVol1"); //買一量? ? ? ASKV = COD.Price("AskVol1"); //賣一量? ? ? BRP = COD.A_BuyRemainPosition(); //多頭可用持倉(cāng)? ? ? SRP = COD.A_SellRemainPosition(); //空頭可用持倉(cāng)? ? ? If(SH == 1) //如果當(dāng)前合約是上海市場(chǎng)合約 {? ? ? ? ?BRP0 = COD.A_TodayBuyRemainPosition(); //多頭今倉(cāng)可用持倉(cāng)? ? ? ? ?SRP0 = COD.A_TodaySellRemainPosition(); //空頭今倉(cāng)可用持倉(cāng)? ? ? ? ?BRP1 = BRP - BRP0; //多頭老倉(cāng)可用持倉(cāng)? ? ? ? ?SRP1 = SRP - SRP0; //空頭老倉(cāng)可用持倉(cāng) ? }
    //------------------------------------成交判斷------------------------------------//? ? ? If(BKFLG == 1) //如果有買開委托? ? ? {? ? ? ? ?If(F_OrderStatus(BKID) == Enum_Filled) //如果買開委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "做多:買開委托成交!】");? ? ? ? ? ? TVL = TVL - BKM; //交易手?jǐn)?shù)自減買開委托手?jǐn)?shù)? ? ? ? ? ? BKFLG = 0; //買開標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(SKFLG == 1) //如果有賣開委托? ? ? {? ? ? ? ?If(F_OrderStatus(SKID) == Enum_Filled) //如果賣開委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "做空:賣開委托成交!】");? ? ? ? ? ? TVL = TVL - SKM; //交易手?jǐn)?shù)自減賣開委托手?jǐn)?shù)? ? ? ? ? ? SKFLG = 0; //賣開標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(BPFLG0 == 1) //如果有買平今倉(cāng)委托? ? ? {? ? ? ? ?If(F_OrderStatus(BPID0) == Enum_Filled) //如果買平今倉(cāng)委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平空:買平今倉(cāng)委托成交!】");? ? ? ? ? ? TVL = TVL - BPM0; //交易手?jǐn)?shù)自減買平今倉(cāng)委托手?jǐn)?shù)? ? ? ? ? ? BPFLG0 = 0; //買平今倉(cāng)標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(BPFLG1 == 1) //如果有買平老倉(cāng)委托? ? ? {? ? ? ? ?If(F_OrderStatus(BPID1) == Enum_Filled) //如果買平老倉(cāng)委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平空:買平老倉(cāng)委托成交!】");? ? ? ? ? ? TVL = TVL - BPM1; //交易手?jǐn)?shù)自減買平老倉(cāng)委托手?jǐn)?shù)? ? ? ? ? ? BPFLG1 = 0; //買平老倉(cāng)標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(BPFLG == 1) //如果有買平委托? ? ? {? ? ? ? ?If(F_OrderStatus(BPID) == Enum_Filled) //如果買平委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平空:買平委托成交!】");? ? ? ? ? ? TVL = TVL - BPM; //交易手?jǐn)?shù)自減買平委托手?jǐn)?shù)? ? ? ? ? ? BPFLG = 0; //買平標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(SPFLG0 == 1) //如果有賣平今倉(cāng)委托? ? ? {? ? ? ? ?If(F_OrderStatus(SPID0) == Enum_Filled) //如果賣平今倉(cāng)委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平多:賣平今倉(cāng)委托成交!】");? ? ? ? ? ? TVL = TVL - SPM0; //交易手?jǐn)?shù)自減賣平今倉(cāng)委托手?jǐn)?shù)? ? ? ? ? ? SPFLG0 = 0; //賣平今倉(cāng)標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(SPFLG1 == 1) //如果有賣平老倉(cāng)委托? ? ? {? ? ? ? ?If(F_OrderStatus(SPID1) == Enum_Filled) //如果賣平老倉(cāng)委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平多:賣平老倉(cāng)委托成交!】");? ? ? ? ? ? TVL = TVL - SPM1; //交易手?jǐn)?shù)自減賣平老倉(cāng)委托手?jǐn)?shù)? ? ? ? ? ? SPFLG1 = 0; //賣平老倉(cāng)標(biāo)志歸0? ? ? ? ?}? ? ? }
    ? ? ? If(SPFLG == 1) //如果有賣平委托? ? ? {? ? ? ? ?If(F_OrderStatus(SPID) == Enum_Filled) //如果賣平委托成交? ? ? ? ?{? ? ? ? ? ? Commentary("【" + COD + "平多:賣平委托成交!】");? ? ? ? ? ? TVL = TVL - SPM; //交易手?jǐn)?shù)自減賣平委托手?jǐn)?shù)? ? ? ? ? ? SPFLG = 0; //賣平標(biāo)志歸0? ? ? ? ?} }
    ? ? ? //------------------------------------委托處理------------------------------------//? ? ? If(KPFLG == 1) //如果已開啟買開委托處理? ? ? {? ? ? ? ?If(BKFLG == 0) //如果沒(méi)有買開委托? ? ? ? ?{? ? ? ? ? ? BKM = Min(ASKV,TVL); //買開委托手?jǐn)?shù) ? ? ? ? ? ASKV賣一量 ? TVL 下單手?jǐn)?shù)
    ? /**? ?* ?這里才是需要修改的條件,基于條件就要下單了!~ ?? ?*/? ? ? ? ? ? If(BKM > 0) //如果買開委托手?jǐn)?shù)大于0? ? ? ? ? ? {? ? ? ? ? ? ? ?Commentary("【" + COD + "做多:公式買開" + Text(BKM) + "手!】");? ? ? ? ? ? ? ?Commentary("【" + COD + "做多:買開委托發(fā)出!】");? ? ? ? ? ? ? ?BKP = ASKP; //買開委托價(jià)格設(shè)為賣一價(jià) ? KT = CurrentTime();? ? ? ? ? ? ? ?BKID = COD.A_SendOrder(Enum_Buy,Enum_Entry,BKM,BKP,TAC); //以買開委托價(jià)格發(fā)出買開委托手?jǐn)?shù)的買開委托? ? ? ? ? ? ? ?BKFLG = 1; //已發(fā)出買開委托? ? ? ? ? ? }? ? ? ? ? ? Else If(BKM == 0) //如果買開委托手?jǐn)?shù)等于0? ? ? ? ? ? {? ? ? ? ? ? ? ?Commentary("【" + COD + "做多:買開委托完成!】"); ?? ? /** * ?這里退出是有疑問(wèn)的,如果退出,如何止盈止損? */? ? ? ? ? ? ? ?Exit(); //退出公式? ? ? ? ? ? }? ? ? ? ?}? ? ? } ? Else If(KPFLG == 2) //如果已開啟賣開委托處理? ? ? {? ? ? ? ?If(SKFLG == 0) //如果沒(méi)有賣開委托? ? ? ? ?{? ? ? ? ? ? SKM = Min(BIDV,TVL); //賣開委托手?jǐn)?shù)
    ? ? ? ? ? ? /**? ?* ?這里才是需要修改的條件,基于條件就要下單了!~ ?? ?*/? ? ? ? ? ? If(SKM > 0) //如果賣開委托手?jǐn)?shù)大于0? ? ? ? ? ? {? ? ? ? ? ? ? ?Commentary("【" + COD + "做空:公式賣開" + Text(SKM) + "手!】");? ? ? ? ? ? ? ?Commentary("【" + COD + "做空:賣開委托發(fā)出!】");? ? ? ? ? ? ? ?SKP = BIDP; //賣開委托價(jià)格設(shè)為買一價(jià) KT = CurrentTime();? ? ? ? ? ? ? ?SKID = COD.A_SendOrder(Enum_Sell,Enum_Entry,SKM,SKP,TAC); //以賣開委托價(jià)格發(fā)出賣開委托手?jǐn)?shù)的賣開委托? ? ? ? ? ? ? ?SKFLG = 1; //已發(fā)出賣開委托? ? ? ? ? ? }? ? ? ? ? ? Else If(SKM == 0) //如果賣開委托手?jǐn)?shù)等于0? ? ? ? ? ? {? ? ? ? ? ? ? ?Commentary("【" + COD + "做空:賣開委托完成!】"); ?/** * ?這里退出是有疑問(wèn)的,如果退出,如何止盈止損? */? ? ? ? ? ? ? ?Exit(); //退出公式? ? ? ? ? ? }? ? ? ? ?}? ? ? }
    ?//止損 ?If(m_BuyAvg-m_New >=Lost*m_MinPrice && BRP >0) ?{ Commentary("止損"); A_SendOrder(Enum_Sell,Enum_Exit, F_BuyRemainPosition(),COD.Price("bid1")); Commentary("止損完成,準(zhǔn)備退出"); Exit(); //退出公式 ?} ? //止盈或平推 ?If(TimeDiff(m_CurrTime,KT) >= T && (m_BuyAvg-m_New ?<=m_MinPrice) && BRP >0) { Commentary(Text(T) + "秒價(jià)格不前進(jìn)就平倉(cāng)"); A_SendOrder(Enum_Sell,Enum_Exit, F_BuyRemainPosition(),COD.Price("bid1")); Commentary("止盈平推完成,準(zhǔn)備退出"); Exit(); //退出公式 ?}
    ? ?}End

    ?

    ?來(lái)源:程序化99

  • 文華技術(shù)人員: ?這樣調(diào)整下:

    Vars ? ?Global_String TAC;? //賬號(hào) ? ?Global_String COD;? //合約編碼 ? ?Global_Numeric TBS;? //買賣方向 ? ?Global_Numeric TEE;? //開平方向 ? ?Global_Numeric TVL;? //交易手?jǐn)?shù) ? ?Global_Numeric BIDP;? //買一價(jià) ? ?Global_Numeric ASKP; //賣一價(jià) ? ?Global_Numeric BIDV;? //買一量 ? ?Global_Numeric ASKV;? //賣一量 ? ?Global_Numeric SH;? //上海合約標(biāo)志 ? ?Global_Numeric MINP;? //最小變動(dòng)價(jià)位 ? ?Global_Numeric BRP;? //多頭可用持倉(cāng) ? ?Global_Numeric SRP;? //空頭可用持倉(cāng) ? ?Global_Numeric BRP0;? //多頭今倉(cāng)可用持倉(cāng) ? ?Global_Numeric SRP0;? //空頭今倉(cāng)可用持倉(cāng) ? ?Global_Numeric BRP1;? //多頭老倉(cāng)可用持倉(cāng) ? ?Global_Numeric SRP1;? //空頭老倉(cāng)可用持倉(cāng) ? ?Global_Numeric BKID;? //買開委托 ? ?Global_Numeric SKID;? //賣開委托 ? ?Global_Numeric BPID0;? //買平今倉(cāng)委托 ? ?Global_Numeric BPID1;? //買平老倉(cāng)委托 ? ?Global_Numeric BPID;? //買平委托 ? ?Global_Numeric SPID0;? //賣平今倉(cāng)委托 ? ?Global_Numeric SPID1;? //賣平老倉(cāng)委托 ? ?Global_Numeric SPID;? //賣平委托 ? ?Global_Numeric BKFLG;? //買開標(biāo)志 ? ?Global_Numeric SKFLG;? //賣開標(biāo)志 ? ?Global_Numeric BPFLG0;? //買平今倉(cāng)標(biāo)志 ? ?Global_Numeric BPFLG1;? //買平老倉(cāng)標(biāo)志 ? ?Global_Numeric BPFLG;? //買平標(biāo)志 ? ?Global_Numeric SPFLG0;? //賣平今倉(cāng)標(biāo)志 ? ?Global_Numeric SPFLG1;? //賣平老倉(cāng)標(biāo)志 ? ?Global_Numeric SPFLG;? //賣平標(biāo)志 ? ?Global_Numeric BKM;? //買開委托手?jǐn)?shù) ? ?Global_Numeric SKM;? //賣開委托手?jǐn)?shù) ? ?Global_Numeric BPM0;? //買平今倉(cāng)委托手?jǐn)?shù) ? ?Global_Numeric BPM1;? //買平老倉(cāng)委托手?jǐn)?shù) ? ?Global_Numeric BPM;? //買平委托手?jǐn)?shù) ? ?Global_Numeric SPM0;? //賣平今倉(cāng)委托手?jǐn)?shù) ? ?Global_Numeric SPM1;? //賣平老倉(cāng)委托手?jǐn)?shù) ? ?Global_Numeric SPM;? //賣平委托手?jǐn)?shù) ? ?Global_Numeric BKP;? //買開委托價(jià)格 ? ?Global_Numeric SKP;? //賣開委托價(jià)格 ? ?Global_Numeric BPP0;? //買平今倉(cāng)委托價(jià)格 ? ?Global_Numeric BPP1;? //買平老倉(cāng)委托價(jià)格 ? ?Global_Numeric BPP;? //買平委托價(jià)格 ? ?Global_Numeric SPP0;? //賣平今倉(cāng)委托價(jià)格 ? ?Global_Numeric SPP1;? //賣平老倉(cāng)委托價(jià)格 ? ?Global_Numeric SPP;? //賣平委托價(jià)格 ? ?Global_Numeric KPFLG;? //委托處理標(biāo)志 ? ?Global_Numeric KT; ? ? ? ? ? ? ? ? ? ? ? ? ? //開倉(cāng)委托發(fā)出時(shí)間?
    ? ?Numeric Lost(2); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //止損參數(shù) ? ?Numeric Win(10); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //止盈參數(shù) ? ?Numeric m_CurrTime; ? ? ? ? ? ? ? ? ? ? ? ?//當(dāng)前時(shí)間 ? ?Numeric m_BuyAvg; ? ? ? ? ? ? ? ? ? ? ? ? ? //多頭持倉(cāng)均價(jià) ? ?Numeric m_New; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 最新價(jià) ? ?Numeric m_MinPrice; ? ? ? ? ? ? ? ? ? ? ? ? // 最小變動(dòng)價(jià)位 ? ?Numeric m_isClose; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//收盤清倉(cāng)標(biāo)志,1 = 收盤0 = 盤中 ? ?Numeric T(2); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//停頓2秒平倉(cāng) ? Var_TickData m_TickData; Begin
    //<1 數(shù)據(jù)準(zhǔn)備> ? ?m_New = COD.Price("New"); ? ?m_BuyAvg = A_BuyAvgPrice(); //取得持倉(cāng)欄中該合約多頭持倉(cāng)均價(jià) ? ?m_MinPrice = COD.Price("MinPrice");//取最小變動(dòng)價(jià) ? ?//m_TickData = Def_TickData("m1705",1,4); // 保存最近四筆的tick 數(shù)據(jù) ? ?m_CurrTime = CurrentTime(); // 獲取當(dāng)前時(shí)間 ? ?//m_isClose = (m_CurrTime >=0.101430 && m_CurrTime <=0.101510)||(m_CurrTime >=0.112930 && m_CurrTime <=0.113010)||(m_CurrTime >=0.145930 && m_CurrTime <=0.150010); ? ? //</1>

    ? ?//------------------------------------委托獲取------------------------------------// ? ?If(KPFLG == 0) //如果未開啟委托處理 ? ?{ ? ? ? TAC = M_GetTradeAccount(0); //賬號(hào) ? ? ? COD = M_GetTradeContract(); //合約編碼 ? ? ? TBS = M_GetTradeBuySell(); //買賣方向 ? ? ? TEE = M_GetTradeEntryExit(); //開平方向 ? ? ? TVL = M_GetTradeVol(); //交易手?jǐn)?shù)
    m_TickData = Def_TickData("COD",1,50); ? ? ? If(TVL > 0 && COD.A_IsExchangeOpen() == 1) //如果交易手?jǐn)?shù)大于0,且當(dāng)前狀態(tài)是開盤 ? ? ? {
    ?? If(TBS == Enum_Buy && TEE == Enum_Entry) //如果是買開方向 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "做多:手動(dòng)買開" + Text(TVL) + "手!】"); ? ? ? ? ? ? KPFLG = 1; //開啟買開委托處理 ? ? ? ? ?} ? ? ? ? ?Else If(TBS == Enum_Sell && TEE == Enum_Entry) //如果是賣開方向 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "做空:手動(dòng)賣開" + Text(TVL) + "手!】"); ? ? ? ? ? ? KPFLG = 2; //開啟賣開委托處理 ? ? ? ? ?} ? ? ? ? ?Else If(TBS == Enum_Buy && TEE == Enum_Exit) //如果是買平方向 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平空:手動(dòng)買平" + Text(TVL) + "手!】"); ? ? ? ? ? ? KPFLG = 3; //開啟買平委托處理 ? ? ? ? ?} ? ? ? ? ?Else If(TBS == Enum_Buy && TEE == Enum_ExitToday) //如果是買平今方向 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平今空:手動(dòng)買平" + Text(TVL) + "手!】"); ? ? ? ? ? ? KPFLG = 4; //開啟買平今倉(cāng)委托處理 ? ? ? ? ?} ? ? ? ? ?Else If(TBS == Enum_Sell && TEE == Enum_Exit) //如果是賣平方向 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平多:手動(dòng)賣平" + Text(TVL) + "手!】"); ? ? ? ? ? ? KPFLG = 5; //開啟賣平委托處理 ? ? ? ? ?} ? ? ? ? ?Else If(TBS == Enum_Sell && TEE == Enum_ExitToday) //如果是賣平今方向 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平今多:手動(dòng)賣平" + Text(TVL) + "手!】"); ? ? ? ? ? ? KPFLG = 6; //開啟賣平今倉(cāng)委托處理 ? ? ? ? ?}
    SH = COD.A_IsSHCode(); //上海合約標(biāo)志 ? ? ? ? ?MINP = COD.Price("MinPrice"); //最小變動(dòng)價(jià)位 ? ? ? } ? ?}
    ? ?//------------------------------------委托處理------------------------------------// ? ?If(KPFLG > 0 && COD.A_IsExchangeOpen() == 1) //如果已開啟委托處理,且當(dāng)前狀態(tài)是開盤 ? ?{ ? ? ? BIDP = COD.Price("Bid1"); //買一價(jià) ? ? ? ASKP = COD.Price("Ask1"); //賣一價(jià) ? ? ? BIDV = COD.Price("BidVol1"); //買一量 ? ? ? ASKV = COD.Price("AskVol1"); //賣一量 ? ? ? BRP = COD.A_BuyRemainPosition(); //多頭可用持倉(cāng) ? ? ? SRP = COD.A_SellRemainPosition(); //空頭可用持倉(cāng) ? ? ? If(SH == 1) //如果當(dāng)前合約是上海市場(chǎng)合約
    { ? ? ? ? ?BRP0 = COD.A_TodayBuyRemainPosition(); //多頭今倉(cāng)可用持倉(cāng) ? ? ? ? ?SRP0 = COD.A_TodaySellRemainPosition(); //空頭今倉(cāng)可用持倉(cāng) ? ? ? ? ?BRP1 = BRP - BRP0; //多頭老倉(cāng)可用持倉(cāng) ? ? ? ? ?SRP1 = SRP - SRP0; //空頭老倉(cāng)可用持倉(cāng)
    ?? }

    //------------------------------------成交判斷------------------------------------// ? ? ? If(BKFLG == 1) //如果有買開委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(BKID) == Enum_Filled) //如果買開委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "做多:買開委托成交!】"); ? ? ? ? ? ? TVL = TVL - BKM; //交易手?jǐn)?shù)自減買開委托手?jǐn)?shù) ? ? ? ? ? ? BKFLG = 0; //買開標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(SKFLG == 1) //如果有賣開委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(SKID) == Enum_Filled) //如果賣開委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "做空:賣開委托成交!】"); ? ? ? ? ? ? TVL = TVL - SKM; //交易手?jǐn)?shù)自減賣開委托手?jǐn)?shù) ? ? ? ? ? ? SKFLG = 0; //賣開標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(BPFLG0 == 1) //如果有買平今倉(cāng)委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(BPID0) == Enum_Filled) //如果買平今倉(cāng)委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平空:買平今倉(cāng)委托成交!】"); ? ? ? ? ? ? TVL = TVL - BPM0; //交易手?jǐn)?shù)自減買平今倉(cāng)委托手?jǐn)?shù) ? ? ? ? ? ? BPFLG0 = 0; //買平今倉(cāng)標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(BPFLG1 == 1) //如果有買平老倉(cāng)委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(BPID1) == Enum_Filled) //如果買平老倉(cāng)委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平空:買平老倉(cāng)委托成交!】"); ? ? ? ? ? ? TVL = TVL - BPM1; //交易手?jǐn)?shù)自減買平老倉(cāng)委托手?jǐn)?shù) ? ? ? ? ? ? BPFLG1 = 0; //買平老倉(cāng)標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(BPFLG == 1) //如果有買平委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(BPID) == Enum_Filled) //如果買平委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平空:買平委托成交!】"); ? ? ? ? ? ? TVL = TVL - BPM; //交易手?jǐn)?shù)自減買平委托手?jǐn)?shù) ? ? ? ? ? ? BPFLG = 0; //買平標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(SPFLG0 == 1) //如果有賣平今倉(cāng)委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(SPID0) == Enum_Filled) //如果賣平今倉(cāng)委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平多:賣平今倉(cāng)委托成交!】"); ? ? ? ? ? ? TVL = TVL - SPM0; //交易手?jǐn)?shù)自減賣平今倉(cāng)委托手?jǐn)?shù) ? ? ? ? ? ? SPFLG0 = 0; //賣平今倉(cāng)標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(SPFLG1 == 1) //如果有賣平老倉(cāng)委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(SPID1) == Enum_Filled) //如果賣平老倉(cāng)委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平多:賣平老倉(cāng)委托成交!】"); ? ? ? ? ? ? TVL = TVL - SPM1; //交易手?jǐn)?shù)自減賣平老倉(cāng)委托手?jǐn)?shù) ? ? ? ? ? ? SPFLG1 = 0; //賣平老倉(cāng)標(biāo)志歸0 ? ? ? ? ?} ? ? ? }
    ? ? ? If(SPFLG == 1) //如果有賣平委托 ? ? ? { ? ? ? ? ?If(F_OrderStatus(SPID) == Enum_Filled) //如果賣平委托成交 ? ? ? ? ?{ ? ? ? ? ? ? Commentary("【" + COD + "平多:賣平委托成交!】"); ? ? ? ? ? ? TVL = TVL - SPM; //交易手?jǐn)?shù)自減賣平委托手?jǐn)?shù) ? ? ? ? ? ? SPFLG = 0; //賣平標(biāo)志歸0 ? ? ? ? ?}
    ?}
    ? ? ? //------------------------------------委托處理------------------------------------// ? ? ? If(KPFLG == 1) //如果已開啟買開委托處理 ? ? ? { ? ? ? ? ?If(BKFLG == 0) //如果沒(méi)有買開委托 ? ? ? ? ?{ ? ? ? ? ? ? BKM = Min(ASKV,TVL); //買開委托手?jǐn)?shù) ? ? ? ? ? ASKV賣一量 ? TVL 下單手?jǐn)?shù)

    ?? /**?
    ??* ?這里才是需要修改的條件,基于條件就要下單了!~ ??
    ??*/ ? ? ? ? ? ? If(BKM > 0) //如果買開委托手?jǐn)?shù)大于0 ? ? ? ? ? ? { ? ? ? ? ? ? ? ?Commentary("【" + COD + "做多:公式買開" + Text(BKM) + "手!】"); ? ? ? ? ? ? ? ?Commentary("【" + COD + "做多:買開委托發(fā)出!】"); ? ? ? ? ? ? ? ?BKP = ASKP; //買開委托價(jià)格設(shè)為賣一價(jià)
    ?? KT = CurrentTime(); ? ? ? ? ? ? ? ?BKID = COD.A_SendOrder(Enum_Buy,Enum_Entry,BKM,BKP,TAC); //以買開委托價(jià)格發(fā)出買開委托手?jǐn)?shù)的買開委托 ? ? ? ? ? ? ? ?BKFLG = 1; //已發(fā)出買開委托 ? ? ? ? ? ? } ? ? ? ? ? ? Else If(BKM == 0) //如果買開委托手?jǐn)?shù)等于0 ? ? ? ? ? ? { ? ? ? ? ? ? ? ?Commentary("【" + COD + "做多:買開委托完成!】");
    ???
    ?? /**
    ?* ?這里退出是有疑問(wèn)的,如果退出,如何止盈止損?
    ?*/ ? ? ? ? ? ? ? ?Exit(); //退出公式 ? ? ? ? ? ? } ? ? ? ? ?} ? ? ? }
    ?? Else If(KPFLG == 2) //如果已開啟賣開委托處理 ? ? ? { ? ? ? ? ?If(SKFLG == 0) //如果沒(méi)有賣開委托 ? ? ? ? ?{ ? ? ? ? ? ? SKM = Min(BIDV,TVL); //賣開委托手?jǐn)?shù)
    ? ? ? ? ? ? /**?
    ??* ?這里才是需要修改的條件,基于條件就要下單了!~ ??
    ??*/ ? ? ? ? ? ? If(SKM > 0) //如果賣開委托手?jǐn)?shù)大于0 ? ? ? ? ? ? { ? ? ? ? ? ? ? ?Commentary("【" + COD + "做空:公式賣開" + Text(SKM) + "手!】"); ? ? ? ? ? ? ? ?Commentary("【" + COD + "做空:賣開委托發(fā)出!】"); ? ? ? ? ? ? ? ?SKP = BIDP; //賣開委托價(jià)格設(shè)為買一價(jià)
    KT = CurrentTime(); ? ? ? ? ? ? ? ?SKID = COD.A_SendOrder(Enum_Sell,Enum_Entry,SKM,SKP,TAC); //以賣開委托價(jià)格發(fā)出賣開委托手?jǐn)?shù)的賣開委托 ? ? ? ? ? ? ? ?SKFLG = 1; //已發(fā)出賣開委托 ? ? ? ? ? ? } ? ? ? ? ? ? Else If(SKM == 0) //如果賣開委托手?jǐn)?shù)等于0 ? ? ? ? ? ? { ? ? ? ? ? ? ? ?Commentary("【" + COD + "做空:賣開委托完成!】");
    ??/**
    ?* ?這里退出是有疑問(wèn)的,如果退出,如何止盈止損?
    ?*/ ? ? ? ? ? ? ? ?Exit(); //退出公式 ? ? ? ? ? ? } ? ? ? ? ?} ? ? ? }


    ??//止損
    ??If(m_BuyAvg-m_New >=Lost*m_MinPrice && BRP >0)?
    ??{
    ?Commentary("止損");
    ?A_SendOrder(Enum_Sell,Enum_Exit, F_BuyRemainPosition(),COD.Price("bid1"));
    ?Commentary("止損完成,準(zhǔn)備退出");
    ?Exit(); //退出公式
    ??}
    ?
    //止盈或平推
    ??If(TimeDiff(m_CurrTime,KT) >= T && (m_BuyAvg-m_New ?<=m_MinPrice) && BRP >0) {
    ?Commentary(Text(T) + "秒價(jià)格不前進(jìn)就平倉(cāng)");
    ?A_SendOrder(Enum_Sell,Enum_Exit, F_BuyRemainPosition(),COD.Price("bid1"));
    ?Commentary("止盈平推完成,準(zhǔn)備退出");
    ?Exit(); //退出公式
    ??}
    ? ?} End?

    ?

    ?來(lái)源: www.tumamayizhan.com

  • 文華客服: 這么厲害,tyle=" text-align:="" right"=""> ?來(lái)源: www.tumamayizhan.com
  • 文華客服:m_TickData = Def_TickData("COD",1,50); ?
    引用"COD"字符就能自動(dòng)匹配到當(dāng)前手動(dòng)的合約?請(qǐng)教這是什么機(jī)制?

    ?

  • 網(wǎng)友回復(fù): ?是的,這個(gè)是根據(jù)您當(dāng)前手動(dòng)下單頁(yè)面上所選合約來(lái)自動(dòng)指定的,
    這個(gè)是一種常見的寫法,您可以參考MQ說(shuō)明書中算法模型使用這部分來(lái)詳細(xì)了解一下關(guān)于算法模型手動(dòng)下單的使用:
    http://mq.wenhua.com.cn/Solution/index?flag=0




    ?

 

有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 511411198  點(diǎn)擊這里給我發(fā)消息進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒(méi)有相關(guān)內(nèi)容
主站蜘蛛池模板: 99精品久久久中文字幕| 亚洲av无码成人精品区狼人影院| 色欲国产麻豆一精品一AV一免费| 最近中文字幕视频高清| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区四区 国产欧美精品一区二区三区四区 国产欧美精品一区二区色综合 | 污视频网站免费| 公交车上被弄进走不动| 大战孕妇12p| 国语free性xxxxxhd| 久久久最新精品| 末成年女a∨片一区二区| 亚洲日韩中文字幕在线播放| 色偷偷91综合久久噜噜| 国产成人免费ā片在线观看| 182tv午夜精品视频在线播放| 无码av免费一区二区三区| 九九视频在线观看6| 美女的扒开尿口让男人桶动态图| 国产在线拍揄自揄拍无码| 欧美在线精品永久免费播放| 国产精品区一区二区三| 88aa四虎影成人精品| 精品在线观看免费| 成年18网站免费视频网站| 久久国产美女免费观看精品| 欧美XXXX做受欧美1314| 喷血推荐长腿连衣裙美女刚进房间| 高跟丝袜美女一级毛片| 国产成人精品无码播放| **一级毛片全部免| 国产精品自产拍在线网站| 91精品导航在线网址免费| 国内精品视频一区二区三区八戒| 99热在线精品播放| 在线观看91精品国产入口| 中文字幕电影资源网站大全| 日本人在线看片| 久久国产美女免费观看精品| 日本理论片2828理论片| 久久天天躁狠狠躁夜夜av| 日本高清二三四本2021|