以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 有开仓信号以来权益的最高数值怎么表示 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166509) |
|
-- 作者:一代天骄 -- 发布时间:2018/11/15 16:34:04 -- 有开仓信号以来权益的最高数值怎么表示 有开仓信号以来权益的最高数值怎么表示? |
|
-- 作者:FireScript -- 发布时间:2018/11/15 16:46:24 -- len:BARSSINCE2(开多条件 or 开空条件,BARPOS); result:hhv(ASSET,len+1); 其中开多和开空条件必须是完整的,意思就是这2个条件触发了肯定是开仓的。
|
|
-- 作者:一代天骄 -- 发布时间:2018/11/15 20:50:55 -- 可以hhv(moneytot,barpos)来表示权益最高值吗? |
|
-- 作者:FireScript -- 发布时间:2018/11/16 9:05:28 -- moneytot 是怎么定义的? |
|
-- 作者:一代天骄 -- 发布时间:2018/11/16 9:12:47 -- 资金权益
|
|
-- 作者:FireScript -- 发布时间:2018/11/16 9:21:11 -- 你是说ASSET吧。 那样不合理,因为你如果是亏损 那样做取到的就是初始资金了。并不是开仓之后最大值了。 [此贴子已经被作者于2018/11/16 9:40:43编辑过]
|
|
-- 作者:一代天骄 -- 发布时间:2018/11/16 9:39:57 -- 应该是我表达错误,我要取的事,账号开始运行以来权益最大值,我想在回撤到一定程度后 程序自动停止运行,如果一开始运行就亏损,那么从初始资金回落一定幅度就停止,如果一开始赚钱,要是资金也从高点回落一定幅度也停止运行,这样子可以hhv(asse,barpos)来表示吗? |
|
-- 作者:FireScript -- 发布时间:2018/11/16 9:42:57 -- 是 ASSET不是ASSE ,上面我打错了。 你是说当前程序化开始运行以来的最大权益值?而不是图表上有信号以来的最大值? |
|
-- 作者:一代天骄 -- 发布时间:2018/11/16 9:53:03 -- 是当程序化运行以来的最大权益。 |
|
-- 作者:FireScript -- 发布时间:2018/11/16 11:21:54 -- 操作需要全局变量的配合。以下思路仅供参考。 试了下,只能做一个策略加载到图表上以来(不是程序化运行以来)的最大 ASSET统计。每次运行之前还需要重置全局变量, 在工具-数据管理-全局变量 。每次重新运行之前,或者修改了策略或品种的时候都要把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编辑过]
|