您現在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者知識>>正文內容

再續發一交易系統 [開拓者 TB]

  • 咨詢內容:                      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)+",倉期:"+Text(tradCyc);Commentary(tradMem);
                            dopos="";
                            //開倉BAR的處理
                            if(tradCyc==0)
                            {
                            
                            }                        
                            //持倉BAR的處理
                            Else
                            if(tradCyc>0)
                            {
                                    //開倉后第一根BAR的處理-應對bar走完后的信號消失問題**********************************************                                
                                    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);
                            //統一的平倉處理-------------------------------------------------------------------------------------------
                                                    //這里提點個人的想法,大家討論。
                           //樓主的框架是把所有的東西(開、平倉,止損,止盈,追蹤止盈,固定值止盈,回撤止盈)都放在一個交易指令中,
                            //本人以為,這種大而全的結構,很不易于維護,調試等。
                            //何不把這些分開到多個交易指令中呢?
                            //比如說 開,平倉一個指令,止損一個指令,止盈一個指令,追蹤止盈一個指令。
                            //這樣分成多個模塊好處是多多。
                            //在一個圖表中,插入多個指令,就像搭積木,把不同的指令組合起來可以得到不同的策略。
                                //fish0451 作者回復:有道理!
                            if(Len(dopos)>2)
                            {
                                    //處理交易價格,叫賣叫買價加上滑點,便于成交
                                    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

     

  • TB技術人員: DoPosition 沒有定義啊,不能編譯過去,能否把DoPosition函數給出來

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 262069696  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 用我的手指搅乱吧未增删翻译| 2022福利视频| 最近中文字幕完整版免费8| 免费观看性生交大片人| 黄色大片免费网站| 毛片色毛片18毛片美女| 国产在线五月综合婷婷| 97国产在线播放| 欧美另类videovideosex| 午夜视频在线观看一区二区| 欧美大黑bbb| 女人18毛片a| 久久久99精品成人片| 欧美变态口味重另类在线视频| 免费无遮挡无码永久视频| 金8国欧美系列在线| 国产精品美女久久久久久2018 | 亚洲国产成人久久综合一区| 免费福利在线视频| 天使a中文在线观看| 久久www成人看片| 欧美va亚洲va在线观看| 亚洲综合激情视频| 美国式禁忌矿桥矿网第11集| 国产成人免费a在线视频色戒| 97久久精品人人做人人爽| 妖精色av无码国产在线看| 久久久久久久综合色一本| 最近中文字幕在线视频| 亚洲精品97久久中文字幕无码 | 国产最新凸凹视频免费| 97色伦图片97综合影院久久| 日韩精品无码一本二本三本| 亚洲第一页视频| 精品国产成人亚洲午夜福利| 国产免费播放一区二区| 中文字幕丝袜制服| 成年美女黄网站色大免费视频 | 国产精品国产色综合色| a级午夜毛片免费一区二区| 成人欧美一区二区三区黑人|