TB的早盘突破公式转金字塔公式

Discussion in '金字塔决策交易系统' started by ytweiwei, Mar 28, 2010.

  1. //TB公式代码如下

    Params
    Numeric nMins(30); // N分钟的突破
    Numeric nOffset(3); // 突破式的价格偏移
    Vars
    NumericSeries HighestOf30Min;
    NumericSeries lowestOf30Min;
    Numeric myPrice;
    Numeric MinPoint;
    Numeric lots(1);
    Begin
    MinPoint = MinMove*PriceScale;
    If(Date <> Date[1])
    {
    HighestOf30Min = High;
    lowestOf30Min = Low;
    }Else If(Time < 0.0900+nMins*0.0001)
    {
    HighestOf30Min = max(high,HighestOf30Min[1]);
    lowestOf30Min = min(Low,lowestOf30Min[1]);
    }Else
    {
    HighestOf30Min = HighestOf30Min[1];
    lowestOf30Min = lowestOf30Min[1];
    }

    If(High >= HighestOf30Min + nOffset*MinPoint && MarketPosition != 1)
    {
    myPrice = HighestOf30Min + nOffset*MinPoint;
    If(Open > myPrice) myPrice = Open;
    Buy(lots,myPrice);
    }

    If(Low <= lowestOf30Min - nOffset*MinPoint && MarketPosition != -1)
    {
    myPrice = lowestOf30Min - nOffset*MinPoint;
    If(Open < myPrice) myPrice = Open;
    SellShort(lots,myPrice);
    }

    If(Time >= 0.1459)
    {
    Sell(lots,Open);
    BuyToCover(lots,Open);
    }
    End



    /////////////////////////////////////////////////////////////////////////////////////

    //下面为金字塔代码 (感谢轮回)


    INPUT:NMIN(30,10,60,10);
    INPUT:NOFFSET(3,1,20,1);
    INPUT:LOTS(1,1,1000,1);
    CYC:=BARSLAST(DATE>REF(DATE,1))+1;
    HIGHESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,HHV(H,CYC));
    LOWESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,LLV(L,CYC));
    IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND HOLDING<=0 THEN
    BEGIN
    MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;
    IF OPEN > MYPRICE THEN
    BEGIN
    MYPRICE: = OPEN;
    SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);
    BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);
    END
    END
    IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND HOLDING>=0 THEN
    BEGIN
    MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
    IF OPEN < MYPRICE THEN
    BEGIN
    MYPRICE: = OPEN;
    SELL(HOLDING>0,0,LIMITR,MYPRICE);
    BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
    END
    END
    IF TIME >= 145900 THEN
    BEGIN
    SELL(HOLDING>0,0,LIMITR,OPEN);
    SELLSHORT(HOLDING<0,0,LIMITR,OPEN);
    END
     
  2. 测试收益情况不错:D
    [​IMG]
     
  3. 这位叫“轮回”的老兄以前常出现在文华论坛,现在不知在哪里出没 :confused:
     
  4. 轮回也曾出没于TB论坛,现在专职金字塔Q群
     
  5. 现在已经加入了金字塔阵营
     
  6. 有Q群吗,号码是多少,俺也加入一下。
     
  7. 金字塔程式化交易交流QQ群 84283179
     
  8. 加入了,呵呵
     
  9. 简单有效,大道至简啊。
    最大回撤是多少?
     
  10. 我把它改为后台交易 后 为何不能测试

    大家看看哪里出错了

    如下

    INPUT:NMIN(30,10,60,10);
    INPUT:NOFFSET(3,1,20,1);
    INPUT:LOTS(1,1,1000,1);
    CYC:=BARSLAST(DATE>REF(DATE,1))+1;
    HIGHESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,HHV(H,CYC));
    LOWESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,LLV(L,CYC));
    IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND tHOLDING<=0 and THEN
    BEGIN
    MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;
    IF OPEN > MYPRICE THEN
    BEGIN
    MYPRICE: = OPEN;
    //SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);
    TSELLSHORT(THOLDING<0 ,lots ,lmt ,MYPRICE );
    //BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);
    TBUY(tHOLDING=0 ,LOTS ,LMT ,MYPRICE );
    END
    END
    IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND tHOLDING>=0 THEN
    BEGIN
    MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
    IF OPEN < MYPRICE THEN
    BEGIN
    MYPRICE: = OPEN;
    //SELL(HOLDING>0,0,LIMITR,MYPRICE);
    TSELL(tHOLDING>0 ,0 ,lmt , MYPRICE )
    //BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
    TBUYSHORT(tHOLDING=0 ,LOTS ,LMT ,MYPRICE )
    END
    END
    IF TIME >= 145900 THEN
    BEGIN
    tSELL(HOLDING>0,0,Lmt,OPEN);
    tSELLSHORT(HOLDING<0,0,Lmt,OPEN);
    END
     
  11. 不能测试是什么意思?
    程式化交易评测?后台交易的公式,是不能评测的
     
  12. oh 原来如此 原本想跟图表程式交易一样 能够测试一下的

    看来要用模拟平台测试一下执行情况
    thanks