以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  指数日K线指标为开仓条件,在分钟K下操作,公式如何写?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=64659)

--  作者:雪球
--  发布时间:2014/5/6 7:00:00
--  指数日K线指标为开仓条件,在分钟K下操作,公式如何写?
 
公式2(适用if00日K线 ) :

WJTIME:=timetot0(opentime(0))-timetot0(closetime(1)),linethick0;
QTRADETIME:=timetot0(closetime(0))-timetot0(opentime(1))-WJTIME,linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(0)then TRADETIME:=timetot0(dynainfo(207))-timetot0(opentime(1)),linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(1)then IFTRADETIME:=TRADETIME;
if dynainfo(207)>=opentime(0)and dynainfo(207)<=closetime(0) then IFTRADETIME:=TRADETIME-WJTIME;
//显示IFTRADETIME:IFTRADETIME,linethick0;
//交易时间:dynainfo(207),linethick0;
IFVOL:=if( islastbar and dynainfo(207)>opentime(1)+25*100,QTRADETIME/IFTRADETIME*callstock(\'ZJIF13\',vtVOL,6,0),callstock(\'ZJIF13\',vtVOL,6,0));//引指数成交量
成交放量:IFVOL/REF(IFVOL,1)>2,linethick0;// 成交放量CJFL
IFOPENINT:=callstock(\'ZJIF13\',vtOPENINT,6,0);//引指数持仓量
持仓变化:=IFOPENINT-callstock(\'ZJIF13\',vtOPENINT,6,-1);
持仓增加:持仓变化>0,linethick0;//持仓增加

KD1:=CROSS(MA(callstock(\'ZJIF13\',vtVOL,6,0),5),MA(callstock(\'ZJIF13\',vtVOL,6,0),30))  ;
Kk1:=CROSS(MA(callstock(\'ZJIF13\',vtVOL,6,0),30),MA(callstock(\'ZJIF13\',vtVOL,6,0),5)) ;
Kd2:=成交放量 and 持仓增加;

Kk2:=成交放量 and 持仓增加;

老师我的策略是:上述公式2中,KD1(KK1)成立则在1分钟K下开仓买入(卖出)1手,并止损80跳,止盈160跳;上述公式2中,KD2(KK2)成立并且没有持仓则在1分钟K下加仓1手;在1分钟K下收盘前5分钟全平仓。引指数日K线指标作为开仓条件,在1分钟K线下操作,请老师帮忙编下公式,谢谢。

--  作者:雪球
--  发布时间:2014/5/6 9:42:48
--  
对不起KD1KK1写错了。纠正如下:

 

KD1:=ref(CROSS(MA(callstock(\'ZJIF13\',vtclose,6,0),5),MA(callstock(\'ZJIF13\',vtclose,6,0),30)) ,1);
Kk1:=ref(CROSS(MA(callstock(\'ZJIF13\',vtclose,6,0),30),MA(callstock(\'ZJIF13\',vtclose,6,0),5)) ,1);


--  作者:qq代人发帖
--  发布时间:2014/5/6 10:01:10
--  

1楼代码是公式2,再新建一个公式 引用公式2里的条件。

KD11:=STKINDI(\'IF13\',\'公式2.KD1\',0,6,-1);
Kk11:=STKINDI(\'IF13\',\'公式2.Kk1\',0,6,-1);
Kd22:=STKINDI(\'IF13\',\'公式2.Kd2\',0,6,-1);
kk22:=STKINDI(\'IF13\',\'公式2.Kk2\',0,6,-1);
if kd11 then
buy(holding=0,1,market);
if kk11 then
buyshort(holding=0,1,market);
//止损
if ENTERPRICE-l>=80*mindiff THEN
sell(holding>0,holding,market);
if h-ENTERPRICE>=80*mindiff THEN
sellshort(holding<0,holding,market);
//止盈
if h-ENTERPRICE>=160*MINDIFF THEN
sell(holding>0,holding,market);
if ENTERPRICE-l>=160*mindiff THEN
sellshort(holding<0,holding,market);
//加仓
if kd22 then
buy(holding=0,1,market);
if kk22 THEN
buyshort(holding=0,1,market);
//收盘平仓
if time=151000 then
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);

[此贴子已经被作者于2014/5/6 10:02:24编辑过]

--  作者:雪球
--  发布时间:2014/5/6 10:37:01
--  
谢谢老师 ."1楼代码是公式2,再新建一个公式 引用公式2里的条件。"这句是什么意思?

--  作者:雪球
--  发布时间:2014/5/6 10:37:20
--  
老师写的代码之前要不要加上公式2的内容?

--  作者:雪球
--  发布时间:2014/5/6 10:57:38
--  
上述代码加载1分钟K交易时,公式2另建成的公式,要不要在另一个框架中打开?
即引用的自建公式,在被引用时是否必须打开?

--  作者:jinzhe
--  发布时间:2014/5/6 11:02:10
--  
不需要打开的,
--  作者:雪球
--  发布时间:2014/5/6 11:07:01
--  
哦谢谢。那么老师写的代码之前要不要加上公式2的内容?

--  作者:jinzhe
--  发布时间:2014/5/6 11:10:05
--  
不需要啊。跨公式引用你把原来的公式写进去干什么
--  作者:雪球
--  发布时间:2014/5/6 11:33:46
--  
不用打开也不用写入。谢谢。另一问题:三楼引用如果改成自定义数据,运行效率会有改善吗?