-- 作者:阿枫
-- 发布时间:2013/5/17 8:20:08
--
版主,早上好,你说的连亏次数函数NUMSEQLOSS,连赢次数函数NUMSEQWIN并不是我想要的.你仔细看这两个函数的说明:"当前位置之前连续有多少次连续盈利的交易,注意每次平仓算一次交易,而开仓不算",这个函数统计到后面有连赢次数可达几百次,连亏次数函数同理.
而最大连亏次数函数MAXSEQLOSS,最大连赢次数MAXSEQWIN也达不到我想要的结果,其统计的是最大,最小,比如是6次,而我要的是连赢5次减仓.单然连赢6次也是减仓,如果连赢6次后那一次是亏损,就恢复正常仓位.这两个函数也实现不了.
我的意图如下图所示:
此主题相关图片如下:1.jpg

如上图,连赢6次后(第7次)按1手交易,连赢6次后的下一次(第7次)是亏损的,所以第8次按正常2手交易.所以第7次亏损后,连赢次数就要置为0,下次连赢后重新记数.
连亏次数同理.而我这说的连赢连亏次数是和NUMSEQLOSS,NUMSEQWIN是完全不同的两个概念!!我要的是赢利了记1,下次再赢利置为2,再下次又赢利了置为3,以次类推...
当第7次是亏损的后,连赢次数置为0
不知版主明白我的意图了吗?麻烦给个解决答案.谢谢
|
-- 作者:fly
-- 发布时间:2013/5/17 14:11:45
--
variable:winnum=0;// 全局变量,平仓时判断一下是盈利/亏损,若盈利winnum就加1
if cond1 and holding>0 then
begin
sell(1,1,thisclose);
if c>enterprice then winnum:=winnum+1;//若连续盈利则加1
else
if c<enterprice then winnum:=0;//一旦有亏损则置为0,重新记数
end
if cond2 and holding=0 then buy(1,1,thisclose);
|
-- 作者:阿枫
-- 发布时间:2013/5/19 18:56:44
--
FLY版主一直都解答的很好.
不过这个答案我觉得不是很间接,平仓时断一下是盈利/亏损,若盈利winnum就加1.
关建一个模型里平仓的地方很多,每个地方都加这样一串代码,我觉得不是很简接.
我的模型里多单止损平仓,空单止损平仓,多单止赢平仓,空单止赢平仓,收盘多单平仓,空单收盘平仓.还有空单的直接平仓,多单的直接平仓.这样代码不是很繁杂?
我今天编了一写,程序还是有些问题.实现不了我的意图.
版主有没有更简接的思路?我试了用numprofit(1)来判断,但是平仓后的每根K线都会加1.也不行
|