您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

请查问题 [金字塔]

  • 咨询内容:

    基本思路: 开平仓条件80\81\82\83分别为独立策略的条件。各策略在开平仓各自盈利>500后平仓不再开仓。现在需将以上四个策略同时放在一个策略中运行,并独立开平仓,各策略条件在开平仓总盈利>500后平仓不再开仓。若其中任意三个策略条件满足盈利>500平仓后不再开仓,策略此时需同时平了第四个条件开的仓。

     

    以下内容为程序代码:

    1 VARIABLE:H0=0,H1=0,H2=0,H3=0,P0=0,P1=0,P2=0,P3=0,TH=0,AA0=0,AA1=0,AA2=0,AA3=0,TZKC=0;
    2 TH:=ABS(H0)+ABS(H1)+ABS(H2)+ABS(H3);//总开仓数
    3 //=================以下近似的每手开仓手续费计算============
    4 if TH>0 then FEE:=((H0*(C-P0)+H1*(C-P1)+H2*(C-P2)+H3*(C-P3))*MULTIPLIER-OPENPROFIT)/TH;
    5 if TH=0 then FEE:=0;
    6 //=================以上近似的每手开仓手续费计算============
    7 AA00:=AA0+H0*(C-P0)*MULTIPLIER-FEE;//80开平仓总的动态盈利
    8 AA01:=AA1+H1*(C-P1)*MULTIPLIER-FEE;//81开平仓总的动态盈利
    9 AA02:=AA2+H2*(C-P2)*MULTIPLIER-FEE;//82开平仓总的动态盈利
    10 AA03:=AA3+H3*(C-P3)*MULTIPLIER-FEE;//83开平仓总的动态盈利
    11 //===========================80条件=====
    12 BPK80:=A1;//条件A1
    13 SPK80:=A2;//条件A2
    14 BP80:=A1&&AA00>=500;
    15 SP80:=A2&&AA00>=500;
    16 //===========================81条件=====
    17 BPK81:=B1;//条件B1
    18 SPK81:=B2;//条件B2
    19 BP81:=B1&&AA01>=500;
    20 SP81:=B2&&AA01>=500;
    21 //===========================82条件=====
    22 BPK82:=C1;//条件C1
    23 SPK82:=C2;//条件C2
    24 BP82:=C1&&AA02>=500;
    25 SP82:=C2&&AA02>=500;
    26 //===========================83条件=====
    27 BPK83:=D1;//条件D1
    28 SPK83:=D2;//条件D2
    29 BP83:=D1&&AA03>=500;
    30 SP83:=D2&&AA03>=500;
    31 //===========================80开平仓==============================
    32 IF H0>=0&&SPK80 THEN BEGIN //若持有多单
    33 if H0>0 then begin
    34 SELL(1,1,MARKET); //80平多单
    35 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;//80平仓总盈亏
    36 H0:=0;//80持单数为”0”
    37 P0:=0;//80持单价位为”0”
    38 if AA0>150 then TZKC:=TZKC+1; //80停止开仓条件满足,停止开仓数TZKC+1。
    39 end
    40 if H0=0&&AA0<=150&&TZKC<3 then begin
    41 BUYSHORT(1,1,MARKET); //开空单
    42 H0:=-1;//80持单数为”-1”
    43 P0:=ClOSE;//80持单价位为”ClOSE”
    44 end
    45 END
    46 IF H0<=0&&BPK80 THEN BEGIN //若持有空单
    47 if H0<0 then begin
    48 SELLSHORT(1,1,MARKET); //平空单
    49 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;
    50 H0:=0;
    51 P0:=0;
    52 if AA0>150 then TZKC:=TZKC+1;
    53 end
    54 if H0=0&&AA0<=150&&TZKC<3 then begin
    55 BUY(1,1,MARKET); //开多单
    56 H0:=1;
    57 P0:=ClOSE;
    58 end
    59 END
    60 IF H0>0&&SP80 THEN BEGIN //若持有多单
    61 SELL(1,1,MARKET); //平多单
    62 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;
    63 H0:=0;
    64 P0:=0;
    65 TZKC:=TZKC+1;
    66 END
    67 IF H0<0&&BP80 THEN BEGIN //若持有空单
    68 SELLSHORT(1,1,MARKET); //平空单
    69 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;
    70 H0:=0;
    71 P0:=0;
    72 TZKC:=TZKC+1;
    73 END
    74 //==================81开平仓============================================
    75 IF H1>=0&&SPK81 THEN BEGIN //若持有多单
    76 if H1>0 then begin
    77 SELL(1,1,MARKET); //平多单
    78 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
    79 H1:=0;
    80 P1:=0;
    81 if AA1>150 then TZKC:=TZKC+1;
    82 end
    83 if H1=0&&AA1<=150&&TZKC<3 then begin
    84 BUYSHORT(1,1,MARKET); //开空单
    85 H1:=-1;
    86 P1:=ClOSE;
    87 TH:=ABS(H0)+ABS(H1)+ABS(H2)+ABS(H3);
    88 end
    89 END
    90 IF H1<=0&&BPK81 THEN BEGIN //若持有空单
    91 if H1<0 then begin
    92 SELLSHORT(1,1,MARKET); //平空单
    93 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
    94 H1:=0;
    95 P1:=0;
    96 if AA1>150 then TZKC:=TZKC+1;
    97 end
    98 if H1=0&&AA1<=150&&TZKC<3 then begin
    99 BUY(1,1,MARKET); //开多单
    100 H1:=1;
    101 P1:=ClOSE;
    102 end
    103 END
    104 IF H1>0&&SP81 THEN BEGIN //若持有多单
    105 SELL(1,1,MARKET); //平多单
    106 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
    107 H1:=0;
    108 P1:=0;
    109 TZKC:=TZKC+1;
    110 END
    111 IF H1<0&&BP81 THEN BEGIN //若持有空单
    112 SELLSHORT(1,1,MARKET); //平空单
    113 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
    114 H1:=0;
    115 P1:=0;
    116 TZKC:=TZKC+1;
    117 END
    118 //============82开平仓================================================
    119 IF H2>=0&&SPK82 THEN BEGIN //若持有多单
    120 if H2>0 then begin
    121 SELL(1,1,MARKET); //平多单
    122 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
    123 H2:=0;
    124 P2:=0;
    125 if AA2>150 then TZKC:=TZKC+1;
    126 end
    127 if H2=0&&AA2<=150&&TZKC<3 then BEGIN
    128 BUYSHORT(1,1,MARKET); //开空单
    129 H2:=-1;
    130 P2:=ClOSE;
    131 end
    132 END
    133 IF H2<=0&&BPK82 THEN BEGIN //若持有空单
    134 if H2<0 then begin
    135 SELLSHORT(1,1,MARKET); //平空单
    136 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
    137 H2:=0;
    138 P2:=0;
    139 if AA2>150 then TZKC:=TZKC+1;
    140 end
    141 if H2=0&&AA2<=150&&TZKC<3 then BEGIN
    142 BUY(1,1,MARKET); //开多单
    143 H2:=1;
    144 P2:=ClOSE;
    145 end
    146 END
    147 IF H2>0&&SP82 THEN BEGIN //若持有多单
    148 SELL(1,1,MARKET); //平多单
    149 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
    150 H2:=0;
    151 P2:=0;
    152 TZKC:=TZKC+1;
    153 END
    154 IF H2<0&&BP82 THEN BEGIN //若持有空单
    155 SELLSHORT(1,1,MARKET); //平空单
    156 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
    157 H2:=0;
    158 P2:=0;
    159 TZKC:=TZKC+1;
    160 END
    161 //================83开平仓====================================================
    162 IF H3>=0&&SPK83 THEN BEGIN //若持有多单
    163 if H3>0 then begin
    164 SELL(1,1,MARKET); //平多单
    165 AA3:=AA3+H3*(CLOSE-P3)*MULTIPLIER-FEE;
    166 H3:=0;
    167 P3:=0;
    168 if AA3>150 then TZKC:=TZKC+1;
    169 end
    170 if H3=0&&AA3<=150&&TZKC<3 then BEGIN
    171 BUYSHORT(1,1,MARKET); //开空单
    172 H3:=-1;
    173 P3:=ClOSE;
    174 end
    175 END
    176 IF H3<=0&&BPK83 THEN BEGIN //若持有空单
    177 if H3<0 then begin
    178 SELLSHORT(1,1,MARKET); //平空单
    179 AA3:=AA3+H3*(CLOSE-P3)*MULTIPLIER-FEE;
    180 H3:=0;
    181 P3:=0;
    182 if AA3>150 then TZKC:=TZKC+1;
    183 end
    184 if H3=0&&AA3<=150&&TZKC<3 then BEGIN
    185 BUY(1,1,MARKET); //开多单
    186 H3:=1;
    187 P3:=ClOSE;
    188 end
    189 END
    190 IF H3>0&&SP83 THEN BEGIN //若持有多单
    191 SELL(1,1,MARKET); //平多单
    192 AA3:=AA3+H3*(CLOSE-P3)*MULTIPLIER-FEE;
    193 H3:=0;
    194 P3:=0;
    195 TZKC:=TZKC+1;
    196 END
    197 IF H3<0&&BP83 THEN BEGIN //若持有空单
    198 SELLSHORT(1,1,MARKET); //平空单
    199 AA3:=AA3+H3*(CLOSE-P3)*-FEE;
    200 H3:=0;
    201 P3:=0;
    202 TZKC:=TZKC+1;
    203 END
    204 IF TZKC=3 THEN BEGIN//80、81、82、83任意3个停止开仓条件满足即清空持仓,不再开仓。
    205 SELLSHORT(1,0,MARKET); //平空单
    206 SELL(1,0,MARKET); //平多单
    207 END
    208 //============================83============================================
    209 赢:asset-1000000,NOAXIS,COLORYELLOW;

     

     来源: WWW.CXH99.COM

  • 金字塔客服:

    四个策略同时放在一个策略中运行,并独立开平仓

    这个没有办法,策略和策略之间是可以独立,但是如果放在一起没有办法做区分的

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容