以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请教老师,金字塔里如何实现循环?? (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=171965) |
-- 作者:期货大圣 -- 发布时间:2019/9/7 14:00:01 -- 请教老师,金字塔里如何实现循环?? zj:=1;
//资金 zj:=ref(zj,1)*ylbl;
//前一天的资金*当天的盈利比例 这个如何实现,不会用for
|
-- 作者:FireScript -- 发布时间:2019/9/9 8:52:58 -- 没能明白你这个需求是怎样的,请详细描述下你的需求。你上面这个代码没看出来哪里需要循环的。 |
-- 作者:期货大圣 -- 发布时间:2019/9/9 15:12:47 -- 具体需求就是,我每天我根据K线计算出来一个盈利率,来计算每天的资金净值 |
-- 作者:FireScript -- 发布时间:2019/9/9 15:16:26 -- 很简单这样就行了 for i=0 to 10 DO begin //循环内部代码 end 不过循环很容易卡死。K线数比较多循环次数多的情况下很容易卡死
|
-- 作者:期货大圣 -- 发布时间:2019/9/9 15:48:50 -- zj:=1; for i=0 to 10 DO
begin
zj=ref(zj,1)*ylbl;
end 盈利曲线2:zj;
我写的不会吧,幅图上zj一直等于1
|
-- 作者:FireScript -- 发布时间:2019/9/9 16:10:01 -- 幅图 那指标是序列模式的吧。改成逐K吧。不会应该会比较卡。 建议你还是提供下你的思路,我们看下啥情况。 |
-- 作者:期货大圣 -- 发布时间:2019/9/9 16:34:46 -- 改成逐K,并且把只计算最后一根K线去掉了,还是如初。 我这个幅图主要是想显示某项策略的资金曲线,根据信号开仓后,计算每天的盈亏比例,计算每天的资金净值。 大致相当于回测。因为回测都是按收盘价平仓的,我这个是指定价格平仓的。
ggg:=ref(hhv(h,3),1);
//三周期高点 ddd:=ref(llv(l,3),1);
//三周期低点 b:=cross(c,ggg) and ref(barslast(cross(c,ggg)),1)>ref(barslast(cross(ddd,c)),1);
//开多条件 s:=cross(ddd,c) and ref(barslast(cross(c,ggg)),1)<ref(barslast(cross(ddd,c)),1);
//开空条件 //DRAWICON(b ,0 ,6 ,0 ); //DRAWICON(s ,0 ,7 ,0 ); btime:=barslast(b);
//上次开多信号到现在周期数 stime:=barslast(s);
//上次开空信号到现在周期数 bpb:=l<ddd and c>ddd and btime>0 and btime<stime;
//持有多仓时,同一K线平仓再开多仓 sps:=h>ggg and c<ggg and stime>0 and stime<btime;
//持有空仓时,同一K线平仓再开空仓 batr:=ref(c,btime)-ref(l,btime+2);
//上次开多时,止损距离点数 satr:=ref(h,stime+2)-ref(c,stime);
//上次开空时,止损距离点数 //每日盈利与开仓时的止损空间的比例 ylbl:=if(btime<stime, if(btime=0,(ref(c,1)-ggg)/satr,if(bpb=1,(ddd-ref(c,1))/batr,(c-ref(c,1))/batr)),
//持有多仓时候,每天的盈利幅度,区别是否当天平多再开多 if(stime=0,(ddd-ref(c,1))/batr,if(sps=1,(ref(c,1)-ggg)/satr,(ref(c,1)-c)/satr))
//持有空仓时候,每天的盈利幅度,区别是否当天平多再开多 );
//每个周期盈利比例 //按单利累加计算资金净值数 //盈利曲线:sum(ylbl,0),NODRAW; zj:=1; for i=0 to 10 DO begin zj=ref(zj,1)*ylbl; end 盈利曲线2:zj;
|
-- 作者:FireScript -- 发布时间:2019/9/9 16:56:23 -- zj:1; sw:ref(zj,1); for i=0 to 3 DO begin zj:=sw*ylbl; end ref的使用放在外部试下。
|
-- 作者:期货大圣 -- 发布时间:2019/9/9 17:16:01 -- 不行,没有循环。值跟我的ylbl值相等。 [此贴子已经被作者于2019/9/9 17:17:12编辑过]
|
-- 作者:期货大圣 -- 发布时间:2019/9/9 17:22:31 -- 不过还好,你们金字塔可以复制数据,用exel,做这个循环非常简单。 |