以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- [求助]自定义N分钟线问题 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=153985) |
-- 作者:devshj -- 发布时间:2017/5/24 0:11:01 -- [求助]自定义N分钟线问题 请教: min15openB := callstockex(stklabel,vtopen,21,90,200); min15closeB:= callstockex(stklabel,vtclose,21,90,200); min30openB : callstockex(stklabel,vtopen,21,240,1200); min30closeB: callstockex(stklabel,vtclose,21,240,1200); min5open:=ref(min5openB,1); min5close:=ref(min5closeB,1); min15open:=ref(min15openB,1); min15close:=ref(min15closeB,1); min30open:=ref(min30openB,1); min30close:=ref(min30closeB,1); 本意是想取得90分钟、240分钟线的开盘和收盘价,在5分钟周期里看到的数据有偏差,不知如何确定?或者告知金字塔处理机制如何? 正常情况应该 240/5=48根K线变化一次,但实际上有时候是48根K线,有时不到48根K线就改变数值了,不知为何? |
-- 作者:shq -- 发布时间:2017/5/24 8:53:02 -- 1、先补充数据完整,把1分钟、5分钟都补充上;偏差的话,建议去跟同品种的90min或者240minK线图的价格作对比,以确认是否有误; 2、另,240min周期不是你想象中的切分方式,建议你可以直接观察引用品种的240分钟K线图。
[此贴子已经被作者于2017/5/24 8:54:20编辑过]
|
-- 作者:devshj -- 发布时间:2017/5/24 12:32:36 -- 好的,谢谢。请问上述代码中是否存在未来函数的内容?开仓时以当前bar的收盘价计算 |
-- 作者:devshj -- 发布时间:2017/5/24 12:34:49 -- 此外,还想请教,如果是90分钟,240分钟,360分钟,金字塔是如何切分的? 有这个规则也可以,这样就知道具体情况,该怎么处理了 |
-- 作者:wenarm -- 发布时间:2017/5/24 12:44:16 -- 你可以在k线图上切换到对应周期,然后看下一天中的k线数据划分。更加便于分析 |
-- 作者:shq -- 发布时间:2017/5/24 12:54:00 -- 未来函数其实看的是 引用到未来的指标或某项值,目前的公式中,全是向前引用,故没有未来函数情况。 |
-- 作者:devshj -- 发布时间:2017/5/24 23:00:57 -- runmode:0; INPUT:M2(90,30,100,10),M3(380,200,600,40); 手数:=1; //开仓手数 min15openB := callstock(stklabel,vtopen,21,M2); min15closeB:= callstock(stklabel,vtclose,21,M2); min30openB := callstock(stklabel,vtopen,21,M3); min30closeB:= callstock(stklabel,vtclose,21,M3); min15open:=ref(min15openB,1); min15close:=ref(min15closeB,1); min30open:=ref(min30openB,1); min30close:=ref(min30closeB,1); entrylongcond := (min15close>min15open and min30close>min30open); entryshortcond:=(min15close<min15open and min30close<min30open); if holding=0 then begin if entrylongcond then buy(1,手数,nextopen); if entryshortcond then buyshort(1,手数,nextopen); end if holding>0 then begin if time>=(closetime(0)-500) then sell(1,holding,nextopen); end if holding<0 then begin if time>=(closetime(0)-500) then sellshort(1,holding,nextopen); end 资产:asset,noaxis,coloryellow,linethick1; 请问这段样例代码写法有何问题? 测试实盘交易时,信号有严重漂移现象,明明前面已经开仓了,后面又开仓,而且开盘时明明是开空,走几根k线后信号会变成开多 |
-- 作者:shq -- 发布时间:2017/5/25 8:41:10 -- 如果还是5min周期在跑程序化的话,这是典型的“小周期引用大周期”问题,会造成信号闪烁及偏移。详细请看下:http://vip.weistock.com:8081/forum.php?mod=viewthread&tid=2713&extra=page%3D1 |
-- 作者:devshj -- 发布时间:2017/5/25 11:58:34 -- 是在5min中运行,但已经引用了前一根大周期信号,不知道为何会如此?如果要修订,应该修改什么地方呢? |
-- 作者:shq -- 发布时间:2017/5/25 12:27:15 -- 思路没错,确实是向前引用,但是引用处有错,正确做法应该是 callstockex(stklabel,vtopen,21,90,-1,200); //具体写法请参考函数说明,不要再用ref。 原因解释下,您的写法代表的是引用上一个5分钟周期K线 的90分钟、240分钟线的开盘和收盘价,这个时候,这些引用还是在闪烁呀。我提供的写法是引用90分钟、240分钟周期下的前一根K线的开盘和收盘价,所以它就固定下来了。
[此贴子已经被作者于2017/5/25 12:27:47编辑过]
|