以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]交易条件提前筛选  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=98086)

--  作者:holysss
--  发布时间:2016/6/1 10:42:43
--  [求助]交易条件提前筛选
已有现成的逐K交易策略A,现想加入筛选条件。如下:
每15根K线计算一次ZF=high-low;
对本日之前22个交易日(大约就是一个月)内的所有ZF求平均值ZFA;
计算22个交易日内的收盘均价 MP;
如果(ZFA/MP)>0.003 则开始执行策略A,直到(ZFA/MP)<0.002策略A自动结束.

--  作者:jinzhe
--  发布时间:2016/6/1 10:48:29
--  
每15根K线计算一次ZF=high-low;
这里的h和l分别指代什么?

--  作者:holysss
--  发布时间:2016/6/1 13:20:43
--  回复:(jinzhe)每15根K线计算一次ZF=high-low;这里...
H代表15根K线的最高价,L代表最低价。
--  作者:jinzhe
--  发布时间:2016/6/1 13:30:39
--  

要写两个公式,公式1为:

nn:=barslast(month<>ref(month,1))+1;
mm:sum(c,nn)/nn;

公式2为:

variable:bj=0;
zf:=valuewhen(mod(barpos,15)=0,hhv(h,15)-llv(l,15));
nn:=barslast(month<>ref(month,1))+1;
zfa:=sum(zf,nn)/nn;
mp:=stkindi(\'\',\'公式1.mm\',0,6);
if (ZFA/MP)>0.003 then bj:=1;
if (ZFA/MP)<0.002 then bj:=0;
if bj=1 then begin

策略a
end


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:holysss
--  发布时间:2016/6/1 16:35:10
--  回复:(jinzhe)要写两个公式,公式1为:nn:=barsl...
好像有点问题,除了IF13和沪铜指数算出的MP值正常外,
其他品种算出来的MP值都是显示的   -1.#R  
导致最终不能发生交易,不知道为什么。测试了矿石指数,黄金指数,白银指数,螺纹指数,IH500指数等都是如此。

--  作者:jinzhe
--  发布时间:2016/6/1 16:36:49
--  
补充一下数据,至少要1个月的,当前周期和日线周期都要补充
[此贴子已经被作者于2016-6-1 16:37:18编辑过]

--  作者:holysss
--  发布时间:2016/6/1 18:48:26
--  回复:(jinzhe)补充一下数据,至少要1个月的,当前周...
谢谢,之前的问题解决了,还有点小麻烦
怎样在BJ=0的情况下(即策略A停止)自动平掉多头持仓?
if bj=0 then sell(1,0,marketr);
这么写好像不对,一旦BJ从1变到0,之前的止损止盈好像不管用了。

--  作者:jinzhe
--  发布时间:2016/6/2 9:06:55
--  

nn:=barslast(month<>ref(month,1))+1;
mm:sum(c,nn)/nn;

公式2为:

variable:bj=0;
zf:=valuewhen(mod(barpos,15)=0,hhv(h,15)-llv(l,15));
nn:=barslast(month<>ref(month,1))+1;
zfa:=sum(zf,nn)/nn;
mp:=stkindi(\'\',\'公式1.mm\',0,6);
if (ZFA/MP)>0.003 then bj:=1;
if (ZFA/MP)<0.002 then bj:=0;
if bj=1 then begin

策略a
end

if bj=0 then sell(1,0,marketr);