欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 金字塔自带的等价K线是什么算法

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3151人关注过本帖树形打印复制链接

主题:金字塔自带的等价K线是什么算法

帅哥哟,离线,有人找我吗?
滚雪球
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
金字塔自带的等价K线是什么算法  发帖心情 Post By:2019/9/5 21:54:46 [只看该作者]

打算用python编一个和系统自带的一样的等价K线

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/9/6 9:13:57 [只看该作者]

价格超过一个设定的值生成一个k

 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2019/9/6 10:07:38 [只看该作者]

但生成的K线并不是完全等价的,如果跳空那根K线还是会很长,按道理应该是一根K线很长的话应该切成多根等长的K线,不应该出现高低点

所以自己处理出来的和系统自带的对不上


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/9/6 10:13:27 [只看该作者]

本来就不可能完全等价,价格超过设定值。就定义成一根新的k。
也就是说k的价格范围一定是大于等价设定的价格。
如果你要自己写这个等价k,请自行尝试了

 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2019/9/6 10:21:51 [只看该作者]

我也想用现成的,但python下面不是不支持嘛

 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2019/9/6 13:48:18 [只看该作者]

哪里有问题,为什么计算出来的和系统不一样,而且根数也很少。请老师帮忙指点一下

 

from PythonApi import *
import time

Diff=0.005 #价格变动的区间百分比
C"
NewClose=[]
def init(context):
    global ContractId,ContractName,NewClose
    RefClose1=0
    RefClose2=0
   
    ContractId=Symbol(context)
    ContractName=SymbolName()

    PriceList=history_bars(ContractId,1001,'1m',['open','high','low','close'])
    if (len(PriceList)<1000):
        return
       
    LastClose=PriceList[-1][3]#最后一根K线的收盘价
    NewClose.append(LastClose)
    RefClose1=LastClose/(1+Diff)#倒推之前的高点范围
    RefClose2=LastClose/(1-Diff)#倒推之前的低点范围
    #print("%.3f %.3f %.3f"%(LastClose,RefClose1,RefClose2))
    for i in range(len(PriceList)-1,-1,-1):
        if (PriceList[i][1]>=RefClose2): #高点超过范围
            LastClose=PriceList[i][3]#取超过范围的那根1分钟K线收盘价
            RefClose2=LastClose/(1-Diff)#建立新的范围
            NewClose.append(LastClose)#先不管顺序加入到最后
        elif (PriceList[i][2]<=RefClose1):#低点超过范围
            LastClose=PriceList[i][3]
            RefClose1=LastClose/(1+Diff)
            NewClose.append(LastClose)
    print(NewClose)
    print(len(NewClose))        
   

def handle_bar(context):
    pass 
     
def Symbol(context):
    return context.run_info.base_book_id

def SymbolName():
    return get_dynainf(ContractId,219)


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/9/6 14:23:22 [只看该作者]

这个无法提供技术支持

 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2019/9/6 16:00:59 [只看该作者]

没事,我已经搞定了

 回到顶部
帅哥哟,离线,有人找我吗?
dengyun
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/8 23:51:38
  发帖心情 Post By:2019/9/22 16:27:26 [只看该作者]

我也发现系统等价K线和自己思路的等价K线差好远并非完全意义上的等价K,我也想弄一个理论上的等价K,限于水平有限还请高手们献策,另外我看MC软件上的等价砖头K就完全符合,但自己已经习惯了用金字塔还希望金字塔方面完善此功能!!

 回到顶部