日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python通达信5分钟转,10分钟,15分钟,30分钟,60分钟,量化交易,K线

發布時間:2024/3/12 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python通达信5分钟转,10分钟,15分钟,30分钟,60分钟,量化交易,K线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import osimport pandas as pdfrom pandas import Timedeltafrom stock_c.csv2dataframe import import_csv# 用通達信小周期,生成大周期數據def csv_resample(df, rule) -> pd.DataFrame:# 重新采樣Open列數據df_open = round(df['Open'].resample(rule=rule, closed='right', label='left').first(), 2)df_high = round(df['High'].resample(rule=rule, closed='right', label='left').max(), 2)df_low = round(df['Low'].resample(rule=rule, closed='right', label='left').min(), 2)df_close = round(df['Close'].resample(rule=rule, closed='right', label='left').last(), 2)df_volume = round(df['Volume'].resample(rule=rule, closed='right', label='left').sum(), 2)# print("新周期數據已生成")# 生成新周期數據df_15t = pd.DataFrame()df_15t = df_15t.assign(Open=df_open)df_15t = df_15t.assign(High=df_high)df_15t = df_15t.assign(Low=df_low)df_15t = df_15t.assign(Close=df_close)df_15t = df_15t.assign(Volume=df_volume)# 去除空值df_15t = df_15t.dropna()return df_15t# 根據通達信5分鐘周期數據,生成其他周期數據def lc5_resample(filepath, name, targetdir, rule) -> None:# (通達信.lc5文件路徑, 通達信.lc5文件名稱, 處理后要保存到的文件夾)# 設置處理后保存文件的路徑和名稱print("周期轉換已開始: " + rule)file_object_path = targetdir + name.split('.')[0] + ".lc" + rule[:len(rule) - 1] + '.csv'df = import_csv(filepath)if rule == '60T':df = round(change_13_11_14_12(df), 2)df = csv_resample(df, rule)df.to_csv(file_object_path)print("數據轉換已完成: " + name)def lc5_rule(rule):# 設置通達信5分鐘周期數據文件所在的文件夾path_dir = '../lc5/'# 設置要轉換的新周期rule_cycle = rule# 設置數據處理好后,要將csv文件保存的文件夾target_dir = '../lc' + rule_cycle[:len(rule_cycle) - 1] + '/'# 讀取文件夾下的通達信.lc5.csv文件listfile = os.listdir(path_dir)# 逐個處理文件夾下的通達信.lc5.csv文件,并生成對應的csv文件,保存到對應周期文件夾下for fname in listfile:lc5_resample(path_dir + fname, fname, target_dir, rule_cycle)else:print('The for ' + path_dir + ' to ' + target_dir + ' loop is over')print("文件轉換已完成")def change_13_11_14_12(df) -> pd.DataFrame:date = []for i in df.index:if i.hour == 13:i = i - Timedelta('02:00:00')if i.hour == 14 and i.minute == 0 and i.second == 0:i = i - Timedelta('02:00:00')date.append(i)df = df.assign(Date=pd.Series(date, index=df.index))df.set_index(['Date'], inplace=True)return df# 轉換成新周期lc5_rule('10T')lc5_rule('15T')lc5_rule('30T')lc5_rule('60T')# 讀取csv文件,返回pd.DataFrame對象def import_csv(stock_code) -> pd.DataFrame:df = pd.read_csv(stock_code)df['Date'] = pd.to_datetime(df['Date'], format='%Y/%m/%d')df.set_index(['Date'], inplace=True)return df

總結

以上是生活随笔為你收集整理的python通达信5分钟转,10分钟,15分钟,30分钟,60分钟,量化交易,K线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。