以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
着肉眼看得明明白白的