以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  策略编写求助区  (http://weistock.com/bbs/list.asp?boardid=11)
----  求助关于加仓的策略  (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=9821)

--  作者:kingmoonwang
--  发布时间:2012/2/3 21:15:07
--  求助关于加仓的策略

求助:

1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;

2. 盈利幅度为开仓保证金的20%,加仓一手;比如1手开仓,盈利20%,加为两手, 此后两手的总盈利(包括第一手的盈利),为两手保证金的

20%时,再加仓一手,最多加至5手;

3. 当总盈利为1手保证金的100%时,减仓50%,向上取整,比如此时为3手,减为2手;

 

当3与2冲突时,2服从3;

 

请问,以上加仓策略如何编写。请高人帮忙。


--  作者:26327756l
--  发布时间:2012/2/6 9:47:52
--  

仅供参考

 

//1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 then
begin
buy(holding>0,1,market);
end
//2. 盈利幅度为开仓保证金的20%,加仓一手;比如1手开仓,盈利20%,
//加为两手, 此后两手的总盈利(包括第一手的盈利),为两手保证金的
//20%时,再加仓一手,最多加至5手;
variable:jia=0;
if OPENPROFIT/TACCOUNT(28)>0.2 and jia<5 then
begin
buy(holding>0,1,market);
jia:=jia+1;
end
//3. 当总盈利为1手保证金的100%时,减仓50%,向上取整,比如此时为3手,减为2手;
if OPENPROFIT>TACCOUNT(28) then sell(holding>0,50%,market);

[此贴子已经被作者于2012-2-6 10:11:36编辑过]

--  作者:kingmoonwang
--  发布时间:2012/2/6 14:52:45
--  

应用于图结果不对。变成两个周期开平仓一次。请楼上再帮忙看看。

版主有空也帮忙看一下。

 

另外,下面这个语句有限制最大开仓数么。

//1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 then
begin
buy(holding>0,1,market);
end

 

多谢了。


--  作者:26327756l
--  发布时间:2012/2/6 15:46:30
--  

加上了最多至5手

关于平仓的问题

应该是最后写的那个

就先删了测试前两个

 

//1. 连续亏损2次后加仓1手,再从此次加仓算起,继续连续亏损两次,再加仓1手,最多加至5手 ;
variable:jia1=0;

if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 and jia1<5 then
begin
buy(holding>0,1,market);

jia1:=jia1+1;
end
//2. 盈利幅度为开仓保证金的20%,加仓一手;比如1手开仓,盈利20%,
//加为两手, 此后两手的总盈利(包括第一手的盈利),为两手保证金的
//20%时,再加仓一手,最多加至5手;
variable:jia=0;
if OPENPROFIT/TACCOUNT(28)>0.2 and jia<5 then
begin
buy(holding>0,1,market);
jia:=jia+1;
end


--  作者:kingmoonwang
--  发布时间:2012/2/6 20:40:47
--  

还是有没达成正确的加仓。

 

是否

    该语句if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0导致;

    该语句应该是连续亏损2次的整数倍时,加仓1手,对么。

 

 连亏2次后加仓到2手,第3次亏损后再开仓应该保持2手开仓,若第4次仍亏损,则再加仓到3手。该语句下第3次若亏损后,第4次开仓又变回原始开仓数了吧。

 再帮忙看看吧。

多谢。

 

 

   

   


--  作者:26327756l
--  发布时间:2012/2/7 10:20:33
--  

为什么会

该语句下第3次若亏损后,第4次开仓又变回原始开仓数?

该语句是连续亏损2次的整数倍时,加仓1手,不能达到 连续亏损两次,再加仓1手

 

[此贴子已经被作者于2012-2-7 10:42:35编辑过]

--  作者:kingmoonwang
--  发布时间:2012/2/7 11:45:26
--  

还是达不成正确加仓。

是什么原因呢。


--  作者:kingmoonwang
--  发布时间:2012/2/7 20:23:37
--  

 

variable:jia1=0;

if NUMSEQLOSS>ref(NUMSEQLOSS,1) and mod(NUMSEQLOSS,2)=0 and jia1<5 then
begin
buy(holding>0,1,market);

jia1:=jia1+1;

 

请问连续3次亏损的时候返回什么值。有加仓么。



--  作者:26327756l
--  发布时间:2012/2/8 8:44:19
--  

什么都不做 没有返回值,不加仓


--  作者:kingmoonwang
--  发布时间:2012/2/10 15:02:06
--  

只做多或者只做空好像逻辑上是对的。如果平仓即反手呢。