以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  金字塔自带的等价K线是什么算法  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=171942)

--  作者:滚雪球
--  发布时间:2019/9/5 21:54:46
--  金字塔自带的等价K线是什么算法
打算用python编一个和系统自带的一样的等价K线
--  作者:yukizzc
--  发布时间:2019/9/6 9:13:57
--  
价格超过一个设定的值生成一个k
--  作者:滚雪球
--  发布时间:2019/9/6 10:07:38
--  

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

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


--  作者:yukizzc
--  发布时间:2019/9/6 10:13:27
--  
本来就不可能完全等价,价格超过设定值。就定义成一根新的k。
也就是说k的价格范围一定是大于等价设定的价格。
如果你要自己写这个等价k,请自行尝试了

--  作者:滚雪球
--  发布时间:2019/9/6 10:21:51
--  
我也想用现成的,但python下面不是不支持嘛
--  作者:滚雪球
--  发布时间: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
--  发布时间:2019/9/6 14:23:22
--  
这个无法提供技术支持
--  作者:滚雪球
--  发布时间:2019/9/6 16:00:59
--  
没事,我已经搞定了
--  作者:dengyun
--  发布时间:2019/9/22 16:27:26
--  
我也发现系统等价K线和自己思路的等价K线差好远并非完全意义上的等价K,我也想弄一个理论上的等价K,限于水平有限还请高手们献策,另外我看MC软件上的等价砖头K就完全符合,但自己已经习惯了用金字塔还希望金字塔方面完善此功能!!