以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  能否求出固定1000根K线的盈亏  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=164362)

--  作者:srxiaobing
--  发布时间:2018/7/11 10:40:53
--  能否求出固定1000根K线的盈亏
如从0-1000根赚了多少  1001-2000赚了多少 每个间隔盈亏不影响 单独计算 
--  作者:FireScript
--  发布时间:2018/7/11 11:17:01
--  
 先做标记,这里以10个K为例,方便调试。

VARIABLE:mark:=0;
if  mod(BARPOS,10)=0 then mark:=1;else if then mark:=0;

z:mark;
然后在2个mark=1 之间的K做盈亏统计。
盈亏的统计的话,要先看你盈亏计算方式了。

--  作者:wenarm
--  发布时间:2018/7/11 11:21:05
--  

用VALUEWHEN函数处理。获取指定k线位置的盈亏,然后进行差值运算即可。

aa:VALUEWHEN(BARPOS=1000,NUMPROFIT(1));
bb:VALUEWHEN(BARPOS=2000,NUMPROFIT(1));

sss:bb-aa;


--  作者:FireScript
--  发布时间:2018/7/11 13:24:32
--  
 VARIABLE:mark:=0;
if  mod(BARPOS,10)=0 then mark:=1;else if then mark:=0;//这里是10,如果是1000你改下就可以了。下面s定义里面也要相应修改下。
s:if(BARPOS<=10,BARPOS,if(mark,10,BARSLAST(mark=1)))-1;//追溯到上次mark=1位置,并且获取当时K上的值

a1:ref(NUMPROFIT(1),s);
a2:NUMPROFIT(1);

最后取a1 和 a2差值。

如果你盈亏是别的方式计算也是一样的。取2个位置的差值就可以了。