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

按2%的風(fēng)險(xiǎn),1:2的盈虧比代碼,總是不對(duì),請(qǐng)老師幫忙看看 [開拓者 TB]

  • 咨詢內(nèi)容: 本帖最后由 xiaokakaren 于 2015-12-15 11:21 編輯

    1、我是新手,按2%的風(fēng)險(xiǎn)開倉個(gè)代碼寫不了,只能用一個(gè)資金的2%代替。思路是這樣:第一單總資金的2%做為虧損金額,用它來考量開倉的手?jǐn)?shù)。第二單在第一單沒有平倉的時(shí)候再次開倉的手?jǐn)?shù)就是資金-第一單止損的金額。舉例:我總資金是100000的話,第一單的開倉手?jǐn)?shù)=(100000*0.02)/(止損點(diǎn)數(shù)*一跳的價(jià)格),這個(gè)時(shí)候如果第一單沒平,再開第二單的話手?jǐn)?shù)=【(100000-第一單如果止損的金額)*0.02】/(止損點(diǎn)數(shù)*一跳的價(jià)格)。這個(gè)我在論壇上沒找到相似的例子。所以也不知道應(yīng)該怎么寫。有老師能指點(diǎn)一下最好了。
    2、1:2的盈虧比的代碼如下,感覺很多問題,我也不知道是那個(gè)地方。
    Params
            Numeric FastLength(5);
            Numeric SlowLength(20);
    Vars
            NumericSeries AvgValue1;
            NumericSeries AvgValue2;
           
            Numeric minpoint;       //最小變動(dòng)單位,也就是一跳
            Numeric myentryprice;   //我的開倉價(jià)格
        Numeric StopLossSet;    // 止損設(shè)置(多頭)
            Numeric StopLossSet1;    // 止損設(shè)置(空頭)
        Numeric MyExitPrice;        // 平倉價(jià)格
        NumericSeries HighestAfterEntry;        // 開倉后出現(xiàn)的最高價(jià)
        NumericSeries LowestAfterEntry;         // 開倉后出現(xiàn)的最低價(jià)
            Numeric lots;           //開倉手?jǐn)?shù)
            Numeric mycapital(1000000);   //我的資金
    Begin
            AvgValue1 = AverageFC(Close,FastLength);
            AvgValue2 = AverageFC(Close,SlowLength);

            PlotNumeric("MA1",AvgValue1);
            PlotNumeric("MA2",AvgValue2);               
            //PlotNumeric("PL",Portfolio_TotalProfit);

            // 集合競價(jià)和小節(jié)休息過濾
            If(!CallAuctionFilter()) Return;

        minpoint=MinMove*PriceScale;//=當(dāng)前公式應(yīng)用商品的最小變動(dòng)量*當(dāng)前公式應(yīng)用商品的計(jì)數(shù)單位
            StopLossSet=open-Low[1]+300;   //止損點(diǎn)數(shù)
            StopLossSet1=High[1]-Open+300;   //止損點(diǎn)數(shù)
           
            If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
             {
               lots=mycapital*0.02 / StopLossSet*minpoint;//開倉手?jǐn)?shù)=總資金的2%/止損金額
               Buy(lots,Open);
              }
            If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
              {
               lots=mycapital*0.02 / StopLossSet1*minpoint;//開倉手?jǐn)?shù)=總資金的2%/止損金額
               SellShort(lots,Open);
              }

            If(BarsSinceEntry==0)//如果此K線是開倉的K線
              {
                HighestAfterEntry = Close;//開倉后的最高價(jià)=收盤價(jià)
            LowestAfterEntry = Close;//開倉后的最低價(jià)=收盤價(jià)
                    If(MarketPosition<>0)   //當(dāng)前持倉狀態(tài)不等于0
                    {
                      HighestAfterEntry = Max(HighestAfterEntry,EntryPrice);   // 開倉的Bar,將開倉價(jià)和當(dāng)時(shí)的收盤價(jià)的較大值保留到HighestAfterEntry
                      LowestAfterEntry = Min(LowestAfterEntry,EntryPrice);     // 開倉的Bar,將開倉價(jià)和當(dāng)時(shí)的收盤價(jià)的較小值保留到LowestAfterEntry
                     }
               }Else
                {
                      HighestAfterEntry = Max(HighestAfterEntry,High); // 記錄下當(dāng)前Bar的最高點(diǎn),用于下一個(gè)Bar的跟蹤止損判斷
                      LowestAfterEntry = Min(LowestAfterEntry,Low);    // 記錄下當(dāng)前Bar的最低點(diǎn),用于下一個(gè)Bar的跟蹤止損判斷
                     }
             
             Commentary("HighestAfterEntry="+Text(HighestAfterEntry));//在超級(jí)圖表當(dāng)前K線添加一行注釋信號(hào)
         Commentary("LowestAfterEntry="+Text(LowestAfterEntry));
             
             myentryprice=EntryPrice;//我的開倉價(jià)格是當(dāng)前持倉的第一個(gè)建倉價(jià)格。AvgEntryPrice(當(dāng)前持倉的平均建倉價(jià)格),LastEntryPrice(當(dāng)前持倉的最后一個(gè)建倉價(jià)格)
             
             If(MarketPosition==1)//有多倉的情況
             {
               If(HighestAfterEntry[1]>=myentryprice+StopLossSet*2*minpoint Or Open<=myentryprice-StopLossSet*minpoint)
                 {
                       Sell(0,Open);
                      }
              }
             
             If(MarketPosition==-1)//有空倉的情況
             {
               If(LowestAfterEntry[1]<=myentryprice-StopLossSet1*2*minpoint Or Open>=myentryprice+StopLossSet1*minpoint)
                 {
                       BuyToCover(0,Open);
                      }
              }
    End

    3、請(qǐng)各位老師幫忙看看

     

  • TB技術(shù)人員: 后面的注釋老師們可以不用看,好多是復(fù)制的

     

  • TB客服:
    xiaokakaren 發(fā)表于 2015-12-15 11:07
    后面的注釋老師們可以不用看,好多是復(fù)制的

    你表達(dá)的不太清楚,所以需要你再確認(rèn)你的需求。我的理解是,你想做到兩點(diǎn):1、每次開倉按照權(quán)益的2%為虧損額度來計(jì)算下單手?jǐn)?shù)。如果是反手就把權(quán)益先扣除2%。2、止損止盈做到,盈虧比是2:1

    把你的需求放在一邊,你的代碼中存在一些語法問題。
    1、你沒有止損的代碼。
    2、你對(duì)變量類型numeric 和numericseries的錯(cuò)用。numeric換一根BAR,就恢復(fù)為初始值。numericseries則可以記錄下來,后續(xù)的BAR都可以使用。比如你代碼中的myentryprice,應(yīng)該用numericseries類型。
    其他變量,你都要根據(jù)你的需求來選擇合適的變量類型。

     

  • 網(wǎng)友回復(fù):
    tbheyihao 發(fā)表于 2015-12-15 12:31
    你表達(dá)的不太清楚,所以需要你再確認(rèn)你的需求。我的理解是,你想做到兩點(diǎn):1、每次開倉按照權(quán)益的2%為虧 ...

    老師的理解是對(duì)的,1、每次開倉按照權(quán)益的2%為虧損額度來計(jì)算下單手?jǐn)?shù)。如果是反手(這里也可以是加倉)就把權(quán)益先扣除2%。2、止損止盈做到,盈虧比是2:1。

    另外,我止損放在條件語句中不行嗎?
             If(MarketPosition==1)//有多倉的情況
             {
               If(HighestAfterEntry[1]>=myentryprice+StopLossSet*2*minpoint Or Open<=myentryprice-StopLossSet*minpoint)
                 {
                       Sell(0,Open);
                      }
              }
    這里的Open<=myentryprice-StopLossSet*minpoint也就是說的止損。我不大清楚TB語言里 或者 是不是用OR來表示。
    myentryprice這個(gè)變量我是參考止損止盈的模板設(shè)置了,我改改看看

     

  • 網(wǎng)友回復(fù):
    xiaokakaren 發(fā)表于 2015-12-15 13:53
    老師的理解是對(duì)的,1、每次開倉按照權(quán)益的2%為虧損額度來計(jì)算下單手?jǐn)?shù)。如果是反手(這里也可以是加倉) ...

    不好意思,沒看到那個(gè)或的條件。止損可以放在那里的。
    1、每次開倉按照權(quán)益的2%,反手或者加倉先把權(quán)益扣除2%。
    這個(gè)實(shí)現(xiàn)關(guān)鍵在于你要把權(quán)益給統(tǒng)計(jì)出來。你可以用一個(gè)序列變量來記錄權(quán)益。每當(dāng)平倉時(shí)自動(dòng)統(tǒng)計(jì)平倉盈虧。
    你的開倉價(jià)、平倉價(jià)、開倉手?jǐn)?shù)已經(jīng)是有變量的。手續(xù)費(fèi)可以自己設(shè)定。
            Numeric feerate;                                                //手續(xù)費(fèi)比例
            Numeric fee;                                                //手續(xù)費(fèi)
            Numeric traderesult(0);                                //單次交易盈虧
            NumericSeries voidequity(100000);                //資金權(quán)益

                    fee=2*myentryprice*ContractUnit*BigPointValue*feerate;
                    traderesult=(myentryprice-open)*ContractUnit*BigPointValue-fee;
                    voidequity=voidequity+traderesult;

    2、止損止盈的的觸發(fā)價(jià)格,可以采用high/low這樣的,更及時(shí)。
    你使用highestafterentry[1]來止盈,使用open來止損,也可以,做的會(huì)滯后一點(diǎn)。
    不過你的myentryprice要改成序列變量。


 

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

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


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

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 国产我和子的与子乱视频| 日本欧美大码aⅴ在线播放| 午夜视频体验区| 日本亚洲黄色片| 波多野结衣精品一区二区三区| 国产清纯白嫩初高生在线观看 | 日本免费www| 亚洲国产精品成人久久久| 日本高清在线免费| 女人被狂c躁到高潮视频| 久久精品7亚洲午夜a| 爽爽日本在线视频免费| 国产福利高颜值在线观看| 久久五月天综合| 欧美日韩在线一区二区三区| 午夜黄色一级片| 高清无码视频直接看| 国产精品美女久久久久av福利| 《波多野结衣系列mkmp-305》| 欧美日韩国产手机在线观看视频| 噜噜影院在线视频在线观看| 国产91精品在线| 国产高清一区二区三区视频| 一本色综合久久| 欧美性猛交xxxx乱大交中文| 再深点灬舒服灬太大了阅读| 青草青草久热精品视频在线观看 | 欧洲无码一区二区三区在线观看| 伊人性伊人情综合网| 羞羞视频在线播放| 国产在线国偷精品产拍| 男女xx动态图| 在线观看国产一区二区三区 | 狠狠人妻久久久久久综合蜜桃 | 西西人体大胆扒开瓣| 国产精品亚洲二区在线播放 | 99视频免费播放| 极品丝袜乱系列目录全集| 亚洲综合区小说区激情区| 精品无码AV无码免费专区| 国产偷国产偷亚洲高清人|