以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  均线金叉的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=184806)

--  作者:fhxfhxfhx
--  发布时间:2021/3/19 15:55:47
--  均线金叉的问题
老师好,关于均线金叉的问题,弄了几天不理想,请老师帮忙, 谢谢。
假如环境是:MA5金叉MA10。上一个金叉当根K线标记CROSS1, 当前金叉当根K线标记CROSS2, 未来下一个当根K线金叉标记CROSS3, 以此类推。CROSS1当根K线到CROSS2的前一根K线标记PERIOD1, CROSS2当根K线到CROSS3的前一根K线标记PERIOD2。以此类推
想写出两种情况的阶梯形线段:
1,如果当前金叉CROSS2成立,划线数值是CROSS1当根K线的开盘价。直到CROSS3成立的当根K线,划线数值变为CROSS2当根K线的开盘价。
2,如果当前金叉CROSS2成立,划线数值是PERIOD1的最高价。直到CROSS3成立的当根K线,划线数值变为PERIOD2的最高价。
麻烦老师帮忙看看,谢谢


--  作者:FireScript
--  发布时间:2021/3/19 16:19:33
--  
1.
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD1 :=2*(DIFF-DEA), COLORSTICK;
macdjc:=cross(diff,dea),NODRAW;//macd金叉
macdsc:=cross(dea,diff),NODRAW;


p1:VALUEWHEN(macdjc,o);//最近一次金叉K的开盘价

只能用上面这种指标线输出方式,画线函数无法实现。

2.
“如果当前金叉CROSS2成立,划线数值是PERIOD1的最高价。直到CROSS3成立的当根K线,划线数值变为PERIOD2的最高价。”这个没搞明白啥意思。是获取金叉前一个K的最高价?如果是这样:
p1:VALUEWHEN(macdjc,ref(h,1));//最近一次金叉K的开盘价

[此贴子已经被作者于2021/3/19 16:25:53编辑过]

--  作者:fhxfhxfhx
--  发布时间:2021/3/19 16:32:17
--  
不好意思,可能没表达清楚。
我的意思是:如果CROSS2成立,输出数值,类似templine=“数值”,这个数值取:上一个金叉CROSS1的那根K线开始寻找,直到CROSS2成立的这根K线的前一根,在这些K线中寻找最高价作为“数值”输出。就是说寻找两个金叉范围内的最高价,作为现在金叉的输出值,这个范围是:上个金叉包括金叉那根K线---到当前金叉的前一根K线。
不知道这么说,能描述清楚吗。谢谢老师



--  作者:FireScript
--  发布时间:2021/3/19 16:56:58
--  
这样试下:
ma5:ma(close,5);
ma10:ma(close,10);
u:CROSS(ma5,ma10),NODRAW;
LEN:=SUMBARS(u,1);
DRAWICON(u,h,1);
A:=REF(hhv(h,LEN-1),LEN),NODRAW;//不包含2次金叉位置的价格,仅仅是中间部分的。
P:VALUEWHEN(u,a);

你看下效果看下。

--  作者:fhxfhxfhx
--  发布时间:2021/3/19 16:59:56
--  
谢谢老师指点,多谢
--  作者:fhxfhxfhx
--  发布时间:2021/3/19 17:01:16
--  
我研究下,谢谢老师指点