以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=175792)

--  作者:abcing
--  发布时间:2020/4/28 16:51:29
--  [求助]请大师帮忙写个过滤
例如:
两条MA,金叉做多,死叉做空
如果近期连续亏损2次,
那么计算出在这2次亏损期间的最高价和最低价所形成的价格区间
在这个价格区间内不再交易

谢谢

--  作者:FireScript
--  发布时间:2020/4/28 17:10:17
--  
 第一次亏损的开仓位置到第二次亏损的平仓位置 这段区间? 另外是否有加仓以及减仓,如果有加仓和减仓,这个区间的位置的定义又如何处理?

--  作者:abcing
--  发布时间:2020/4/28 17:20:56
--  
对,第一次亏损开仓到第二次亏损平仓期间

不考虑加减仓。

谢谢


--  作者:FireScript
--  发布时间:2020/4/29 9:51:25
--  
 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;

kd:macdjc and  holding=0;
pd:macdsc and holding>0;

Alen:EXITBARS+1;//上次平仓距离现在的距离
Blen:ref(ENTERBARS+1,ENTERBARS+1)+ENTERBARS+2;//上上次开仓距离现在的距离
AB_H:ref(HHV(H,Blen),Alen);
AB_L:ref(LLV(L,Blen),Alen);
//上面这5句代码必须在开仓语句前面
cd:if(NUMPROFIT(1)<0 and NUMPROFIT(2)<0 and TOTALTRADE>=2,c>AB_H or c<AB_L,1);//c>AB_H  or c<AB_L 表示当前价格不在这个高低区间内
buy(kd and (cd or TYPE(1)=0),1,market);
sell(pd,holding,market);


参考这个范例即可。macdjs,macdsc 换成你自己的ma金叉死叉即可。

--  作者:abcing
--  发布时间:2020/4/29 12:16:13
--  
谢谢大师