以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=184650) |
-- 作者:liyuan0050 -- 发布时间:2021/3/11 21:42:09 -- 请老师帮我写一个均线指标 老师你好,我的诉求是:EXPMA(指数平滑移动平均线)两条(5日和20日线),5日线上穿20日线,K线(阴K线阳K线)变红色,5日线下穿20线,K线(阴K线阳K线)变绿色。 变红色,K线下方提示“看多”的文字;变绿色,K线上方提示“看空”的文字。 提示“看多”“看空”的同时带上声音提示。 请老师帮我定一下码,谢谢!
|
-- 作者:FireScript -- 发布时间:2021/3/12 10:27:33 -- //从expma里抽取的代码 N:=4; wx:=DRAWNULL; M1:EMA(CLOSE,5); M3:EMA(CLOSE,20)*if(n<3,wx,1); cd1:cross(m1,m3); cd2:cross(m3,m1); DRAWTEXT(cd1,h,\'看多\'); DRAWTEXT(cd2,l,\'看空\'); SPEAK(cd1,h,\'看多\'); SPEAK(cd2,l,\'看空\'); K线变色那个没有直接函数,要额外画,稍候处理下。先把主干逻辑贴上来。
|
-- 作者:liyuan0050 -- 发布时间:2021/3/12 16:02:26 -- 老师你好,K线的颜色处理好了吗? |
-- 作者:FireScript -- 发布时间:2021/3/12 16:24:53 -- N:=4; wx:=DRAWNULL; M1:EMA(CLOSE,5); M3:EMA(CLOSE,20)*if(n<3,wx,1); cd1:cross(m1,m3); cd2:cross(m3,m1); cd:c>=o;//区分阴阳线的,与上面三个条件无关 STICKLINE(cd1 or cd2 ,C,o,8,if(cd,1,0),if(cd1,COLORYELLOW,COLORGREEN));//绘制柱体 //绘制上下影线 STICKLINE(cd1 or cd2,if(not(cd),O,c),h,0,if(cd,1,0),if(cd1,COLORYELLOW,COLORGREEN)); STICKLINE(cd1 or cd2,if(cd,O,c),L,0,if(cd,1,0),if(cd1,COLORYELLOW,COLORGREEN)); DRAWTEXT(cd1,h,\'看多\'); DRAWTEXT(cd2,l,\'看空\'); |
-- 作者:liyuan0050 -- 发布时间:2021/3/12 17:00:19 -- 老师,这个“看多”后的K线全部弄成红色的,“看空”后的K线全部弄成绿色的。这样,码该怎么写? |
-- 作者:FireScript -- 发布时间:2021/3/12 17:02:38 -- N:=4; wx:=DRAWNULL; M1:EMA(CLOSE,5); M3:EMA(CLOSE,20)*if(n<3,wx,1); cd1:cross(m1,m3); cd2:cross(m3,m1); cd:c>=o;//区分阴阳线的,与上面三个条件无关 STICKLINE(cd1 or cd2 ,C,o,8,if(cd,1,0),if(cd1,COLORRED,COLORGREEN));//绘制柱体 //绘制上下影线 STICKLINE(cd1 or cd2,if(not(cd),O,c),h,0,if(cd,1,0),if(cd1,COLORRED,COLORGREEN)); STICKLINE(cd1 or cd2,if(cd,O,c),L,0,if(cd,1,0),if(cd1,COLORRED,COLORGREEN)); DRAWTEXT(cd1,h,\'看多\'); DRAWTEXT(cd2,l,\'看空\'); SPEAK(cd1,\'看多\'); SPEAK(cd2,\'看空\'); 前面没留意,speak函数参数搞错了。你替换成上面的。 颜色改成红和绿了。
|
-- 作者:liyuan0050 -- 发布时间:2021/3/12 22:24:16 -- 谢谢老师,现在是在“看多”和”看空“的当根K线是红色和绿色,能不能在“看多”的当根K线和之后的K线都是红色,直到是“看空”的当根K线变为绿色之后的K线也都是绿色,如此反复. |
-- 作者:FireScript -- 发布时间:2021/3/15 9:51:05 -- cd1:cross(m1,m3); cd2:cross(m3,m1); 改成 cd1:m1>m3;
cd2:m3>m1; |
-- 作者:liyuan0050 -- 发布时间:2021/3/15 12:07:53 -- 老师这样修改后K线是全部变红或变绿了,但是每根K线都在提示”看多“或”看空“,我是想设成只在第一根K线变色时有提示”看多“或”看空“的文字,该怎么写码? |
-- 作者:FireScript -- 发布时间:2021/3/15 13:14:01 -- N:=4; wx:=DRAWNULL; M1:EMA(CLOSE,5); M3:EMA(CLOSE,20)*if(n<3,wx,1); cd1:m1>m3; cd2:m3>m1; cd:c>=o;//区分阴阳线的,与上面三个条件无关 STICKLINE(cd1 or cd2 ,C,o,8,if(cd,1,0),if(cd1,COLORRED,COLORGREEN));//绘制柱体 //绘制上下影线 STICKLINE(cd1 or cd2,if(not(cd),O,c),h,0,if(cd,1,0),if(cd1,COLORRED,COLORGREEN)); STICKLINE(cd1 or cd2,if(cd,O,c),L,0,if(cd,1,0),if(cd1,COLORRED,COLORGREEN)); DRAWTEXT(cross(m1,m3),h,\'看多\'); DRAWTEXT(cross(m3,m1),l,\'看空\'); SPEAK(cross(m1,m3),\'看多\'); SPEAK(cross(m3,m1),\'看空\'); |