012:计算影线长度占比

        怎么说呢,我希望得到一个数据,就是某个K线的影线长短。可以这样算,用高点和低点的差值作为分母,开盘价和收盘价的差值的绝对值作为分子,得出的值得越大,说明影线越长,影线越长,说明上传下跳得越厉害,也就是震荡得越厉害。我喜欢这种个股。

步骤:

1,获得K线数据

2,新增一列,计算影线长度占比


import pandas as pd  
import numpy as np
import tkinter as tk
from tkinter import filedialog
import os

path=''

def open_file():
    global path
    path = filedialog.askopenfilename(initialdir="./", title="Select file", filetypes=(("Text files", "*"), ("All files", "*.*")))
    print("Selected file:", path)
    root.quit()  # 选择完文件后退出主循环

root = tk.Tk()
root.title("File Selector")

button = tk.Button(root, text="Open File", command=open_file)
button.pack()

root.mainloop()

# 读取表格数据
df = pd.read_csv(path, delimiter=',')

# 计算影线长度占比  
df['影线长度占比'] = 1- (abs(df['开盘'] - df['收盘'])) / (df['最高'] - df['最低'])  
  
# 如果分母为0,将影线长度占比设为0  
df = df.replace({'影线长度占比': {0: np.nan}})  # 将0替换为NaN,方便后续处理  
  
# 使用条件判断,如果分母为0,则影线长度占比设为0,否则保持原值  
df['影线长度占比'] = df['影线长度占比'].apply(lambda x: 0 if x == 0 else x)  
df['影线长度占比'] = df['影线长度占比'].round(3)

filename = os.path.basename(path)
# 保存到新的CSV文件  
# df.to_csv('002456_2018_new.csv', index=False)
df.to_csv('shadow_'+filename, index=False)
print("已经保存文件--shadow_"+filename)
      
# 计算均值
影线长度占比 = df['影线长度占比']
均值 = 影线长度占比.mean()

print("影线长度占比均值:", 均值)


K线数据的获取,参考再《005》

效果:

012:计算影线长度占比_第1张图片

012:计算影线长度占比_第2张图片

你可能感兴趣的:(量化交易,python,IT量化,量化交易)