以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  策略编写求助区  (http://222.73.7.161/bbs/list.asp?boardid=11)
----  求写模型  (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=9434)

--  作者:老学生
--  发布时间:2011/12/20 12:15:43
--  求写模型

以胶为列:3分钟周期。

当5日线大于20日线做多,固定盈利50点平仓,没有时间限制,平仓后继续开仓(必须是在下一根K线上并且现价要小于这3分钟的开盘价),新开仓如果没有盈利50点,下根继续加多(现价也是小于最后这根K线的开盘价),持仓均价盈利50点全部平仓,下根继续开新仓。

主要是盈利50点后没有时间限制,随时平仓,开仓要在条件满足的情况下才开仓。

                                                                                                              谢谢高手


--  作者:fly
--  发布时间:2011/12/20 13:52:48
--  

您的条件写的极不好,几乎就是一个亏钱的策略

象这句

平仓后继续开仓(必须是在下一根K线上并且现价要小于这3分钟的开盘价)----现价要小于这3分钟的开盘价,你这意思等于平仓后的第2根收阴就开多仓.

以下条件有雷同情况.如果一路的跌,你的条件将永远满足,永远的开多仓,最终爆仓.

 

好好想想完善完善再来发帖


--  作者:老学生
--  发布时间:2011/12/21 14:56:27
--  
亏钱策略不怕,麻烦老师给写一下,我会慢慢改进的,关键看这样能不能实现
--  作者:26327756l
--  发布时间:2011/12/21 16:40:38
--  


没有持仓均价 用的是买入后均价代替的

variable:k=0;
ma5:ma(c,5);
ma20:ma(c,20);
if ma5>ma20 and k=0 then
 begin
   k:=1;
   buy(holding=0,1,market);
 end
 if holding=0 and c<llv(o,3) then buy(1,1,market);
 if holding>0 and OPENPROFIT>50*mindiff then sell(1,0,market);
  if holding>0 and OPENPROFIT<50*mindiff then buy(1,1,market);

  if holding>0 and  AVGENTERPRICE>50*mindiff then sell(1,0,market);


--  作者:老学生
--  发布时间:2011/12/21 17:40:16
--  

非常感谢!我先试试

 


--  作者:老学生
--  发布时间:2011/12/21 17:44:32
--  
刚才看了一下,不能用,要求是平仓没有时间限制,而开仓有时间限制,麻烦老师在看看
--  作者:26327756l
--  发布时间:2011/12/22 13:46:37
--  

怎么个不能用, 是根本没有信号,还是不符合要求?

开仓有时间限制

是什么 在原帖要求里没有看到具体要求啊?

[此贴子已经被作者于2011-12-22 14:08:44编辑过]

--  作者:老学生
--  发布时间:2011/12/22 16:17:50
--  
固定盈利50点平仓,没有时间限制,平仓后继续开仓(必须是在下一根K线上并且现价要小于这3分钟的开盘价),
--  作者:fly
--  发布时间:2011/12/23 9:48:46
--  

//K线走完

 

variable:kpj=0;//记录开仓K线的开盘价
ma5:ma(close,5);
ma20:ma(close,20);

 

//开多仓
long:=cross(ma5,ma20);//5日均线上穿20日均线
if long and holding=0 or (long and holding=0 and exitbars>1 and c<o) then
begin
buy(1,1,market);
kpj:=open;
end

 

//加多仓
//按照程序说明,没有营利50最小变动价位,是一直加仓的,
//这里限制总持仓最多只能5手,自己可以根据需要酌情更改
if c<kpj and holding>0 and holding<=5 then  
begin
buy(1,1,market);
kpj:=open;
end

 

if h>AVGENTERPRICE+50*mindiff and holding>0 then sell(1,0,market);