请熟悉金字塔编程的老师帮忙编一个日内规则

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

  1. ytweiwei帮我编过一次,但我的诉求变了一下
    请熟悉金字塔编程的老师帮忙编一个日内规则

    IF日内交易

    当天有效,1分钟周期。
    基本原理:突破当天开盘后39分钟内的最高价最低价作多作空。
    一天最多交易二次,一次作多,一次作空
    交易手数为1手(可以设置)
    记录当天开盘后39分钟内的最高,最低价,最高价记为HH,最低价记为LL
    开多:
    最新价大于HH,开多(超价20个价位买入追买,保证成交)
    当成交后,设下止损价为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分平仓。
    开空止损或者平空后,不再出现开空交易信号


    谢谢
     
  2. 最新规则如下:
    IF日内交易规则
    当天有效,1分钟周期。
    开多开空信号截止时间为下午3点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分平仓。
    开空止损或者平空后,不再出现开空交易信号
     
  3. INPUT:NMIN(39,10,60,10); //设置参数时

    VARIABLE:FLAG_D=0,FLAG_K=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 H>STOP_P AND HOLDING<0 THEN SELLSHORT(1,1,LIMITR,MAX(O,STOP_P)+20*MINDIFF);
    IF L<LL*0.97 AND HOLDING<0 THEN SELLSHORT(1,1,LIMITR,LL*0.97+50*MINDIFF);

    IF L<STOP_P AND HOLDING>0 THEN SELL(1,1,LIMITR,MIN(O,STOP_P)-20*MINDIFF);
    IF H>HH*1.03 AND HOLDING>0 THEN SELL(1,1,LIMITR,HH*1.03-50*MINDIFF);



    IF TIME=151000 THEN //收盘平仓,并重置全局变量
    BEGIN
    SELLSHORT(HOLDING<0,1,LIMITR,OPEN+20*MINDIFF);
    SELL(HOLDING>0,1,LIMITR,OPEN-20*MINDIFF);
    FLAG_D:=0;
    FLAG_k:=0;
    END



    IF H>HH AND HOLDING=0 AND FLAG_D=0 AND TIME<151000 THEN //开多单
    BEGIN
    FLAG_D:=1;
    BUY(1,1,LIMITR,HH+20*MINDIFF);
    STOP_P:=MAX(LL,HH-50*MINDIFF);
    IF FLAG_K=0 THEN STOP_P:=MAX(LL,HH-50*MINDIFF);//当天第一笔交易,未回落50个跳动点就已突破LL,则立马止损反手做空
    END

    IF L<LL AND HOLDING=0 AND FLAG_K=0 AND TIME<151000 THEN //开空单
    BEGIN
    FLAG_K:=1;
    BUYSHORT(1,1,LIMITR,LL-20*MINDIFF);
    STOP_P:=LL+50*MINDIFF;
    IF FLAG_D=0 THEN STOP_P:=MIN(HH,LL+50*MINDIFF);//功能同上
    END

    IF HOLDING>0 AND H>HH+50*MINDIFF THEN STOP_P:=HH+4*MINDIFF; //重置止损位

    IF HOLDING<0 AND L<LL-50*MINDIFF THEN STOP_P:=LL-4*MINDIFF;//重置止损位
     
  4. H,L能用C 来替代吗?
     
  5. 可以参考上面公式自行调试修改看看嘛