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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 有开仓信号以来权益的最高数值怎么表示

   

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


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

主题:有开仓信号以来权益的最高数值怎么表示

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/11/15 16:46:24    Post IP:180.169.30.6[显示全部帖子]

len:BARSSINCE2(开多条件 or 开空条件,BARPOS);
result:hhv(ASSET,len+1);

其中开多和开空条件必须是完整的,意思就是这2个条件触发了肯定是开仓的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/11/16 9:05:28    Post IP:180.169.30.6[显示全部帖子]

 moneytot 是怎么定义的?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/11/16 9:21:11    Post IP:180.169.30.6[显示全部帖子]

 你是说ASSET吧。 那样不合理,因为你如果是亏损 那样做取到的就是初始资金了。并不是开仓之后最大值了。
[此贴子已经被作者于2018/11/16 9:40:43编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/11/16 9:42:57    Post IP:180.169.30.6[显示全部帖子]

是 ASSET不是ASSE ,上面我打错了。 你是说当前程序化开始运行以来的最大权益值?而不是图表上有信号以来的最大值?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/11/16 11:21:54    Post IP:180.169.30.6[显示全部帖子]

操作需要全局变量的配合。以下思路仅供参考。


试了下,只能做一个策略加载到图表上以来(不是程序化运行以来)的最大 ASSET统计。每次运行之前还需要重置全局变量,

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

在工具-数据管理-全局变量  。每次重新运行之前,或者修改了策略或品种的时候都要把CT1的值重置成0。另外你如果是多个品种,那就只能是多个全局变量了,不能多个品种共享一个全局变量。

at:=EXTGBDATA('CT1');//初始读取全局变量值,这个全局变量用作保存之前记录的asset值,初始是0.

if BARPOS>150 and abs(holding)<=3 and c>o then buyshort(1,1,MARKET);
if BARPOS>200  and abs(holding)=4  and c<o then sellshort(1,holding,MARKET);


if ISLASTBAR  and ASSET>at then EXTGBDATASET('CT1',ASSET);//只在最新K上进行判断。

实际资金:ASSET;
指标运行以来最大资金:EXTGBDATA('CT1');

建议你可以直接用今日以来的最大asset来替代"程序化开启以来的最大值”,至少操作简单多了,只需要几句代码就可以了。


[此贴子已经被作者于2018/11/16 11:22:30编辑过]


命数如织,当如磐石。
 回到顶部