以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 新手请教老师 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74465) |
-- 作者:zkh1010 -- 发布时间:2015/1/14 23:29:35 -- 新手请教老师 论坛上看到亏损额度控制如下,但我是新手不太好理解,怕使用时出错,特意写一个案例,请老师耐心指导,谢谢! variable:nn=0; variable:biaoji=0;//开仓语句中加上条件biaoji=0 if 平仓条件 and 持仓判断 and openprofit<0 then begin 平仓语句; nn:=nn+openprofit; end if openprofit<=指定额度 then 平仓语句;//平仓函数中的手数写0 / / / //请问老师以下程序表达上有没问题?我所在表达的意思是当天如果亏损超过10000就不再开仓! variable:nn=0; variable:biaoji=0;//开仓语句中加上条件biaoji=0 //开仓条件 KD:= //开多条件 KK:= //开空条件 //开仓执行 开多:BUY(KD and biaoji=0 AND HOLDING=0,2,THISCLOSE); //开多信号 开空:BUYSHORT(KK and biaoji=0 AND HOLDING=0,2,THISCLOSE); //开空信号 //平多条件 HH:=HHV(H,enterbars);//定义高点,求开盘价以来的最高值,包括当前K线 LL:=LLV(L,enterbars);//定义低点,求开盘价以来的最低值,包括当前K线 pd1:= pd2:= pd3:= pd4:= pd5:= //平空条件 pk1:= pk2:= pk3:= pk4:= pk5:= //平仓执行 if pd1 or pd2 or pd3 or pd4 or pd5 and holding>0 then sell(1,holding,marketr); if pk1 or pk2 or pk3 or pk4 or pk5 and holding<0 then sellshort(1,holding,marketr); if pd1 or pd2 or pd3 or pd4 or pd5 and holding>0 and openprofit<0 then begin sell(1,holding,marketr); nn:=nn+openprofit; end if pk1 or pk2 or pk3 or pk4 or pk5 and holding<0 and openprofit<0 then begin sellshort(1,holding,marketr); nn:=nn+openprofit; end if openprofit<=-10000 then sell(1,0,market); if openprofit<=-10000 then sellshort(1,0,market); if time>=151200 then begin //如果是股指写成time>151200 sell(holding>0,holding,marketr); sellshort(holding<0,holding,marketr); end 我的问题一,是以上表达有没错;二,是黄色地方是不是改为 nn;三,是如何理解biaoji在程序中的角色;四,如果第一单亏2000那么nn值是不是就是2000,biaoji的值是多少,为什么? |
-- 作者:zkh1010 -- 发布时间:2015/1/14 23:38:50 -- 我所在表达的意思是当天如果亏损超过10000立即平仓,并且不再开仓 |
-- 作者:jinzhe -- 发布时间:2015/1/15 9:18:30 -- 那么我原来的代码是怎么写的?你为何要自行添加一些自己都不懂的代码? |
-- 作者:zkh1010 -- 发布时间:2015/1/15 11:29:11 -- 就是不懂什么用才问??我加是按我理解的思路加进去的,如果错了就帮我改一下??? |
-- 作者:jinzhe -- 发布时间:2015/1/15 13:23:03 -- 意思是总的亏损满10000,当天不再开仓? |
-- 作者:zkh1010 -- 发布时间:2015/1/15 13:24:42 -- 是的 |
-- 作者:jinzhe -- 发布时间:2015/1/15 13:40:09 -- variable:nn=0;
variable:biaoji=0;//开仓语句中加上条件biaoji=0
//开仓条件
KD:= //开多条件
KK:= //开空条件
tt:=time<151200;
//开仓执行
开多:BUY(KD and biaoji=0 AND HOLDING=0 and tt,2,THISCLOSE); //开多信号
开空:BUYSHORT(KK and biaoji=0 AND HOLDING=0 and tt,2,THISCLOSE); //开空信号
//平多条件
HH:=HHV(H,enterbars);//定义高点,求开盘价以来的最高值,包括当前K线
LL:=LLV(L,enterbars);//定义低点,求开盘价以来的最低值,包括当前K线
pd1:=
pd2:=
pd3:=
pd4:=
pd5:=
//平空条件
pk1:=
pk2:=
pk3:=
pk4:=
pk5:=
//平仓执行
if (pd1 or pd2 or pd3 or pd4 or pd5) and holding>0 then begin
sell(1,holding,marketr);
if numprofit(1)<0 then nn:=numprofit(1)+nn;
end
if (pk1 or pk2 or pk3 or pk4 or pk5) and holding<0 then begin
sellshort(1,holding,marketr);
if numprofit(1)<0 then nn:=numprofit(1)+nn;
end
if nn<=-10000 and ref(nn>-10000,1) then biaoji:=1;
if time>=151200 then begin //如果是股指写成time>151200
sell(holding>0,holding,marketr);
sellshort(holding<0,holding,marketr);
end
if time=closetime(0) then begin
nn:=0;
biaoji:=0;
end |
-- 作者:zkh1010 -- 发布时间:2015/1/15 19:36:07 -- if nn<=-10000 and ref(nn>-10000,1) then biaoji:=1; 老师,这句ref(nn>-10000,1) 和 biaoji:=1是什么理解,谢谢!
|
-- 作者:zkh1010 -- 发布时间:2015/1/15 22:29:23 -- BUY(KD and biaoji=0 AND HOLDING=0 and tt,2,THISCLOSE); 还有,这句是为什么要用biaoji=0??biaoji=0在这中间起什么作用?
|
-- 作者:zkh1010 -- 发布时间:2015/1/15 22:34:57 -- 从biaoji=0到biaoji:=1在整个程序中是怎样的角色 |