以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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在整个程序中是怎样的角色