欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请求帮助改写

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有19423人关注过本帖树形打印复制链接

主题:请求帮助改写

帅哥哟,离线,有人找我吗?
心静
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
请求帮助改写  发帖心情 Post By:2015/11/29 20:31:12    Post IP:180.126.3.69[只看该作者]

老师好请求帮助将文华源码改写成金字塔源码

N4:=SUMBARS(COUNTSIG(BK,1),1),NODRAW;
N5:=SUMBARS(COUNTSIG(SK,1),1),NODRAW;
N1:=IF(COUNTSIG(BK,0)=0,N5,N4),NODRAW;
N2:=IF(COUNTSIG(SK,0)=0,N4,N5),NODRAW;
N3:=MIN(N1,N2),NODRAW;
YK1:MONEYTOT-REF(MONEYTOT,N3),NODRAW;//取本次平仓盈亏值
YK:IF(COUNTSIG(SP,0)+COUNTSIG(BP,0)=0,0,LOOP2(YK1+REF(YK,N3)>=0,0,YK1+REF(YK,N3))),NODRAW;//取本次平仓后亏损累计值。
YK2:REF(YK,N3),NODRAW;//取本次平仓前一周期的亏损累计值。


 回到顶部
帅哥哟,离线,有人找我吗?
心静
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/11/29 21:43:45    Post IP:180.126.3.69[只看该作者]

老师这是平仓后开仓前立即取出三个值,

一,取本次平仓盈亏值,当平仓一结束,立即取值从开仓到平仓这一仓单的平仓盈亏值,这个值有三个可能,盈利为正数>0,保本=0,亏损为负数<0,

二,取本次平仓前一周期的亏损累计值,当平仓一结束,立即取前一周期的开平仓的亏损累计值,这个取值,当出现亏损时才取这个负值,当盈利或保本,取到的值为0,这里需要注明第一次开仓,取不到前一周期值,就设初始前一周期的亏损累计值为0。

三,取本次平仓后亏损累计值,当平仓一结束,立即取本周期平仓的亏损累计值,这个取值为前一周期的亏损累计值+取本次平仓盈亏值,当相加出现亏损时才取这个负值,当相加盈利或保本,取到的值为0,这里需要注明第一次开仓,取不到前一周期值,设初始前一周期的亏损累计值为0。


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/30 10:18:09    Post IP:58.246.57.26[只看该作者]

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;//取本次平仓前一周期的亏损累计值。

 回到顶部
帅哥哟,离线,有人找我吗?
心静
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/11/30 16:02:53    Post IP:180.126.3.69[只看该作者]

老师,我将cci交易系统代入测试一下,通不过,不知是什么原,

TYP := (HIGH + LOW + CLOSE)/3;
CCI:=(TYP-MA(TYP,M))/(0.015*AVEDEV(TYP,M));

手数:=ss;
//交易条件
开多平空条件:=CROSS(CCI,100);//开多平空条件
开空平多条件:=CROSS(100,cci);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);

开多条件:=CROSS(CCI,100);//开多条件
开空条件:=CROSS(100,cci);//开空条件
平空条件:=CROSS(CCI,100);//平空条件
平多条件:=CROSS(100,cci);//平多条件
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;//取本次平仓前一周期的亏损累计值。


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/30 16:22:34    Post IP:58.246.57.26[只看该作者]

M,ss这种变量你要先定义好

 回到顶部
帅哥哟,离线,有人找我吗?
心静
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/11/30 17:21:59    Post IP:180.126.3.69[只看该作者]

INPUT:m(14,5,32,1);
INPUT:ss(1,1,10,1);

 回到顶部
帅哥哟,离线,有人找我吗?
心静
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/11/30 17:24:12    Post IP:180.126.3.69[只看该作者]

定义好,还是通不过

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/11/30 19:57:29    Post IP:183.131.104.169[只看该作者]

YK:IF(COUNT(平多条件,0)+COUNT(平空条件,0)=0,0,if(YK1+REF(YK,N3)>=0,0,YK1+REF(YK,N3))),NODRAW;//取本次平仓后亏损累计值。
这句话有问题。
1..yk你在这个位置进行了定义初始化。但是你语句中使用了这个变量。


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
h13004480057
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/11/30 21:12:00    Post IP:221.231.89.90[只看该作者]

在文华的源码中yk可以这样写的,而且yk就能取到本次平仓后亏损累计值,
请老师按照2楼的要求取出三个值,

一,取本次平仓盈亏值,当平仓一结束,立即取值从开仓到平仓这一仓单的平仓盈亏值,这个值有三个可能,盈利为正数>0,保本=0,亏损为负数<0,

二,取本次平仓前一周期的亏损累计值,当平仓一结束,立即取前一周期的开平仓的亏损累计值,这个取值,当出现亏损时才取这个负值,当盈利或保本,取到的值为0,这里需要注明第一次开仓,取不到前一周期值,就设初始前一周期的亏损累计值为0。

三,取本次平仓后亏损累计值,当平仓一结束,立即取本周期平仓的亏损累计值,这个取值为前一周期的亏损累计值+取本次平仓盈亏值,当相加出现亏损时才取这个负值,当相加盈利或保本,取到的值为0,这里需要注明第一次开仓,取不到前一周期值,设初始前一周期的亏损累计值为0。



 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/30 22:21:13    Post IP:114.111.166.3[只看该作者]

初始资金:=1000000;

if 平仓条件 then

begin

sell();

平仓盈亏值:=NUMPROFIT(1);

前一周期亏损累计值:=if(平仓盈亏值<0,ref(asset-初始资金,1),0);

本次累计亏损值:=if(前一周期亏损累计值+平仓盈亏值<0,前一周期亏损累计值+平仓盈亏值,0);

end


 回到顶部
总数 141 1 2 3 4 5 6 7 8 9 10 下一页 ..15