以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=182914)

--  作者:longkun
--  发布时间:2020/11/9 9:56:19
--  亲写数据齐全代码
 在1分钟周期里,当当日中途断网或主模块停止工作时会造成k线不连续,请问这种k线不连续造成的当日1分钟周期(不是分时图)k线数据不连续,用代码如何判断?亲写代码
--  作者:longkun
--  发布时间:2020/11/9 9:58:17
--  
 
图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2020/11/9 10:28:05
--  
 这个没有好的办法判断的了。至少没有一个通用的代码可以做这个判断的。而且也无法区分到底是行情不活跃还是断开行情了。





--  作者:longkun
--  发布时间:2020/11/9 10:39:09
--  
因为开机后台自动运行,一旦数据不齐全,就造成胡乱交易,这个还比较麻烦

--  作者:FireScript
--  发布时间:2020/11/9 10:49:48
--  
你在工具-本机异常监控

这里把这个打开下。这个一般有异常,包括行情断开 都会有记录的。
在监控设置里面 你可以选择对指定市场的数据接收情况进行监控。

--  作者:longkun
--  发布时间:2020/11/9 10:53:22
--  
 问题是没法从后台代码来限制交易
--  作者:longkun
--  发布时间:2020/11/9 11:06:09
--  
AA1:BARSLAST(TIME-ref(time,1)>300);//最后一次跨k线
AA2:     //上次收盘以来的k数
AA3:AA1<AA2;//上次收盘以来,如果跨k线,就说明数据中断了(不考虑非活跃品种)

能不能用以上思路来实现呢?


--  作者:FireScript
--  发布时间:2020/11/9 11:20:30
--  
你这里AA2只能写成固定数值才行。但是如果写成固定数值,你不同品种不同周期这里数值又会不一样的。所以这个就比较麻烦。

--  作者:longkun
--  发布时间:2020/11/9 12:20:20
--  
我准备引用白银连续的数据齐全来判断,请帮我看看一下代码是否有问题


夜盘:IF(CURRENTTIME>210000 AND CURRENTTIME<235900,1,0) OR IF(CURRENTTIME>=0 AND CURRENTTIME<=85959,1,0); //北京时间分4个交易时间段
早1盘:CURRENTTIME>=90000 AND CURRENTTIME<=101459;
早2盘:CURRENTTIME>=103000 AND CURRENTTIME<=132959;
午盘:CURRENTTIME>=133000 AND CURRENTTIME<=205959;
1收K:BARSLAST(TIME=10100)+1;//夜盘交易以来的k数
2收K:BARSLAST(TIME=130100)+1;
3收K:BARSLAST(TIME=143100)+1;
4收K:BARSLAST(TIME=173100)+1;
K数:IF(夜盘,1收K,IF(早1盘,2收K,IF(早2盘,3收K,IF(午盘,4收K,0))));//上次收盘以来的k数
整点:FRACPART(TIME/10000)=0;
参数:IF(整点,4100,100);
K线连续:TIME-REF(TIME,1)=参数;
跨K距:BARSLAST(K线连续=0)+1;//最后一次跨k线
数齐:跨K距=K数;
--  作者:longkun
--  发布时间:2020/11/9 12:20:24
--  
我准备引用白银连续的数据齐全来判断,方便请帮我看看一下代码是否有问题


夜盘:IF(CURRENTTIME>210000 AND CURRENTTIME<235900,1,0) OR IF(CURRENTTIME>=0 AND CURRENTTIME<=85959,1,0); //北京时间分4个交易时间段
早1盘:CURRENTTIME>=90000 AND CURRENTTIME<=101459;
早2盘:CURRENTTIME>=103000 AND CURRENTTIME<=132959;
午盘:CURRENTTIME>=133000 AND CURRENTTIME<=205959;
1收K:BARSLAST(TIME=10100)+1;//夜盘交易以来的k数
2收K:BARSLAST(TIME=130100)+1;
3收K:BARSLAST(TIME=143100)+1;
4收K:BARSLAST(TIME=173100)+1;
K数:IF(夜盘,1收K,IF(早1盘,2收K,IF(早2盘,3收K,IF(午盘,4收K,0))));//上次收盘以来的k数
整点:FRACPART(TIME/10000)=0;
参数:IF(整点,4100,100);
K线连续:TIME-REF(TIME,1)=参数;
跨K距:BARSLAST(K线连续=0)+1;//最后一次跨k线
数齐:跨K距=K数;