以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请教老师,如下思路如何实现 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=182352) |
-- 作者:437382180311 -- 发布时间:2020/9/25 11:44:14 -- 请教老师,如下思路如何实现 CD1: a b,b200周期内第一次小于a,之后b小于a忽略不计。 CD2: 满足CD1后, c d d第三次上穿c. 见图片:
|
-- 作者:437382180311 -- 发布时间:2020/9/25 11:45:08 -- |
-- 作者:FireScript -- 发布时间:2020/9/25 13:18:55 -- 1.cd1不就相当于200周期内 只要存在至少一次b小于a? 2.cd2。 这个判断必须限定在一定周期内。否则无意义。因为你只要K线数据量到一定程度,那么d上传c 会发生很多次。
[此贴子已经被作者于2020/9/25 13:19:08编辑过]
|
-- 作者:437382180311 -- 发布时间:2020/9/25 13:27:46 -- CD1:=any(b<a,200); CD2:=if( CD1,count( cross(d,c),barslast(a>b) )>=3 ); 请老师修正,谢谢。
|
-- 作者:437382180311 -- 发布时间:2020/9/25 13:31:19 -- CD1:=any(b<a,200); CD2:=if( CD1,count( cross(d,c),barslast(a>b) )>=3 ,drawnull ); 请老师修正,谢谢。
|
-- 作者:FireScript -- 发布时间:2020/9/25 13:52:39 -- CD2:=if( CD1,count( cross(d,c),barslast(a>b) )>=3 ,0); 这个部分得话,应该还是有点问题。不如用这个BARSSINCE2() 或者同样写死成200周期。否则b下穿a如果发生多次的情况下。这个返回值取的就是最近的一次了。
|
-- 作者:437382180311 -- 发布时间:2020/9/25 14:40:24 -- 还是不行。请老师再指点一下。怎样才能写死成200周期 |
-- 作者:FireScript -- 发布时间:2020/9/25 14:41:14 -- CD2:=if( CD1,count( cross(d,c),200 )>=3 ,drawnull ); 我的意思是这里直接写成200
|
-- 作者:437382180311 -- 发布时间:2020/9/25 14:48:39 -- CD2:=if( CD1,count( cross(d,c),200 )>=3 ,drawnull ); 我的意思是这里直接写成200 如果直接写成200,会把 不满足CD1的 cross (d,c)的次数也给计算进去。
[此贴子已经被作者于2020/9/25 14:49:57编辑过]
|
-- 作者:FireScript -- 发布时间:2020/9/25 15:02:03 -- LEN:BARSSINCE2(a>b,200)+1;//返回值是从0开始的,所以+1 CD2:=if( CD1,count( cross(d,c),LEN)>=3 ,0); 这样就是从200周期内第一次a>b位置开始统计了。就不存在说不满足a>b之前也统计进去的情况。
|