分析家公式网,提供指标公式,股票软件 用户登录  |  用户 注册

软件名称:[B]金字塔 阿火秘笈——汇集各种模型编写方法(新更新—通过飞信给自己发短信的VBA代码)[/B]
软件类型:国产软件
运行环境:Win9X/Win2000/WinXP/Win2003/
软件语言:简体中文
授权方式:免费版
软件大小:3.00 KB
官方主页:Home Page
更新时间:2012-01-20 10:10:35
软件简介:

一,如何把“K线走完模式”的模型转换成“固定轮询模式”的模型

以便把各个模型放在同一个框架内进行图表程序化交易

举例:

均线交叉模型(K线走完模型):

runmode:0;

ma5:=ma(c,5);

ma20:=ma(c,20);

entertime:=time>100000 and time<144500;

if holding>0 and ma5<ma20 then sell(1,1,market);

if holding<0 and ma5>ma20 then sellshort(1,1,market);

if holding=0 and ma5>ma20 and entertime then buy(1,1,market);

if holding=0 and ma5<ma20 and entertime then buyshort(1,1,market);

if time>=150000 then begin

sell(1,1,market);

sellshort(1,1,market);

end



简单的改法,自然是把各个条件“过去化”,如:ma5 改为 ref(ma(c,5),1);但这种方法碰到大型的、复杂的模型时,容易出错

可采用这种方法,把holding用全局变量cc替换,然后加入红色部分代码,红色部分代码要放在信号语句的前面:

runmode:0;

variable:cc=0;

ma5:=ma(c,5);

ma20:=ma(c,20);

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 ma5<ma20 then cc:=0;

if cc<0 and ma5>ma20 then cc:=0;

if cc=0 and ma5>ma20 and entertime then cc:=1;

if cc=0 and ma5<ma20 and entertime then cc:=-1;

if time>=150000 then begin

cc:=0;

end



那么,如果是 K线走完模式和盘中模式并存,怎么做呢?也简单,就是在“开盘价下单语句”后面加入蓝色部分的“盘中下单语句”就行了

如下:

runmode:0;

variable:zs=0,cc=0;

ma5:=ma(c,5);

ma20:=ma(c,20);

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


二、移动止损的编写方法:
还是以之前的模型为例,希望加入移动止损,即:开仓后的最高点回落10个点要盘中止损离场
加入一个全局变量 hl,记录开多后的最高点,开空后的最低点:
runmode:0;
variable:zs=0,cc=0,hl=0;
ma5:=ma(c,5);
ma20:=ma(c,20);
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;
hl:=h;
end
if cc=0 and ma5<ma20 and entertime then begin
cc:=-1;
zs:=c+10;
hl:=l;
end
if cc>0 and h>hl then begin//创新高后,上移hl
hl:=h;
zs:=hl-10;
end
if cc<0 and l<hl then begin//创新低后,下移hl
hl:=l;
zs:=hl+10;
end
if time>=150000 then begin
cc:=0;
end

三、逐K线模式的模型,用免FEI版下单交易的方法
runmode:0;
variable:cc=0;
ma5:=ma(c,5);
ma20:=ma(c,20);
entertime:=time>100000 and time<144500;
exitlong:cc<>1,tfilter;
exitshort:cc<>-1,tfilter;
enterlong:ref(cc,1)<>1 and cc=1,tfilter;
entershort:ref(cc,1)<>-1 and cc=-1,tfilter;
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 cc:=1;
if cc=0 and ma5<ma20 and entertime then cc:=-1;
if time>=150000 then cc:=0;


原理是,用全局变量cc记录仓位,然后根据仓位的变化情况来确定下单信号


四、日内满仓反手的写法
因为满仓的情况下,要等平仓单成交、保证金释放后,开仓下单才能成功。
用系统自带的orderqueue在平仓单没有第一时间成交的情况下有一定的局限性,可用如下的方法:
runmode:0;
input:cw(3,1,10,1);
variable:cc=0;
ma5:=ma(c,5);
ma20:=ma(c,20);
entertime:=time>100000 and time<144500;
if holding>0 and cc<=0 then sell(1,cw,limitr,o);
if holding<0 and cc>=0 then sellshort(1,cw,limitr,o);
//此方法撤单和追单时间要控制在出信号的K线时间以内
if holding=0 and cc>0 and cw+tholding2>=cw then buy(1,cw,limitr,o);//平空成交后,"cw+tholding2>=cw "才会成立并开多
if holding=0 and cc<0 and cw-tholding2>=cw then buyshort(1,cw,limitr,o);//平多成交后,"cw-tholding2>=cw "才会成立并开空
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 cc:=1;
if cc=0 and ma5<ma20 and entertime then cc:=-1;
if time>=150000 then begin
cc:=0;
end

五、自行计算最大回撤的方法,放到逐K线模式的模型最后面即可:

zichan:asset,noaxis;
if barpos=1 then begin
MaxAsset:=zichan;

Maxhc:=0; end
if zichan>MaxAsset then MaxAsset:=zichan;
if MaxAsset-zichan>Maxhc then Maxhc:=MaxAsset-zichan;
最大回撤:Maxhc,linethick0;
交易次数:totaltrade,linethick0;
正确率:percentwin,l
[url=http://www.70822.com/soft/sort013/sort068/down-43390.html]金字塔 阿火秘笈——汇集各种模型编写方法(新更新—通过飞信给自己发短信的VBA代码)[/url]

关于本站 | 网站帮助 | 广告合作 | 声明 | 友情连接 | 网站地图 |
分析家公式网声明:本站所有股票公式软件资料均网上公开收集,如侵权请联系删帖。站内所有广告,均与本站无关!
Copyright © 2003-2024 70822.Com. All Rights Reserved .
页面执行时间:62.50000 毫秒