返回列表 发帖

【求助】突破买入的系统

刚开始学写TB,想一个个思路实现
设定突破前13根K线收盘价的最高值或者最低值买入开仓或卖出开仓
开仓后连续5根K线不创新高或者新低离场
经过论坛大大修改后如下
Vars
    Numeric highestValue;
    Numeric highestX;
    Numeric lowestValue;
    Numeric lowestX;
    Bool DK;
        Bool DPC;
        Bool KK;
        Bool KPC;
   
Begin
   
                highestValue=Highest(High[1],13);
        lowestValue=Lowest(Low[1],13);
                highestX=Highest(High[1],5);
        lowestX=Lowest(Low[1],5);
               
                DK=Close>=highestValue;
                Kk=Close<lowestValue;
           
                DPC=Close<=highestX;
                KPC=Close>lowestX;

                if(DK && MarketPosition==0)
                        Buy(0,NextOpen,True);
                if(KK && MarketPosition==0)
                        SellShort(0,NextOpen,True);

                if(DPC && MarketPosition==1)
                        Sell(0,NextOpen,True);
                if(KPC && MarketPosition==-1)
                        BuyToCover(0,NextOpen,True);

      
End

但是我观察了下,跟预期的严重不同,
估计我原来的语句有关系

highestValue=Highest(High[1],13);
前13根K线的最高值是这样取的么?

而且平仓条件是开仓后创 了新高 ,然后连续5根K线没破这个新高,然后第6跟平仓
是不是要先赋值下这个新高,再重新数5根判断

想再加入一个回撤平仓条件,请各位高人帮忙!

Params
    Numeric jinchang(50);
    Numeric chuchang(20);
Vars
    Numericseries highestValue;
    Numericseries highestX;
    Numericseries lowestValue;
    Numericseries lowestX;
    Bool DK;
        Bool DPC;
        Bool KK;
        Bool KPC;
   
Begin
   
                highestValue=Highest(High[1],jinchang);
        lowestValue=Lowest(Low[1],jinchang);
                highestX=Highest(High[1],chuchang);
        lowestX=Lowest(Low[1],chuchang);
               
                DK=Close>=highestValue;
                Kk=Close<lowestValue;
           
                DPC=Close<=lowestX;
                KPC=Close>highestX;

                if(MarketPosition==0&&DK)
                        Buy(1,close);
                else if(MarketPosition==0&&KK)
                        SellShort(1,close);

                else if(MarketPosition==1&&DPC)
                        Sell(1,close);

                else if(MarketPosition==-1&&KPC)
                        BuyToCover(1,close);

      
End

TOP

跟你的思路稍微有点不一样,试试吧,呵呵。

TOP

3# putilb


谢谢,我试试

TOP

后面的准确一些,思路也更轻巧。学习了

TOP

学习一下
坚持程序化的交易

TOP

回复 6# waynewong


    后面的很好,谢谢

TOP

学习一下

TOP

返回列表