以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=182502) |
|
-- 作者:300qh -- 发布时间:2020/10/14 8:33:57 -- 求老师帮忙编写均线偏移,思路如下 比如以60日均线为基础,当最高价价格突破60日线的时候,设下线(60日线-(60日线-K线最低价))向下偏移。直到当最低价价格再次跌破下线,设上线(60日线+(K线最高价-60日线))向上偏移。请问要如何编写? |
|
-- 作者:FireScript -- 发布时间:2020/10/14 8:53:21 -- “设下线(60日线-(60日线-K线最低价))向下偏移” 什么叫向下偏移,向上偏移,你这个描述还不够明确。请完善下你这里的描述。 |
|
-- 作者:300qh -- 发布时间:2020/10/14 10:44:22 -- 当价格向上突破60日均线的时候,产生(均线-最低价)的间距,那么我要的线就是60日均线-这个间距另外画一条线作为下线,反之,当价格向下跌破60均线的时候,产生(最高价-均线)的间距,再在这个间距上面画一条上线,上线和下线都是60均线的平行线 |
|
-- 作者:FireScript -- 发布时间:2020/10/14 11:03:59 -- VARIABLE:hdif:=0,ldif:=0; ma60:ma(c,60); majc:CROSS(c,ma60); masc:CROSS(ma60,c); //金叉或者死叉时候更新间距值 if majc then ldif:=ma60-l;if masc then hdif:=h-ma60; x:if(c>ma60,ma60-ldif,ma60+hdif);//在ma60基础上输出;根据c>ma60判断确定绘制哪条线 这样试下。
|
|
-- 作者:300qh -- 发布时间:2020/10/14 12:59:52 -- 图表刚开始的第一个信号是你写的这样就对了,我是想再进一步,第一个信号以后的信号是以上线和下线进行反转,能实现吗?也就是说,如果第一个信号是向上突破的,那第二个信号是以最低价跌破下线再反转画上线,然后再以突破上线为反转下下线,也就是说第二个信号开始就不用60日均线了,而是以上线和下线进行翻转。麻烦老师再帮我想想如何实现 |
|
-- 作者:FireScript -- 发布时间:2020/10/14 13:31:01 -- 需要确认: 以最高或最低价 突破上线或者跌破下线 作为重新画线的时机? 另外上下线 均是和“间距”关联的。这个间距的计算是依然按照ma,c的金叉死叉来更新?
|
|
-- 作者:300qh -- 发布时间:2020/10/14 14:57:33 --
|
|
-- 作者:FireScript -- 发布时间:2020/10/14 15:35:44 -- 还有一点,上下线数值的计算。 在前面是 ma60-间距 或者ma60+间距。 那现在是还是照旧,还是说: 绘制下线时候,在上线基础:上线-间距?
|
|
-- 作者:300qh -- 发布时间:2020/10/14 20:53:45 --
|
|
-- 作者:FireScript -- 发布时间:2020/10/15 9:46:41 -- VARIABLE:dif:=0,mark:=-1,up:=0,down:=0;//mark是记录上下线状态的 ma60:ma(c,60),COLORYELLOW; majc:=CROSS(c,ma60); masc:=CROSS(ma60,c); //首次金叉或者死叉 if majc and mark=-1 then begin dif:=ma60-l; mark:=0; down:=ma60-dif;//下线 end if masc and mark=-1 then begin dif:=h-ma60; mark:=0; up:=ma60+dif;//上线 end if mark>=0 and cross(down,c) and down<>0 then //价格跌破下线,更新间距 ;绘制上线 begin DRAWICON(1,h,1); mark:=1; dif:=h-down;//间距 end if mark>=0 and cross(c,up) and up<>0 then //价格上穿上线,更新间距 ;绘制下线 begin DRAWICON(1,l,2); mark:=2; dif:=up-l;//间距 end up:=ma60+dif; down:=ma60-dif; upline:if(mark=1,up,drawnull),colorred;//上线 downline:if(mark=2,down,drawnull),colorgreen;//下线 |