以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 模型先后顺序怎么区分? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=165235) |
-- 作者:huo88 -- 发布时间:2018/8/29 10:26:14 -- 模型先后顺序怎么区分? 开多单后,第一次C<MA30,此为条件1,当后面出现第一次MACD死叉,为条件2. 达到这两个条件,平仓。求这个模型 注意:顺序必须按照1到2;也不是C<MA30&&MACDsc
|
-- 作者:FireScript -- 发布时间:2018/8/29 11:23:22 -- 我仔细想了下。你这个需求有逻辑漏洞的。 数据足够的时候 在macd死叉的位置 往前找肯定能找到一个c<ma30,也就是说等于是macsc就平仓就行了。你这个限制其实不够的。 macdjc 以及你说的第一次c<ma30 (其实就是cross(ma(c,30),c)) 都是交替反复出现的。 举个例子吧: majc macdjc macdsc macdjc macdsc masc macdjc macdsc 上面 假设是几个金叉死叉出现位置。三个macdsc位置可以说都满足 第一次c<ma30 之后macdsc. |
-- 作者:huo88 -- 发布时间:2018/8/29 14:00:25 -- 不是的,有些是没有破均线,但是死叉了。如果是按照你说的MACD死叉就平了,那是不准确的,我现在是30均线,那么万一是100均线呢?清帮我再想下,我主要是对函数不会 |
-- 作者:FireScript -- 发布时间:2018/8/29 14:35:56 -- p:=26; s:=12; m:=9; DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P); DEA :=EMA(DIFF,M); MACD :=2*(DIFF-DEA); MACDSC:CROSS(DEA,DIFF);//死叉 MA30:MA(C,30); cd:count(c<MA30,ENTERBARS+2)>=1 and not(C<MA30) and count(MACDSC,ENTERBARS+2)=1 and MACDSC and holding>0; if cd then begin 测试:sell(holding>0,holding,market); end 如果用的是market指令,使用上述代码,如果是marketr这种,因为ENTERBARS返回值原因,改成ENTERBARS+1即可。
|
-- 作者:huo88 -- 发布时间:2018/8/29 15:38:36 -- 都不对,还是自己弄了 |
-- 作者:huo88 -- 发布时间:2018/8/29 15:39:02 -- 着肉眼看得明明白白的 |