以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=166363) |
-- 作者:f三年 -- 发布时间:2018/11/7 9:42:39 -- 帮忙检测这个程序 写出来后台程序回测 没有数据
老师帮我看下这个 我编写出来之后 后台程序 回撤 没有数据 是不是那边错了 TR=Max(H-L,H-PDC,PDC-L) 其中: TR=真实波幅 H=当日最高价 L=当日最低价 PDC=前一日收盘价 N(即ATR)的计算公式如下(其实就): 前面20天的TR值平均 绝对波动幅度=N*合约每一点所代表的价值 头寸规模单位n=账户的1%/绝对波动幅度 开仓时机:当价格突破20天新高的时候开n手做多,当价格回调3ATR平仓。 当价格突破20日新低的时候做空,当价格回调3ATR平仓 止损为1N VARIABLE:cc=0; PDC:=REF(C,1); TR1:=MAX(H-L,MAX(H-PDC,PDC-L)); ATR:=MA(TR1,20); 绝对波幅:=ATR*DYNAINFO(209); N:=TASSET*0.01/绝对波幅; h20:=ref(hhv(h,20),1); l20:=ref(llv(l,20),1); l10:=ref(llv(l,10),1); kd:=c>h20; pd:=c<(tENTERPRICE-3*绝对波幅); kk:=c<l20; pk:=c>(tENTERPRICE+3*绝对波幅); if cc>0 and pd then cc:=0; if cc<0 and pk then cc:=0; if cc=0 and kd then cc:=1; if cc=0 and kk then cc:=-1; if holding>0 and cc<=0 then begin sell(pd,n,MARKETR); end if holding<0 and cc>=0 then begin sellshort(pk,n,MARKETR); end if holding=0 and cc>0 then begin buy(kd,n,MARKETR); end if holding=0 and cc<0 then begin buyshort(kk,n,MARKETR); end if tholding>0 and c<DYNAINFO(211)-绝对波幅 then BEGIN sell(pd,n,MARKETR); end if tholding<0 and c>DYNAINFO(211)+绝对波幅 then begin sellshort(pk,n,MARKETR); end{止损块在有持仓时运行} |
-- 作者:FireScript -- 发布时间:2018/11/7 9:46:11 -- 你到底是要后台还是图表程序化呢?之前给你的代码是按照后台改的,但是你现在这个代码后台和图表函数都有,这是不对的。你先说清楚你到底是要图程序化还是后台程序化。 |
-- 作者:f三年 -- 发布时间:2018/11/7 9:48:42 -- 我要做后台的 后台程序 |
-- 作者:FireScript -- 发布时间:2018/11/7 9:57:15 -- 代码里面用了很多仅图表上的函数,sellshort sell buy buyshort holding都是图表程序化的函数的,之前帖子里面给你的代码里面已经处理过这个了,你copy替换下这些图表代码就行了。另外,新手的话,建议从图表程序化起步吧。图表至少比后台简单直观。 你公式写完,点一下编译,一些基本的错误都会提示你的,这样至少避免基础错误的。
|