求老师用Tradeblazer,TB,语言编写IF日内规则

Discussion in '金字塔决策交易系统' started by zhpcash, Jan 20, 2011.

  1. 交易手数为1手(可以设置)

    记录当天开盘后39分钟内的最高,最低价,最高价记为HH,最低价记为LL

    开多:

    最新价大于HH,以指定价(HH+20个跳动点(0.2为一个跳动点)),开多,

    当成交后,设下止损价为HH减去50个跳动点

    当有最新价达到HH加上50个跳动点时,止损价改为HH加4个跳动点

    平仓1:最新价大于HH*1.03平仓,以指定价(最新价-50个跳动点)平仓

    平仓2:到3点10分平仓。

    开多止损或者平仓后,不再出现开多交易信号

    开空:

    最新价小于LL,以指定价(LL-20个跳动点(0.2为一个跳动点)),开空,

    当成交后,设下止损价为LL加上50个跳动点

    当有最新价达到LL减去50个跳动点时,止损价改为LL减去4个跳动点

    平仓1:最新价小于LL*0.97平仓,以指定价(最新价+50个跳动点)平仓

    平仓2:到3点10分平仓。

    开空止损或者平仓后,不再出现开空交易信号

    谢谢
     
  2. 金字塔上给你写好的
    股指突破模型



    INPUT:NMIN(39,10,60,10); //设置参数时间

    INPUT:NOFFSET(20,2,50,2); //设置参数滑点

    INPUT:LOTS(1,1,100,1); //设置参数仓位

    INPUT:STOPSET(50,50,100,10); //设置参数止损

    VARIABLE:FLAG=0; //用于限制开仓次数

    VARIABLE:STOP_P=0; //用于变动止损

    CYC:=BARSLAST(DATE>REF(DATE,1))+1; //统计日内K线数

    HH:=VALUEWHEN(TIME<=91500+NMIN*100,HHV(H,CYC)); {在从开盘到设定时间(默认参数开盘39分)内保存当天最高价}

    LL:=VALUEWHEN(TIME<=91500+NMIN*100,LLV(L,CYC)); {在从开盘到设定时间(默认参数开盘39分)内保存当天最低价}

    IF HIGH > HH AND HOLDING<=0 AND FLAG<>1 THEN {如果最高价突破设定时间内的前高加设定偏移并且目前没有多单,那么}

    BEGIN

    MYPRICE: = HH + NOFFSET*MINDIFF; {预设进场价.既等于设定时间内的前高加设定偏移}

    IF C >= MYPRICE THEN {如果开盘价大于预设进场价,那么奋不顾身闯进去,(注:这是移植的,原设计并不一定完美,这时可能不是那么好成交的,我也不必多费唇舌了).}

    BEGIN

    MYPRICE: = C;

    FLAG:=1;

    SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE); {如果有空单先平}

    BUY(HOLDING=0,LOTS,LIMITR,MYPRICE); {如果没有多单则以开盘价开多LOTS手 }

    IF C<=HH-STOPSET*MINDIFF THEN SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);

    IF C>=HH+STOPSET*MINDIFF THEN STOP_P:=4;

    IF C<=HH+STOP_P*MINDIFF THEN SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);

    IF C>=HH*1.03 THEN SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);
    END

    END

    IF LOW <= LL AND HOLDING>=0 AND FLAG<>3 THEN {以下开空部分同上,只不过方向相反}

    BEGIN

    MYPRICE: = LL - NOFFSET*MINDIFF;

    IF C <= MYPRICE THEN

    BEGIN

    MYPRICE: = C;

    FLAG:=3;

    SELL(HOLDING>0,0,LIMITR,MYPRICE);

    BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);

    IF C>=LL+STOPSET*MINDIFF THEN SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);

    IF C<=LL-STOPSET*MINDIFF THEN STOP_P:=4;

    IF C>=LL-STOP_P*MINDIFF THEN SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);

    IF C<=LL*0.97 THEN SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);

    END

    END

    IF TIME >= 151000 THEN {收盘平仓}

    BEGIN

    SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);

    SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);

    END
     
  3. 谢谢ytweiwei
    但应用于图时,昨天(1月19号)应该有开多信号啊,但图上没显示有开多信号
     
  4. 可能还有点问题,再改改看看
     
  5. 最新的详细规则如下:
    IF日内交易规则
    当天有效,1分钟周期。
    开多开空信号截止时间为下午三点05分
    基本原理:突破当天开盘后39分钟内的最高价最低价作多作空。
    一天最多交易二次,一次作多,一次作空
    交易手数为1手(可以设置)
    记录当天开盘后39分钟内的最高,最低价,最高价记为HH,最低价记为LL
    开多:
    最新价大于HH,开多(超价20(0.2为一个跳动价位)个跳动价位买入追买,保证成交)
    当成交后,设下止损价为HH减去40个跳动点
    当有最新价达到HH加上50个跳动点时,止损价改为HH加上4个跳动点
    平仓1:最新价大于HH*1.03平仓,以指定价(最新价-50个跳动点)平仓
    平仓2:到3点10分平仓。
    开多止损或者平多后,不再出现开多交易信号
    开空:
    最新价小于LL,开空(超价20跳动个价位追卖,保证成交)
    当成交后,设下止损价为LL加上40个跳动点
    当有最新价达到LL减去50个跳动点时,止损价改为LL减去4个跳动点
    平仓1:最新价小于LL*0.97平仓,以指定价(最新价+50个跳动点)平仓
    平仓2:到3点10分平仓。
    开空止损或者平空后,不再出现开空交易信号