以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 我想去当前k线周期,怎么写? (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=174366) |
-- 作者:qq代人发帖 -- 发布时间:2020/2/17 14:31:23 -- 我想去当前k线周期,怎么写? 我想去当前k线周期,怎么写? Zq:DATATYPE,noaxis; {取当前k线周期} {返回值范围为0-19,分别表示 0:分笔成交、1:1分钟、2:5分钟、3:15分钟、4:30分钟、5:60分钟、 6:日、7:周、8:月、9:年、10:多日、11:多小时、12:季度、 13:多分钟、14:多秒、15:半年线、16:节气线、17:3分钟、18:10分钟、19:多笔线;} 这个转换成 分钟数字。只要 1分钟到240分钟到周期数字就好了。
|
-- 作者:wenarm -- 发布时间:2020/2/17 14:36:26 -- 这段枚举的代码你自己在里面摘取你要的部分。 IF DATATYPE=0 THEN 分笔:1; |
-- 作者:ma-robot -- 发布时间:2020/2/17 14:38:10 -- 以下是引用wenarm在2020/2/17 14:36:26的发言:
多谢
这段枚举的代码你自己在里面摘取你要的部分。 IF DATATYPE=0 THEN 分笔:1; |
-- 作者:FireScript -- 发布时间:2020/2/17 14:38:53 -- 没有函数直接取。 保证足够数据情况下。下面代码可直接计算出周期对应的秒数。 aa:=VALUEWHEN(TODAYBAR=1,time); bb:=VALUEWHEN(TODAYBAR=2,time); M1:TIMETOT0(BB)- TIMETOT0(aa);//转换成秒。五分钟周期返回值是300,1分钟周期返回的是60 |
-- 作者:ma-robot -- 发布时间:2020/2/17 15:02:51 -- cyc:BARSLAST(DATE<>REF(DATE,1))+1,noaxis;{有效数据区间} Jy:=IF(high-low=0 or vol=0,0,1),noaxis; {涨停无交易或者停牌状态} Tk:=TIME>OPENTIME(1) AND TIME IF DATATYPE=0 THEN 分笔:1; IF DATATYPE=1 THEN 1分钟:1; IF DATATYPE=2 THEN 5分钟:5; IF DATATYPE=3 THEN 15分钟:15; IF DATATYPE=4 THEN 30分钟:30; IF DATATYPE=5 THEN 60分钟:60; IF DATATYPE=6 THEN 日:1; IF DATATYPE=7 then 周:1; IF DATATYPE=8 then 月:1; IF DATATYPE=9 THEN 年:1; IF DATATYPE=12 THEN 季度:1; IF DATATYPE=15 THEN 半年:1; IF DATATYPE=16 then 节气:1; IF DATATYPE=17 THEN 3分钟:3; IF DATATYPE=18 THEN 10分钟:10; IF DATATYPE=10 THEN N日:DATATYPEMORE(0); IF DATATYPE=11 THEN N小时:DATATYPEMORE(1); IF DATATYPE=13 THEN N分钟:DATATYPEMORE(2); IF DATATYPE=14 THEN N秒:DATATYPEMORE(3); IF DATATYPE=19 THEN N笔:DATATYPEMORE(4); OpenMIN1:="$Open#MIN1"; {当前一分钟开盘价} OpenDAY:="$Open#DAY"; {当日开盘价} OpenStart:=IF(OpenMIN1=OpenDAY,1,0); {日开盘价=分钟开盘价} Ost:=FILTER(OpenStart,cyc); {第一个分钟开盘交易数据有效} SELL(Ts=1,HOLDING,MARKETR); SELLSHORT(Ts=1,HOLDING,MARKETR); BUY(Ost=1 and Tk=1 AND Jy=1 and cyc>=1,1,MARKETR); BUYSHORT(Ost=1 and Tk=1 AND Jy>=1 and cyc>=1,1,MARKETR);
上面 我写的开盘买 收盘卖,1分钟正常,其他周期就不正常了,怎么解决?最近几天停盘造成的。 |
-- 作者:ma-robot -- 发布时间:2020/2/17 15:07:04 -- cyc:BARSLAST(DATE<>REF(DATE,1))+1,noaxis;{有效数据区间} Jy:=IF(high-low=0 or vol=0,0,1),noaxis; {涨停无交易或者停牌状态} Tk:=TIME>OPENTIME(1) AND TIME OpenMIN1:="$Open#MIN1"; {当前一分钟开盘价} OpenDAY:="$Open#DAY"; {当日开盘价} OpenStart:=IF(OpenMIN1=OpenDAY,1,0); {日开盘价=分钟开盘价} Ost:=FILTER(OpenStart,cyc); {第一个分钟开盘交易数据有效} SELL(Ts=1,HOLDING,MARKETR); SELLSHORT(Ts=1,HOLDING,MARKETR); BUY(Ost=1 and Tk=1 AND Jy=1 and cyc>=1,1,MARKETR); BUYSHORT(Ost=1 and Tk=1 AND Jy>=1 and cyc>=1,1,MARKETR); ????奇怪了,我怎么编辑也不能分行??? |
-- 作者:FireScript -- 发布时间:2020/2/17 15:20:28 -- 你把开平的控制变量都单独输出在图表上看下排查下。 而且 你这里开盘买 收盘卖的控制逻辑 没太看懂。 |
-- 作者:ma-robot -- 发布时间:2020/2/17 18:28:26 -- 这个就是一个框架,为了能运行起来,用开盘买收盘卖了,后面写风控, 不用指标进行判断 ,直接使用持仓成本进行计算。 幽灵交易。随机交易,持仓成本仓控,多空同时进入。 |
-- 作者:ma-robot -- 发布时间:2020/2/17 18:37:52 -- Zq1:=IF(DATATYPE=1,1,0);{1·??ó} Zq3:=IF(DATATYPE=17,3,0);{3·??ó} Zq5:=IF(DATATYPE=2,5,0);{5·??ó} Zq10:=IF(DATATYPE=18,10,0);{10·??ó} Zq15:=IF(DATATYPE=3,15,0);{15·??ó} Zq30:=IF(DATATYPE=4,30,0);{30·??ó} Zq60:=IF(DATATYPE=5,60,0);{60·??ó} ZqF:=IF(DATATYPE=13,DATATYPEMORE(2),0);{?à·??ó} ZqH:=IF(DATATYPE=11,DATATYPEMORE(1)*60,0);{?àD?ê±} Zq:Zq1+Zq3+Zq5+Zq10+Zq15+Zq30+Zq60+ZqF+ZqH,noaxis;{è?μ?±?K??·?ê±?ü?ú·??ó} cyc:BARSLAST(DATE<>REF(DATE,1))+1,noaxis;{×ü??ò×ê±3¤} Jy:IF(high-low=0 and vol=0,0,1),noaxis; {??μ?í£/?T??ò×/í£??×′ì?} Tk:TIME>OPENTIME(1) AND TIME |
-- 作者:ma-robot -- 发布时间:2020/2/17 18:46:47 -- 这个框架,目前看,能支持的周期是1 3 5 10 15 30 60 多分钟 多小时。开盘买收盘卖。 自动计算当前k线周期,分时盘口这个有点问题,30s好像没有大问题。日线k线不支持。 开盘买以后改成虚拟开盘开仓转入持仓成本计算的仓控去。收盘卖以后改成收盘风控进行日内调仓到安全距离。 目前不支持的就是开盘 同时开一个空和一个多。收盘平空同时平多。这个不知道怎么解决。 金字塔图表交易支持不? 或者有其他方法进行多空双开的交易方式? 我不想用后台,那个不好观察进行调控。 实在不行分拆成两个框架,一个空策略,一个多策略,同时跑两个账户进行交易。这个是最后方案。 请老师看看,有没有bug在。多谢 |