-- 作者:FJ6008
-- 发布时间:2014/10/29 13:11:38
-- 请老师把该模型加上根据资金开仓
老师:请把该模型:1、加上保证金显示可开仓数量;2、用户自己可选择:开20%、50%、80%;
//均线交叉模型(K线走完模型):
runmode:0;
variable:zs=0,cc=0;
ma5:ma(c,5);
ma20:ma(c,16);
entertime:=time>100000 and time<144500;
if holding>0 and cc<=0 then sell(1,1,limitr,o);
if holding<0 and cc>=0 then sellshort(1,1,limitr,o);
if holding=0 and cc>0 then buy(1,1,limitr,o);
if holding=0 and cc<0 then buyshort(1,1,limitr,o);
if cc>0 and l<zs then begin
sell(1,1,limitr,min(o,zs-0.6));
cc:=0;
end
if cc<0 and h>zs then begin
sellshort(1,1,limitr,max(o,zs+0.6));
cc:=0;
end
if cc>0 and ma5<ma20 then cc:=0;
if cc<0 and ma5>ma20 then cc:=0;
if cc=0 and ma5>ma20 and entertime then begin
cc:=1;
zs:=c-10;
end
if cc=0 and ma5<ma20 and entertime then begin
cc:=-1;
zs:=c+10;
end
if time>=150000 then begin
cc:=0;
end
盈亏:asset,noaxis,COLORFFFFFF,NODRAW; 收益:ROUND((asset-50000)/50000),linethick0;
|
-- 作者:FJ6008
-- 发布时间:2014/10/29 13:14:31
--
//中间变量 INPUT:SS(1,1,100,1),K1(0.3,0.1,1,0.1),K2(0.6,0.1,1,0.1),BOCP(0.25,0,1,0.01),FBOCP(0.25,0,1,0.01); VARIABLE:开多次数=0,开空次数=0,趋买市=0,趋卖市=0,多头止损价=0,空头止损价=0; CYC:=BARSLAST(DATE>REF(DATE,1))+1; 昨开:=CALLSTOCK(STKLABEL,VTOPEN,6,-1); 昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1); 昨昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-2);//昨天的前一天的收盘价,暂称为昨昨收 昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1); 昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1); 今高:=IF(CYC=1,HIGH,REF(HHV(HIGH,CYC),1)); 今低:=IF(CYC=1,LOW,REF(LLV(LOW,CYC),1)); 今开:=IF(CYC=1,OPEN,REF(OPEN,CYC-1)); 10日平均波幅:=ref(MA(CALLSTOCK(STKLABEL,VTHIGH,6,0)-CALLSTOCK(STKLABEL,VTLOW,6,0),10),1);//AVERAGERANGE 10日平均开收盘区间:=ref(MA(ABS(CALLSTOCK(STKLABEL,VTopen,6,0)-CALLSTOCK(STKLABEL,VTclose,6,0)),10),1);//AVERAGEOCRANGE 开关:=ABS(昨开-昨收)<0.85*10日平均开收盘区间;//CANTRADE 3周期最高价:=REF(HHV(HIGH,3),1); 3周期最低价:=REF(LLV(LOW,3),1); 多头突破确认价:=昨高+BOCP*10日平均波幅;//LONGBREAKPT 空头突破确认价:=昨低-BOCP*10日平均波幅;//SHORTBREAKPT 多翻空确认价:=昨低+FBOCP*10日平均波幅;//LONGFBOPOINT 空翻多确认价:=昨高-FBOCP*10日平均波幅;//SHORTFBOPOINT 手数:=SS; 开仓历时:=ENTERBARS+1;
//交易条件 IF 昨收<=昨昨收 THEN BEGIN//昨日收盘价小于等于昨昨收为趋买市(BUYEASIERDAY) 趋买市:=1; 趋买市开多价:今开+K1*10日平均波幅;//BUYBOPT 趋买市开空价:今开-K2*10日平均波幅;//SELLBOPOINT END
IF 昨收>昨昨收 THEN BEGIN//昨日收盘价大于昨昨收为趋买市(SELLEASIERDAY) 趋卖市:=1; 趋卖市开多价:今开+K2*10日平均波幅;//BUYBOPT 趋卖市开空价:今开-K1*10日平均波幅;//SELLBOPOINT END
//交易系统 //突破 IF TIME>=094500 AND TIME<143000 AND 开关=1 THEN BEGIN {趋买市} IF 趋买市=1 AND 开多次数=0 THEN BEGIN 趋买市开多:BUY(C>=趋买市开多价 AND HOLDING=0,手数,MARKET); 多头止损价:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);//这个策略用于股指,多头常规止损价为 开仓价减25%的10日平均波幅和3个大点的较小值。 开多次数:=1; END
IF 趋买市=1 AND 开空次数=0 THEN BEGIN 趋买市开空:BUYSHORT(CLOSE<=趋买市开空价 AND HOLDING=0,手数,MARKET); 空头止损价:=Max(ENTERPRICE+0.25*10日平均波幅,ENTERPRICE+3);//这个策略用于股指,空头常规止损价为 开仓价加25%的10日平均波幅和3个大点的较小值。 开空次数:=1; END {趋卖市} IF 趋卖市=1 AND 开多次数=0 THEN BEGIN 趋卖市开多:BUY(CLOSE>趋卖市开多价 AND HOLDING=0,手数,MARKET); 多头止损价:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3); 开多次数:=1; END
IF 趋卖市=1 AND 开空次数=0 THEN BEGIN 趋卖市开空:BUYSHORT(CLOSE<趋卖市开空价 AND HOLDING=0,手数,MARKET); 空头止损价:=Max(ENTERPRICE+0.25*10日平均波幅,ENTERPRICE+3); 开空次数:=1; END END //突破失败 {多头突破失败情况1:价格曾经高于多头突破确认价,最新价又回落至空翻多确认价} IF 今高>多头突破确认价 AND C<多翻空确认价 AND TIME<143000 AND 开空次数=0 AND HOLDING>=0 THEN BEGIN 多头止损1:SELL(1,手数,MARKET); 多翻空1:BUYSHORT(1,手数,MARKET); 开空次数:=1; END
{多头突破失败情况2:突破入场后,行情反转。止损的同时我们反手开空,但前提是时间在中午11:30之前,且多头进场在至少4根K之前。瞬间止损我们不允许反转,因为这往往是市场的膝跳反射} IF HOLDING>=0 AND TIME<143000 AND 开空次数=0 THEN BEGIN IF C<=多头止损价 THEN BEGIN 多头止损2:SELL(1,手数,MARKET); IF TIME<=110000 AND 开仓历时>=4 THEN BEGIN 多翻空2:BUYSHORT(1,手数,MARKET); 空头止损价:=MIN(ENTERPRICE+0.15*10日平均波幅,ENTERPRICE+3);//多翻空止损价为开仓价加15%的10日平均波幅和3个大点的较小值。 开空次数:=1; END END END
{空头突破失败情况1:价格曾经低于空头突破确认价,最新价又上涨至空翻多确认价} IF 今低<空头突破确认价 AND C>空翻多确认价 AND TIME<143000 AND 开多次数=0 AND HOLDING<=0 THEN BEGIN 空头止损1:SELLSHORT(1,手数,MARKET); 空翻多1:BUY(1,手数,MARKET); 开多次数:=1; END {空头突破失败情况2:突破入场后,行情反转。止损的同时我们反手开多,但前提是时间在中午11:30之前,且空头进场在至少4根K之前。瞬间止损我们不允许反转,因为这往往是市场的膝跳反射} IF HOLDING<0 AND TIME<143000 AND 开多次数=0 THEN BEGIN IF C>=空头止损价 THEN BEGIN 空头止损2:SELLSHORT(1,手数,MARKET); IF TIME<=110000 AND 开仓历时>=4 THEN BEGIN 空翻多2:BUY(1,手数,MARKET); 多头止损价:=MIN(ENTERPRICE-0.15*10日平均波幅,ENTERPRICE-3);//多翻空止损价为开仓价加15%的10日平均波幅和3个大点的较小值。 开多次数:=1; END END
END //止损 IF HOLDING>0 AND C<多头止损价 AND TIME<151000 THEN 常规多头止损:SELL(1,手数,MARKET); IF HOLDING<0 AND C>空头止损价 AND TIME<151000 THEN 常规空头止损:SELLSHORT(1,手数,MARKET); //止损价调整 {若持多单,而5分钟K高点超过了开仓价+50%10日平均波幅,止损调整为保本型 } IF 今高>ENTERPRICE+0.5*10日平均波幅 THEN 多头止损价:=ENTERPRICE+2*MINDIFF; IF 今低<ENTERPRICE-0.5*10日平均波幅 THEN 空头止损价:=ENTERPRICE-2*MINDIFF; {若时间处于14:30以后,多头跟踪止损为过去3个5分钟的最高低点与多空头止损价中的较大值} IF TIME>=143000 THEN BEGIN 多头止损价:=MAX(多头止损价,3周期最低价); 空头止损价:=MIN(空头止损价,3周期最高价); END
//日内平仓 IF TIME>=151000 THEN BEGIN 收盘平多:SELL(1,手数,MARKET); 收盘平空:SELLSHORT(1,手数,MARKET); 趋卖市:=0; 趋买市:=0; 开多次数:=0; 开空次数:=0; 多头止损价:=0; 空头止损价:=0;
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号 开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号 平多:SELL(PD,1,THISCLOSE); //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
}
持仓:holding,linethick0; 资产:asset,noaxis; 可用现金:cash(0),linethick0;
请老师看看这个模型问题在哪里,麻烦给修改一下,谢谢
{ 信号语句排列规则——先平后开 “费率设置”按钮——用于合理设置模型“费率”,以便在图形上正确输出如下帐户信息:
}
[此贴子已经被作者于2014/10/29 13:16:29编辑过]
|