以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请教布林线跨周期的编写?謝謝 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173629) |
-- 作者:blaze -- 发布时间:2019/12/19 20:52:26 -- 请教布林线跨周期的编写?謝謝 请教下面的情况怎么写? 条件1:价格上碰1小时布林上轨,并运行在中轨之上,有了开多单的条件,价格破中轨条件结束。(布林线:20,20,2) 开多条件:在满足条件1的前提下,价格上碰15分钟布林线上轨,开多单1手,持仓,中轨止损。 謝謝
|
-- 作者:blaze -- 发布时间:2019/12/19 21:26:22 -- 在加多一个条件:价格在日线布林线中轨以上才可做多单,在中轨以下不做单 |
-- 作者:zm71212302 -- 发布时间:2019/12/20 2:39:15 -- 跨周期引用布林在论坛中以前有的,你可以查找一下,同时可以学习一下这个引用周期的函数 引用任意品种任意周期的任意指标输出 注意1:推荐使用V3.02版本推出的Stkindiex函数,能极大的提高运行效率。 注意2:若只是做模块化编程指标调用推荐使用#.#模式的用户函数编程模式,可以提高调用效率。 注意3:调用该函数将消耗大量资源和内存,不推荐大量调用,并请注意编程效率。 用法: STKINDI(STKLABEL,INDINAME,CO,PERIOD[,Num]) STKLABEL 指定品种代码,如为空表示当前品种,指定品种时推荐使用市场+代码的格式,例如SH600000,ZJIF00等. INDINAME 调用的指标、交易系统 (被引用变量必须是以:做变量的线输出类型) CO 坐标轴类型 0交易日坐标 1自然日 2交易交易时间 PERIOD 周期类型,有效值范围为(0-24),依次表示: 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:多笔线、20:自定义N日线、21:自定义N分钟线、22:自定义N秒线 23:自定义N笔线;24:自定义N小时线;25:等价K线;26:等量K线; Num变量说明: 1、当PERIOD周期<=19,Num为左右偏移周期个数(可选),0表示引用当前数据,小于0为引用之前数据,大于0为引用之后数据; 2、当PERIOD周期>=20和<=24时,Num为自定义N周期的具体数字 警告:小周期引用大周期会带来信号闪烁的严重问题,推荐使用上周期已经确立的大周期信号(参数Num = -1) 例如: STKINDI(\'1A0001\',\'MA.MA1(8,12,26,60)\',0,DATAPERIOD); 计算1A0001的当前周期MA指标的MA1指标线 STKINDI(\'\',\'RSI.RSI1\',0,6); 计算当前品种的日线周期RSI指标的RST1指标线 STKINDI(\'SH600000\',\'RSI\',0,6,-1); 引用昨日SH市场600000品种的日线周期RSI指标最后—行输出并且使用公式的默认参数
STKINDI(\'SH600000\',\'RSI\',0,21,8);表示引用RSI指标自定义8分钟周期的公式当前数据 STKINDI(\'SH600000\',\'RSI\',0,11,0);表示引用RSI指标多分钟周期的公式数据(多分钟参数在工具菜单->选项->常规选项卡中设置), 若参数为数字变量,那么需要有个字符串转换的过程 s:=5; m:=NUMTOSTR(s,0);//NUMTOSTR函数将数字转换到字符串,再带入变量中 vola:stkindi(\'if10\',\'ATR.ATR(\'&m&\')\',0,6,-1);//计算IF10合约的日线周期指标ATR的ATR指标线,传递参数m值为5。 //第2个参数\'\'里的是文本,由三部分组成:\'ATR.ATR(\'和m还有\')\',这三部分由两个连接符号&连接起来,实现对数值参数的文本传输。 引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作. 当周期参数为25或26时取设置中默认的等价等量设置,要注意使用不当(当等价等量数值过大)可能会造成未来数据引用! 所属函数组:引用函数 |
-- 作者:blaze -- 发布时间:2019/12/20 9:09:47 -- 可以帮忙直接写下来吗?谢,主要是看不明白。 |
-- 作者:FireScript -- 发布时间:2019/12/20 9:34:13 -- “ 条件1:价格上碰1小时布林上轨,并运行在中轨之上,有了开多单的条件,价格破中轨条件结束。(布林线:20,20,2) 开多条件:在满足条件1的前提下,价格上碰15分钟布林线上轨,开多单1手,持仓,中轨止损。 ” 条件1是指当前周期价格在小时线布林带上轨之上?
|
-- 作者:blaze -- 发布时间:2019/12/20 9:39:18 -- 不是,是碰了上轨,视为可交易的条件。同时价格运行在1小时中轨之上,条件才成立。 |
-- 作者:blaze -- 发布时间:2019/12/20 9:40:28 -- 日线就只要在布林线的中轨之上,就成立。 |
-- 作者:FireScript -- 发布时间:2019/12/20 10:06:00 -- 是当前周期的价格碰上了还是小时周期自己的价格碰上了。因为你跨周期调用的,这个地方必须理清了。 |
-- 作者:FireScript -- 发布时间:2019/12/20 10:21:47 -- Day_MID:STKINDI(\'\',\'BOLL.MID\',0,6,0);//日线中轨 h_UPPER:STKINDI(\'\',\'BOLL.UPPER\',0,5,0);//小时线上轨 h_MID:STKINDI(\'\',\'BOLL.MID\',0,5,0); 15min_UPPER:STKINDI(\'\',\'BOLL.UPPER\',0,3,0); 15min_MID:STKINDI(\'\',\'BOLL.MID\',0,3,0); cd1:cross(c,h_UPPER) and c>h_MID and c>Day_MID;//上穿上轨且在中轨之上 cd2:cross(c,15min_UPPER); cd:cd1 and cd2;//开仓条件 cd3:cross(15min_MID,c);//下穿15分钟中轨 if cd and holding=0 then buy(1,1,market); if cd3 and holding>0 then sell(holding>0,holding,market); |
-- 作者:blaze -- 发布时间:2019/12/20 10:57:08 -- 谢 |