大伊人青草狠狠久久-大伊香蕉精品视频在线-大伊香蕉精品一区视频在线-大伊香蕉在线精品不卡视频-大伊香蕉在线精品视频75-大伊香蕉在线精品视频人碰人

您現(xiàn)在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者公式>>正文內(nèi)容

完善的日內(nèi)交易系統(tǒng)框架源碼 可處理信號(hào)反復(fù)問(wèn)題[開拓者公式]

  • 源碼內(nèi)容:

    //------------------------------------------------------------------------
    // 簡(jiǎn)稱: s007
    // 名稱: 來(lái)源 www.weiqiv.net.cn
    // 類別: 交易指令
    // 類型: 其他
    // 輸出:
    //------------------------------------------------------------------------
    Params
            Numeric maxLots(1);//單次開倉(cāng)手?jǐn)?shù)
            Numeric maxTrad(3);//最大交易次數(shù)
            Numeric splitRate(3); //交易滑點(diǎn)和傭金       
           
            Numeric ma1(5);
            Numeric ma2(18);
           
            Numeric tradBegin(909); //開倉(cāng)時(shí)間       
            Numeric tradEnd(1440); //開倉(cāng)時(shí)間       
            Numeric closeTime(1456); //bar的時(shí)間超過(guò)此值后平倉(cāng)
           
            Numeric stopLoss(40); //虧損大于于此值時(shí)止損,為0不判斷
            Numeric stopProfis(200); //盈利高于此值時(shí)止贏,為0不判斷
           
            Numeric tracProfis(0); //盈利高于此值后執(zhí)行追蹤止贏,為0不判斷
            Numeric tracLoss(0); //追蹤止盈的回撤值,為0不判斷,
           
            Numeric returnProfis(70); //盈利高于此值后執(zhí)行回撤止贏,為0不判斷       
                   
            Numeric minProfis(10); //持倉(cāng)bar數(shù)超過(guò)maxHoles后盈利小于此值平倉(cāng),為0不判斷
            Numeric maxHolds(7);//為0不判斷
    Vars
            String fileName;        
            String fileName2;
            String toDay;
            Numeric splitDot;        //交易滑點(diǎn)
           
            Bool b1(False);//開多條件
            Bool b2(False);//開多條件       
           
            Bool s1(False);//開空條件
            Bool s2(False);//開空條件       
           
            Bool bc(False);//開多條件
            Bool sc(False);//開多條件
           
            Numeric tradePrice(0);//發(fā)單的價(jià)格       
           
            StringSeries  tradMem("");//交易描述       
            Numeric tradProve(0);//可否開倉(cāng):0/禁止,1/允許
            Numeric tradNum(0);//交易次數(shù)
            Numeric tradState(0);//持倉(cāng)狀態(tài):0/無(wú),1/多,-1/空       
            Numeric tradCost(0);//持倉(cāng)成本
            Numeric tradIdx(0);//持倉(cāng)Bar的index
            Numeric tradCyc(0);//持倉(cāng)周期
            String pKey;//
            String pKeyTradProve("TRADPROVE");//
            String pKeyTradState("TRADSTATE");//
            String pKeyTradCost("TRADCOST");//
            String pKeyTradNum("TRADNUM");//
            String pKeyTradIdx("TRADIDX");//
           
            Numeric curProfit(0);//持倉(cāng)當(dāng)前浮動(dòng)盈虧
            NumericSeries maxProfit(0);//持倉(cāng)最大浮盈
            NumericSeries maxLoss(0);//持倉(cāng)最大浮虧
           
            String  dopos("");//持倉(cāng)處理代碼
            NumericSeries m1(0);
            NumericSeries m2(0);
           
    Begin
            splitDot=splitRate*MinMove();
           
            pKey=FormulaName()+SymbolName()+Text(BarType())+Text(BarInterval());
            pKeyTradProve="TRADPROVE";//
            pKeyTradState="TRADSTATE";//
            pKeyTradCost="TRADCOST";//
            pKeyTradNum="TRADNUM";//
            pKeyTradIdx="TRADIDX";//       
            //初始化
            If(BarStatus==0)
            {               
                    SetTBProfileString(pKey,pKeyTradProve,Text(1));
                    SetTBProfileString(pKey,pKeyTradState,Text(0));
                    SetTBProfileString(pKey,pKeyTradCost,Text(0));
                    SetTBProfileString(pKey,pKeyTradNum,Text(0));
                    SetTBProfileString(pKey,pKeyTradIdx,Text(0));

                    tradMem="";
                    maxProfit=0;
                    maxLoss=0;       
                    Return;
            }

            if(Day !=Day[1])
            {
                    SetTBProfileString(pKey,pKeyTradProve,Text(1));
                    SetTBProfileString(pKey,pKeyTradState,Text(0));
                    SetTBProfileString(pKey,pKeyTradCost,Text(0));
                    SetTBProfileString(pKey,pKeyTradNum,Text(0));
                    SetTBProfileString(pKey,pKeyTradIdx,Text(0));
                   
                    tradMem=" ";               
                    maxProfit=0;
                    maxLoss=0;               
            }       
            Else
            {
                    //獲取交易狀態(tài)
                    tradProve=Value(GetTBProfileString(pKey,pKeyTradProve));
                    tradState=Value(GetTBProfileString(pKey,pKeyTradState));
                    tradCost=Value(GetTBProfileString(pKey,pKeyTradCost));
                    tradNum=Value(GetTBProfileString(pKey,pKeyTradNum));
                    tradIdx=Value(GetTBProfileString(pKey,pKeyTradIdx));
                   
                    tradMem=" ";               
                    maxProfit=maxProfit[1];
                    maxLoss=maxLoss[1];

                    m1=iTodayEMA(Open,ma1);//指標(biāo)
                    m2=iTodayEMA(Open,ma2);//指標(biāo)

                    //開倉(cāng)條件
                    //跌停板附近不開多倉(cāng),漲停附近不開空倉(cāng)
                    if(BarStatus==2)
                    {
                            b1=Close>(Q_LowerLimit()+15*MinMove());
                            s1=Close<(Q_UpperLimit()-15*MinMove()) ;
                    }
                    Else
                    {       
                            b1=Not(High==Low And High==Close Or High[1]==Low[1] );
                            s1=Not(High==Low And High==Close Or High[1]==Low[1] );
                    }               
                           
                    If(tradNum<=maxTrad And Time>=0.0001*tradBegin And Time<=0.0001*tradEnd)
                    {
                            //開倉(cāng)條件
                            bc=CrossOver(m1,m2) And b1 ;//
                            sc=CrossUnder(m1,m2) And b1 ;//                                               
                    }               
           
                    // 當(dāng)前無(wú)倉(cāng)-----------------------------------------------------------------Begin
                    if(tradState==0 )
                    {               
                            // 當(dāng)前無(wú)倉(cāng),開始建立多頭
                            if(bc)
                            {
                                    if(BarStatus==2)        tradePrice= Q_AskPrice +splitDot; Else tradePrice=Open+splitDot;                               
                                    If(Buy(maxLots,tradePrice))
                                    {
                                            SetTBProfileString(pKey,pKeyTradProve,Text(0));
                                            SetTBProfileString(pKey,pKeyTradState,Text(1));
                                            SetTBProfileString(pKey,pKeyTradCost,Text(tradePrice));
                                            SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
                                            SetTBProfileString(pKey,pKeyTradIdx,Text(CurrentBar()));               
                                            tradMem="開多-"+Text(tradePrice);
                                            Commentary(tradMem);                                                                               
                                    }
                            }
                            Else
                            // 當(dāng)前無(wú)倉(cāng),開始建立空頭
                            If(sc)
                            {
                                    if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=Open-splitDot;                               
                                    If(SellShort(maxLots,tradePrice))
                                    {
                                            SetTBProfileString(pKey,pKeyTradProve,Text(0));
                                            SetTBProfileString(pKey,pKeyTradState,Text(-1));
                                            SetTBProfileString(pKey,pKeyTradCost,Text(tradePrice));
                                            SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
                                            SetTBProfileString(pKey,pKeyTradIdx,Text(CurrentBar()));                                                               
                                            tradMem="開空-"+Text(tradePrice);
                                            Commentary(tradMem);                                       
                                    }
                            }
                    }
                    // 當(dāng)前無(wú)倉(cāng)-----------------------------------------------------------------end
                    // 當(dāng)前有倉(cāng)-----------------------------------------------------------------begin
                    Else
                    {
                            //計(jì)算當(dāng)前盈虧和最大浮動(dòng)盈虧
                            curProfit=tradState*(Close-tradCost);                       
                            If(BarStatus==2)
                            {                               
                                    If(curProfit>maxProfit)        maxProfit=curProfit;
                                    If(curProfit<maxLoss)                maxLoss=curProfit;
                            }
                            Else
                            {
                                    If(tradState==1)
                                    {
                                            If((High-tradCost)>maxProfit) maxProfit=(High-tradCost);
                                            If((Low-tradCost)<maxLoss)                maxLoss=(Low-tradCost);
                                    }
                                    If(tradState==-1)
                                    {
                                            If((tradCost-Low)>maxProfit)        maxProfit=tradCost-Low;
                                            If((tradCost-High)<maxLoss)        maxLoss=tradCost-High;       
                                    }
                            }                       
                           
                            //平多反空
                            If(tradState==1 And sc And tradNum<maxTrad And Time>=0.0001*tradBegin And Time<=0.0001*tradEnd)
                            {
                                    if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=Open-splitDot;       
                                    If(SellShort(maxLots,tradePrice))
                                    {
                                            tradMem="平多反空-"+Text(tradePrice);Commentary(tradMem);
                                            SetTBProfileString(pKey,pKeyTradProve,Text(1));
                                            SetTBProfileString(pKey,pKeyTradState,Text(-1));
                                            SetTBProfileString(pKey,pKeyTradCost,Text(tradePrice));
                                            SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
                                            SetTBProfileString(pKey,pKeyTradIdx,Text(CurrentBar()));
                                            maxProfit=0;
                                            maxLoss=0;       
                                            curProfit=0;
                                    }
                            }
                            //平空反多
                            If(tradState==-1 And bc And tradNum<maxTrad And Time>=0.0001*tradBegin And Time<=0.0001*tradEnd)
                            {
                                    if(BarStatus==2)        tradePrice= Q_AskPrice +splitDot; Else tradePrice=Open+splitDot;       
                                    If(Buy(maxLots,tradePrice))
                                    {
                                            tradMem="平空反多-"+Text(tradePrice);Commentary(tradMem);
                                            SetTBProfileString(pKey,pKeyTradProve,Text(1));
                                            SetTBProfileString(pKey,pKeyTradState,Text(1));
                                            SetTBProfileString(pKey,pKeyTradCost,Text(tradePrice));
                                            SetTBProfileString(pKey,pKeyTradNum,Text(1+tradNum));
                                            SetTBProfileString(pKey,pKeyTradIdx,Text(CurrentBar()));
                                            maxProfit=0;
                                            maxLoss=0;
                                            curProfit=0;                                       
                                    }
                            }       
                           
                            tradCyc=(CurrentBar()-tradIdx);
                            tradMem="浮盈:"+Text(curProfit)+",最大浮盈:"+Text(maxProfit)+",倉(cāng)期:"+Text(tradCyc);Commentary(tradMem);
                            dopos="";
                            //開倉(cāng)BAR的處理
                            if(tradCyc==0)
                            {
                           
                            }                       
                            //持倉(cāng)BAR的處理
                            Else
                            if(tradCyc>0)
                            {
                                    //開倉(cāng)后第一根BAR的處理-應(yīng)對(duì)bar走完后的信號(hào)消失問(wèn)題**********************************************                               
                                    if(tradCyc==1)
                                    {
                                          。。。。。
                                    }               
                                    Else                               
                                    dopos=DoPosition(tradState,tradCyc,curProfit,maxProfit,stopLoss,stopProfis,tracProfis,tracLoss,returnProfis,minProfis,maxHolds,closeTime);
                            }
                           
                            dopos=DoPosition(tradState,tradCyc,curProfit,maxProfit,stopLoss,stopProfis,tracProfis,tracLoss,returnProfis,minProfis,maxHolds,closeTime);
                            //統(tǒng)一的平倉(cāng)處理-------------------------------------------------------------------------------------------
                            if(Len(dopos)>2)
                            {
                                    //處理交易價(jià)格,叫賣叫買價(jià)加上滑點(diǎn),便于成交
                                    if(BarStatus==2)
                                    {
                                            If(tradState==1)         tradePrice= Q_BidPrice -splitDot;
                                            If(tradState==-1)         tradePrice= Q_AskPrice +splitDot;
                                    }Else tradePrice=Close-tradState*splitDot;
                                   
                                    //平多
                                    If(tradState==1)
                                    {
                                            If(Sell(maxLots,tradePrice))
                                            {
                                                    tradMem=dopos+":平多-"+Text(tradePrice);
                                                    SetTBProfileString(pKey,pKeyTradProve,Text(1));
                                                    SetTBProfileString(pKey,pKeyTradState,Text(0));                                               
                                                    maxProfit=0;
                                                    maxLoss=0;
                                            }
                                    }
                                    //平空
                                    If(tradState==-1)
                                    {
                                            If(BuyToCover(maxLots,tradePrice))
                                            {
                                                    tradMem=dopos+":平空-"+Text(tradePrice);
                                                    SetTBProfileString(pKey,pKeyTradProve,Text(1));
                                                    SetTBProfileString(pKey,pKeyTradState,Text(0));                                               
                                                    maxProfit=0;
                                                    maxLoss=0;                                               
                                            }
                                    }               
                                    Commentary(tradMem);                       
                            }                       
                    }                                       
            }
    End

     

     

     

     

     

     

     

  • 補(bǔ)充說(shuō)明: m1=iTodayEMA(Open,ma1);//指標(biāo)
    m2=iTodayEMA(Open,ma2);//指標(biāo)
    dopos=DoPosition(tradState,tradCyc,curProfit,maxProfit,stopLoss,stopProfis,tracProfis,tracLoss,returnProfis,minProfis,maxHolds,closeTime);
    是用戶函數(shù),自己編吧。

     

  •  該指令采用文件方式保存開平倉(cāng)狀態(tài),可以解決開倉(cāng)bar走完后,信號(hào)又消失的問(wèn)題!

     

 

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

可聯(lián)系技術(shù)人員 QQ: 262069696  點(diǎn)擊在線交流進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!

 


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

相關(guān)文章

    沒(méi)有相關(guān)內(nèi)容
  主站蜘蛛池模板: 爱爱免费观看高清视频在线播放 | 久久99国产精品久久99小说 | 香港一级a毛片在线播放 | 国产精品不卡在线 | 91热久久免费频精品黑人99 | 欧美三级中文字幕 | 91久久国产成人免费观看资源 | 在线欧美精品一区二区三区 | 天天舔天天干天天操 | 九九成人免费视频 | 久久精品国产亚洲精品 | 日韩精品欧美一区二区三区 | aaaaaa国产毛片孕妇版 | 日韩视频观看 | 深夜影院在线视频观看 | 欧美色插 | 国产91九色在线播放 | 亚洲毛片一级带毛片基地 | 亚洲成人在线网 | 欧美成人三级视频 | 日本一级欧美一级中文 | 在线观看欧洲成人免费视频 | 波多野结衣中文丝袜字幕 | 久青草国产手机视频免费观看 | 五月激情婷婷网 | 宅男看片午夜大片啪啪mv | 国产成人精品午夜在线播放 | 久久亚洲国产精品五月天婷 | 国内久久精品视频 | 免费观看a黄一级视频 | 国产亚洲欧美另类久久久 | 久久久成人啪啪免费网站 | 天天槽天天槽天天槽 | 欧美日韩视频一区二区 | 久久精品成人 | 成人午夜天 | 性欧美久久| 国产伦精品一区三区视频 | 色酷综合 | 国产高清一区 | 免费a视频在线观看 |