以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  策略编写求助区  (http://weistock.com/bbs/list.asp?boardid=11)
----  [求助]请问老师关于加仓的这个策略是否可以编写?  (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=8442)

--  作者:alexzyang
--  发布时间:2011/10/17 0:47:41
--  [求助]请问老师关于加仓的这个策略是否可以编写?
 请问老师, 此想法是否可以实现? 普通的均线交叉系统 结合 海龟的ATR加仓法

1.  最普通的均线交叉系统,

周期 5分钟K线 

10均线死叉60均线且收盘价收在60均线下 开空单 平多单
10均线金叉60均线且收盘价收在60均线上 开多单 平空单

2 接下来需要引用长周期的参数, 例如日K线中的 某日K线收盘价跌破60均线, 程序启用ATR加仓

即根据事先设定的参数N  - 日线中的ATR系数进行加仓  

J 为每次加仓手数, 比如 2手

M 为最大手数   比如10手

设最新价格为A 当最新价格满足 多单开单价+0.5N 时 加 0.5*J 手
                或  空单开单价-0.5N 时  加0.5*J 手, 直到最大持仓到达M

平仓条件    当价格回调至 A-2*F 的时候止损, 将所有持仓全平  或者5分钟K线图里 10均线死叉或 金叉60均线 所有持仓全平

主要是 程序在读取平均持仓价格时要能够取整,0.5*N等结果也需要取整,否则有可能无法和均价匹配, 不知道金字塔是否有对应得参数?
另外 如果此程序能否编写, 我想请教下老师, 如果在程序运行中,我手动加仓或平仓,是否会造成程序无法正常运行?

谢谢



 

--  作者:26327756l
--  发布时间:2011/10/17 8:34:46
--  

问题正在解决中


--  作者:jinzhe
--  发布时间:2011/10/17 10:44:40
--  

ATR是啥?


--  作者:alexzyang
--  发布时间:2011/10/17 11:33:08
--  
 ATR 是ATR指标里的数值

--  作者:26327756l
--  发布时间:2011/10/17 13:11:41
--  
即根据事先设定的参数N  - 日线中的ATR系数进行加仓  

这个N就是引用ATR指标里的ATR数据吗?
--  作者:alexzyang
--  发布时间:2011/10/17 13:14:17
--  
 
即根据事先设定的参数N  - 日线中的ATR系数进行加仓  

这个N就是引用ATR指标里的ATR数据吗?

对的

--  作者:26327756l
--  发布时间:2011/10/17 13:23:47
--  

设最新价格为A 当最新价格满足 多单开单价+0.5N 时 加 0.5*J 手
                或  空单开单价-0.5N 时  加0.5*J 手, 直到最大持仓到达M

这两个条件 是最新价A>=多单开单价+0.5N 时 加 0.5*J 手
最新价A<=空单开单价-0.5N 时  加0.5*J 手

是这样吗?


--  作者:26327756l
--  发布时间:2011/10/17 13:34:20
--  

平仓条件    当价格回调至 A-2*F 的时候止损

F是什么?


--  作者:26327756l
--  发布时间:2011/10/17 14:00:49
--  

平仓条件    当价格回调至 A-2*F 的时候止损, 将所有持仓全平  或者5分钟K线图里 10均线死叉或 金叉60均线 所有持仓全平

后两个全平条件 和开仓的条件相同啊?请检查一下。除了这两个全平的没有写,其他的都写了。

你看看,参考一下。

说明:

1   F 定义成变量,

2 "2接下来需要引用长周期的参数, 例如日K线中的 某日K线收盘价跌破60均线, 程序启用ATR加仓"

这个某日收盘价 被设置成 可输入的一个参数D 默认值是1111010 是11年10月10日, 变量mz 就是 设置的某日K线收盘价。

 

input:D(1111010,1,1201010,1),J(2,1,10,1),M(10,1,20,1),f(1,1,111,1);
N:"atr.atr#DAT";
A:=c;
m10:=MA(c,10);
m60:=MA(c,60);


   //1.  最普通的均线交叉系统
if m10<m60 and c<m60 then
begin
  sell(holding>0,0,market);
  buyshort(holding=0,1,market);
end

if m10>m60 and c>m60 then
begin
  sellshort(holding<0,0,market);
  buy(holding=0,1,market);
end


    //2 接下来需要引用长周期的参数
   mz:REFDATE(CLOSE,d);
if mz<m60 then
begin
  if holding<m and holding>0 and A>ENTERPRICE+INTPART(0.5*N) then 
  buy(holding>0,0.5*J,market);
  
  if holding<0 and holding>-M and A<ENTERPRICE-INTPART(0.5*N)  then
  buyshort(holding<0,0.5*J,market);
  
       //平仓条件    当价格回调至 A-2*F 的时候止损
  if c<A-2*f then
  begin
  sell(holding>0,0,market);
  sellshort(holding<0,0,market);
  end

 
end

 

 


--  作者:alexzyang
--  发布时间:2011/10/17 16:17:42
--  
 老师的回复好神速啊, 图片点击可在新窗口打开查看

平仓条件    当价格回调至 A-2*F 的时候止损

F是什么?


》》》》》对不起, 是我笔误,应该是N, 也就是ATR指标里的ATR的值, A-2*N


平仓条件    当价格回调至 A-2*F 的时候止损, 将所有持仓全平  或者5分钟K线图里 10均线死叉或 金叉60均线 所有持仓全平

后两个全平条件 和开仓的条件相同啊?请检查一下。除了这两个全平的没有写,其他的都写了。

》》》》》》这里我偷懒没写清楚, 就是说

》》》》》如果在持仓里有空单的情况下, 当价格反弹至 A+2*N 的时候止损, 或者5分钟K线图里 10均线金叉, 这2个条件哪个先满足,就将所有空单全部平仓
》》》》》如果在持仓里有多单的情况下, 当价格回调至 A-2*N的时候止损, 或者5分钟K线图里 10均线死叉, 这2个条件哪个先满足,就将所有空单全部平仓

》》》》这里的问题是N 是日线ATR指标里ATR的数值, 是否能够引用出来?

还有就是, if holding<0 and holding>-M and A<ENTERPRICE-INTPART(0.5*N)  then
  buyshort(holding<0,0.5*J,market);

>>>>>>这个 holding<0 and holding>-M是否表示手上持有的是空单?

谢谢




[此贴子已经被作者于2011-10-17 16:22:59编辑过]