【悬赏】编写IF日内突破交易规则 [金字塔]
- 咨询内容:
交易手数为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分平仓。
开空止损或者平仓后,不再出现开空交易信号
谢谢 [此贴子已经被作者于2011-1-20 16:30:02编辑过] - 金字塔客服:
思路不错
- 用户回复:
写好了,用于1分钟周期,我觉得没问题,版主检查下吧!
不对的地方,请指正
股指突破模型
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);
ENDEND
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);
ENDEND
IF TIME >= 151000 THEN {收盘平仓}
BEGIN
SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);
SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);
END
[此贴子已经被作者于2011-1-20 18:30:32编辑过] - 网友回复:
用于1分钟周期
- 网友回复:
给了5个金币了。说明落英写对了?
管理员自己不会写么?不能吧?
相关文章
-
没有相关内容