以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2)
---- [讨论]如何直接显示最长回撤起止日期? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=173847)
|
-- 作者:alohamora
-- 发布时间:2020/1/5 15:48:03
-- [讨论]如何直接显示最长回撤起止日期?
我想在回测或者K线图形中直接显示最长回撤天数的起止日期,请问该如何写代码?
|
-- 作者:wenarm
-- 发布时间:2020/1/6 3:53:49
--
max_asset:HHVBARS(ASSET,BARPOS); min_asset:llVBARS(ASSET,max_asset); begin_DATE:=ref(DATE,MAX_ASSET); end_date:=ref(DATE,min_ASSET); 起始:VALUEWHEN(begin_DATE<end_date, begin_DATE); 结束:VALUEWHEN(begin_DATE<end_date,end_date)
|
-- 作者:alohamora
-- 发布时间:2020/1/6 8:32:22
--
这段代码正好实现了我可以直观查看最近策略回撤情况了。请问如何实现图中所示的A点到B点回撤结束新高出现这段时间的准确日期? 此主题相关图片如下:drawdown.png
|
-- 作者:alohamora
-- 发布时间:2020/1/6 8:33:39
--
这段回撤是K线图中时间段内回撤时间最长的一段,想知道如何显示这一段的起止日期。
|
-- 作者:banzhuan
-- 发布时间:2020/1/6 9:24:53
--
您是要所有回测时段中回测天数最长一段,并求出该时段的起始和结束日期是吧
|
-- 作者:wenarm
-- 发布时间:2020/1/6 9:25:22
--
加上这句话
次起始:ref(DATE,MAX_ASSET+1);
|
-- 作者:alohamora
-- 发布时间:2020/1/6 9:46:21
--
以下是引用banzhuan在2020/1/6 9:24:53的发言:
您是要所有回测时段中回测天数最长一段,并求出该时段的起始和结束日期是吧
是的。只要求出K线加载数据周期内这段时间回撤天数最长一段的起始和结束日期就行。当然,这一段回撤可能因为加载的K线数据周期而发生变化,因为不同数据周期回撤的天数肯定是不一样的。能显示出来,可以更方便直观分析。
|
-- 作者:FireScript
-- 发布时间:2020/1/6 14:29:45
--
在原先交易代码下加一段:
cd:ASSET=hhv(ASSET,0) and (TOTALTRADE<>0 or holding<>0); DRAWICON(cd,l-20*MINDIFF,1);//高点位置做个标识 len1:BARSLAST(cd);//上次最新高点距离现在的跨度 len0:HHVBARS(len1,0);//最大跨度距离现在的位置
len0表示B距离现在的位置。
|
-- 作者:alohamora
-- 发布时间:2020/1/6 14:46:31
--
以下是引用FireScript在2020/1/6 14:29:45的发言:
在原先交易代码下加一段:
cd:ASSET=hhv(ASSET,0) and (TOTALTRADE<>0 or holding<>0); DRAWICON(cd,l-20*MINDIFF,1);//高点位置做个标识 len1:BARSLAST(cd);//上次最新高点距离现在的跨度 len0:HHVBARS(len1,0);//最大跨度距离现在的位置
len0表示B距离现在的位置。
抱歉,这个还是不对。高点显示的位置是对的,但是LEN0输出总是0.。我很想知道策略回测中的最长回撤天数是怎么计算的,那个应该是最佳算法。只是不知道如何写这段代码在图表中体现出来最长回撤天数。
|
-- 作者:FireScript
-- 发布时间:2020/1/6 15:45:10
--
0很正常。因为我取的是B点距离当前的位置,返回值是0表示当前位置一直是最新的B点。一直在之前最高点后的回撤过程中。你上面例图中B点之后产生了新高点,但是实际情况是可能一直在回撤中。
[此贴子已经被作者于2020/1/6 15:46:23编辑过]
|