以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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替换下这些图表代码就行了。另外,新手的话,建议从图表程序化起步吧。图表至少比后台简单直观。


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

你公式写完,点一下编译,一些基本的错误都会提示你的,这样至少避免基础错误的。