以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  限定加仓次数  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=161466)

--  作者:大豆0911
--  发布时间:2018/2/4 17:00:13
--  限定加仓次数
版主好,我想请教一下,我的图表交易系统设置了:满足A条件,则加仓。但是A条件会随着趋势发展,触发好几次,越往后,加仓效果越不理想。
现在我想限定,只在第一次满足A条件的时候加仓。第二次、第三次A条件出现都不加仓,请问如何实现?非常感谢!

--  作者:wenarm
--  发布时间:2018/2/4 21:31:07
--  
使用全局变量进行控制。
控制部分示例如下。
VARIABLE:flag=0;
if 加仓条件 and flag=0 then begin
 加仓语句;
 flag:=1;
end

在需要恢复加仓的条件下把flag从新置0,否者在图表上只会加仓一次后,后面将无法进行有效加仓。


--  作者:大豆0911
--  发布时间:2018/2/4 22:16:26
--  
以下是引用wenarm在2018/2/4 21:31:07的发言:
使用全局变量进行控制。
控制部分示例如下。
VARIABLE:flag=0;
if 加仓条件 and flag=0 then begin
 加仓语句;
 flag:=1;
end

在需要恢复加仓的条件下把flag从新置0,否者在图表上只会加仓一次后,后面将无法进行有效加仓。
 
版主辛苦了,非常感谢!


--  作者:大豆0911
--  发布时间:2018/2/4 22:56:31
--  
按照版主写的示例,我写出了这样的语句,可是出现了新的问题,就是第一次加仓也不再执行了。烦请版主帮我看看问题所在?谢谢了!(如果我把系统语句中的flag:=1;  改成flag:=0;则和原来一样加仓不止一次)
VARIABLE:flag=0;
(中间变量和其他系统语句略)……
if 加多条件 and flag=0 then begin
BUY(HOLDING>0,30%,market);//交易系统之加多操作
flag:=1;
end
if 加空条件  and flag=0 then begin
BUYSHORT(HOLDING<0,30%,market);//交易系统之加空操作
flag:=1;
end


--  作者:wenarm
--  发布时间:2018/2/4 23:35:58
--  
flag只能控制一个方向的限制,你多空两种类型需要使用两个全局变量分别记录处理。
另外,在2楼已经说了,你需要在一个特定的情况下再把flag标志位的值改成0,(例如全平时,将flag置0)否者图表中在第一次加仓后,就再也不会进入加仓的语句段了。
VARIABLE:flag=0,flag1=0;
if 加多条件 and flag=0 then begin
BUY(HOLDING>0,30%,market);//交易系统之加多操作
flag:=1;
end
if 加空条件  and flag1=0 then begin
BUYSHORT(HOLDING<0,30%,market);//交易系统之加空操作
flag1:=1;
end

--  作者:大豆0911
--  发布时间:2018/2/5 22:33:35
--  
版主您太好了,很感谢!我好好领会一下!
以下是引用wenarm在2018/2/4 23:35:58的发言:
flag只能控制一个方向的限制,你多空两种类型需要使用两个全局变量分别记录处理。
另外,在2楼已经说了,你需要在一个特定的情况下再把flag标志位的值改成0,(例如全平时,将flag置0)否者图表中在第一次加仓后,就再也不会进入加仓的语句段了。
VARIABLE:flag=0,flag1=0;
if 加多条件 and flag=0 then begin
BUY(HOLDING>0,30%,market);//交易系统之加多操作
flag:=1;
end
if 加空条件  and flag1=0 then begin
BUYSHORT(HOLDING<0,30%,market);//交易系统之加空操作
flag1:=1;
end