火币 BOLL 指标计算公式 (Python3) 版本

yufei       3 年, 6 月 前       1812

火币 BOLL 指标计算公式 (Python3) 版本

# -*- coding: utf-8 -*-

"""
BOLL(布林带)
计算方法:
1、计算中轨
MB=(当前k线收盘价+前k线收盘价+...+前N-1根k线收盘价)/N   N默认为20
2、计算标准差
先计算N根K线差额的平方和
sum=(当前K线收盘价-当前k线MB)^2+(前K线收盘价-前k线MB)^2+...+(第N根K线收盘价-第N根k线MB)^2
再计算标准差(Sqrt表示开方,计算平方根)
MD=K*Sqrt(sum/N)     K为标准差值,默认值为2;N默认为20
3、计算上轨、下轨
UP=MB+MD    (上轨值计算)
DN=MB-MD    (下轨值计算)
"""

import math,os
import json

def Get_close_allday(stock_code):
    allday=[]    #日期
    close=[]  #收盘价数组
    raw = open('./data.json').read()
    r   = json.loads(raw)
    print(r)
    allday = [it['id'] for it in r['data']]     #获取日K的所有日期
    close = [round(it['close'],2) for it in r['data']]   #获取日K中有点的数据明细
    return close[::-1],allday[::-1]

def Get_Boll(close,allday):
    L = len(close)             #计算收盘价数组长度,用于处理MID20的值
    N=20                       #默认N值为0
    start = 0                  #数组分割,起始分割索引为:0
    end = 20                   #数组分割,结束索引为:20 与N值相同

    while True:                    #循环遍历:遍历指定日K长度,用于计算每个日期的MID值
        for price in range(0,len(close)):
            sum_close = 0
            # print start,end,price
            MID=round(sum(close[start:end])/N,5)   #MB的计算公式:计算方法为收盘价数组中,最后一个点的收盘价加前19个点的
                                                  #收盘价只和,再除以20;每循环一次:最后一个点位移一个点
            for i in range(0,20):
                # print close[price+i]
                sum_close= sum_close + round(abs((close[price+i]-MID)**2),5)
            UPPER = MID + 2 * round(math.sqrt(sum_close/20),5)
            LOWER = MID - (UPPER-MID)

            print  (u'日期:' + str(allday[price]) +
                    u'\tMID:' + str(MID) +
                    u'\tUPPER:'  + str(round(UPPER,5)) +
                    u'\tLOWER值' + str(LOWER))
            start = start + 1
            end = end + 1
            L = L-1
            if L - N == -1:   #改判断用于判断不足20个点,无法计算时,退出for循环
                break
        break    #for循环结束后,退出while循环

if __name__ == "__main__":
    close,allday = Get_close_allday('sz002023')
    Get_Boll(close,allday)
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.