以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]请大师帮我写一个简单的ATR通道代码  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172952)

--  作者:15898620130
--  发布时间:2019/11/7 20:40:31
--  [求助]请大师帮我写一个简单的ATR通道代码
万分感谢,就是由收盘价和收盘价加N倍的ATR组成的上轨和收盘价减去N倍的ATR组成的下轨,当突破上轨时开仓,回落到均线时平仓,突破下轨时开仓,回落到均线处平仓,万分感谢!!!
--  作者:FireScript
--  发布时间:2019/11/8 9:18:01
--  
INPUT:M(14,1,100,1),A(5,1,100,1);
TR1 := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR1,M);

N:=0.01;//变量N
MAN:MA(C,A);//均线
UP:C+N*ATR;//上轨
DOWN:C-N*ATR;//下轨

JC:CROSS(C,UP);//上穿上轨
SC:CROSS(DOWN,C);//下破下轨

MA_JC:=CROSS(C,MAN);//上破均线
MA_SC:=CROSS(MAN,C);//下破均线

SELLSHORT(HOLDING<0 AND MA_JC,1,MARKET);
BUY(HOLDING=0 AND JC,1,MARKET);
SELL(HOLDING>0 AND MA_SC,1,MARKET);
BUYSHORT(HOLDING=0 AND SC,1,MARKET);


代码如上。但是我看了下,这个没法有信号。c没法上穿上轨或者下破下轨。因为上下轨是恒比c大或小。
[此贴子已经被作者于2019/11/8 9:19:09编辑过]

--  作者:15898620130
--  发布时间:2019/11/8 9:28:31
--  
感谢如您,怪我表述不好,老师,嘿嘿,其实就像HCL那样的三条线通道,上轨是比如20日均线加了N倍的ATR下轨也是在20日均线基础上减了N倍的ATR,当收盘价突破上轨或下轨时开仓,回落到均线时平仓,嘿嘿,像您学习,争取早日我也能独立的写出代码,

--  作者:FireScript
--  发布时间:2019/11/8 9:48:46
--  
 UP:C+N*ATR;//上轨
DOWN:C-N*ATR;//下轨

你意思是这个上下轨应该是用 ma+N*atr 这种方式算的。你均线是多少周期的均线?

--  作者:FireScript
--  发布时间:2019/11/8 9:51:14
--  
这样就可以了:


INPUT:M(14,1,100,1),A(5,1,100,1),N(1,1,100,1);
TR1 := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR1,M);

MAN:MA(C,A);//A日均线 默认是5日均线,可以调整参数a来调整这个
UP:MAN+N*ATR;//上轨
DOWN:MAN-N*ATR;//下轨

JC:CROSS(C,UP);//上穿上轨
SC:CROSS(DOWN,C);//下破下轨

MA_JC:=CROSS(C,MAN);//上破均线
MA_SC:=CROSS(MAN,C);//下破均线

SELLSHORT(HOLDING<0 AND MA_JC,1,MARKET);//平空
BUY(HOLDING=0 AND JC,1,MARKET);//开多
SELL(HOLDING>0 AND MA_SC,1,MARKET);//平多
BUYSHORT(HOLDING=0 AND SC,1,MARKET);//开空

--  作者:15898620130
--  发布时间:2019/11/8 11:09:42
--  
多谢大师~~~~~哈啊哈,终于能回测到实打实的数据啦,嘿嘿