以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  跨周期策略问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=11923)

--  作者:supercan
--  发布时间:2012/5/24 21:05:37
--  跨周期策略问题

我想实现如下功能:

     参考日线的20日均线,在5分钟周期下进行交易。细则如下:

 

1、用日线的20周期均线作为主方向,用5分钟20周期判断入场和出场,收盘上穿,多头入场,下穿,则空头入场;

2、当日线20周期和5分钟的20周期方向一致时,一次性建仓3手;方向不一致时,只建仓一手;

3、无论轻重仓位,均一次性全部平仓。

 

请帮忙编写一下,谢谢!

 


--  作者:jinzhe
--  发布时间:2012/5/25 8:52:04
--  
方向一致,这个该如何理解?
--  作者:supercan
--  发布时间:2012/5/25 9:26:47
--  

关于方向一致:

例如:5分钟的均线,ma(close,20)>ref(ma(close,20),1); 日线的20周期均线也是当前大于上一周期

 

而方向不一致:

5分钟的均线,ma(close,20)>ref(ma(close,20),1); 日线:ma(close,20)<ref(ma(close,20),1);

 

 


--  作者:jinzhe
--  发布时间:2012/5/25 10:56:42
--  

ma5a:stkindi(\'zjif00\',\'ma.ma3\',0,2);
ma5b:=stkindi(\'zjif00\',\'ma.ma3\',0,2,-1);

ma60a:stkindi(\'zjif00\',\'ma.ma3\',0,6);
ma60b:=stkindi(\'zjif00\',\'ma.ma3\',0,6,-1);
if cross(ma5a,ma60a) then begin
 if ma5a>ma5b and ma60a>ma60b then begin
  sellshort(holding<0,0,market);
  buy(holding=0,3,market);
 end
 if ma5a>ma5b and ma60a<ma60b then begin
  sellshort(holding<0,0,market);
  buy(holding=0,1,market);
 end
end

if cross(ma60a,ma5a) then begin
 if ma5a>ma5b and ma60a>ma60b then begin
  sell(holding>0,0,market);
  buyshort(holding=0,3,market);
 end
 if ma5a>ma5b and ma60a<ma60b then begin
  sell(holding>0,0,market);
  buyshort(holding=0,1,market);
 end
end


--  作者:supercan
--  发布时间:2012/5/25 12:50:10
--  

 

非常感谢jinzhe,谢谢您!

 

仔细阅读了一下,改成以下,就符合我的条件了。

 

ma5a:stkindi(\'zjif00\',\'ma.ma3\',0,2);
ma5b:=stkindi(\'zjif00\',\'ma.ma3\',0,2,-1);

ma60a:stkindi(\'zjif00\',\'ma.ma3\',0,6);
ma60b:=stkindi(\'zjif00\',\'ma.ma3\',0,6,-1);

 if ma5a>ma5b and ma60a>ma60b then begin
  sellshort(holding<0,0,thisclose);
  buy(holding=0,3,thisclose);
 end
 if ma5a>ma5b and ma60a<ma60b then begin
  sellshort(holding<0,0,thisclose);
  buy(holding=0,1,thisclose);
 end


 if ma5a<ma5b and ma60a<ma60b then begin
  sell(holding>0,0,thisclose);
  buyshort(holding=0,3,thisclose);
 end
 if ma5a<ma5b and ma60a>ma60b then begin
  sell(holding>0,0,thisclose);
  buyshort(holding=0,1,thisclose);
 end

 


--  作者:supercan
--  发布时间:2012/5/25 13:47:14
--  

在使用中,出现有信号,不下单的情形,肯请帮助!

 

我先前用ma.ma3#的方式也有出现类似的情况。


--  作者:rushtaotao
--  发布时间:2012/5/25 13:57:15
--  
账户登录是否正常,是否下的是主力合约
--  作者:supercan
--  发布时间:2012/5/25 15:23:46
--  
账户登录是正常,合约弄错了

 

只能下周一再试试!

[此贴子已经被作者于2012-5-25 15:25:34编辑过]