以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请求帮助改写 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=87838) |
|
-- 作者:心静 -- 发布时间:2015/11/29 20:31:12 -- 请求帮助改写 老师好请求帮助将文华源码改写成金字塔源码 N4:=SUMBARS(COUNTSIG(BK,1),1),NODRAW; |
|
-- 作者:心静 -- 发布时间:2015/11/29 21:43:45 -- 老师这是平仓后开仓前立即取出三个值, 一,取本次平仓盈亏值,当平仓一结束,立即取值从开仓到平仓这一仓单的平仓盈亏值,这个值有三个可能,盈利为正数>0,保本=0,亏损为负数<0, 二,取本次平仓前一周期的亏损累计值,当平仓一结束,立即取前一周期的开平仓的亏损累计值,这个取值,当出现亏损时才取这个负值,当盈利或保本,取到的值为0,这里需要注明第一次开仓,取不到前一周期值,就设初始前一周期的亏损累计值为0。 三,取本次平仓后亏损累计值,当平仓一结束,立即取本周期平仓的亏损累计值,这个取值为前一周期的亏损累计值+取本次平仓盈亏值,当相加出现亏损时才取这个负值,当相加盈利或保本,取到的值为0,这里需要注明第一次开仓,取不到前一周期值,设初始前一周期的亏损累计值为0。 |
|
-- 作者:yukizzc -- 发布时间:2015/11/30 10:18:09 -- N4:=SUMBARS(COUNT(开多条件,1),1),NODRAW; N5:=SUMBARS(COUNT(开空条件,1),1),NODRAW; N1:=IF(COUNT(开多条件,0)=0,N5,N4),NODRAW; N2:=IF(COUNT(开空条件,0)=0,N4,N5),NODRAW; N3:=MIN(N1,N2),NODRAW; YK1:asset-REF(asset,N3),NODRAW;//取本次平仓盈亏值 YK:IF(COUNT(平多条件,0)+COUNT(平空条件,0)=0,0,if(YK1+REF(YK,N3)>=0,0,YK1+REF(YK,N3))),NODRAW;//取本次平仓后亏损累计值。 YK2:REF(YK,N3),NODRAW;//取本次平仓前一周期的亏损累计值。 |
|
-- 作者:心静 -- 发布时间:2015/11/30 16:02:53 -- 老师,我将cci交易系统代入测试一下,通不过,不知是什么原, TYP := (HIGH + LOW + CLOSE)/3; 手数:=ss; //交易系统 开多条件:=CROSS(CCI,100);//开多条件 |
|
-- 作者:yukizzc -- 发布时间:2015/11/30 16:22:34 -- M,ss这种变量你要先定义好 |
|
-- 作者:心静 -- 发布时间:2015/11/30 17:21:59 -- INPUT:m(14,5,32,1); INPUT:ss(1,1,10,1);
|
|
-- 作者:心静 -- 发布时间:2015/11/30 17:24:12 -- 定义好,还是通不过 |
|
-- 作者:wenarm -- 发布时间:2015/11/30 19:57:29 -- YK:IF(COUNT(平多条件,0)+COUNT(平空条件,0)=0,0,if(YK1+REF(YK,N3)>=0,0,YK1+REF(YK,N3))),NODRAW;//取本次平仓后亏损累计值。 这句话有问题。 1..yk你在这个位置进行了定义初始化。但是你语句中使用了这个变量。
|
|
-- 作者:h13004480057 -- 发布时间:2015/11/30 21:12:00 -- 在文华的源码中yk可以这样写的,而且yk就能取到本次平仓后亏损累计值, 请老师按照2楼的要求取出三个值,
|
|
-- 作者:yukizzc -- 发布时间:2015/11/30 22:21:13 -- 初始资金:=1000000; if 平仓条件 then begin sell(); 平仓盈亏值:=NUMPROFIT(1); 前一周期亏损累计值:=if(平仓盈亏值<0,ref(asset-初始资金,1),0); 本次累计亏损值:=if(前一周期亏损累计值+平仓盈亏值<0,前一周期亏损累计值+平仓盈亏值,0); end |