确定模型的输入输出

数据分析_天工AI-搜索、对话、写作、文档分析、画画、做PPT的全能AI助手 (tiangong.cn)

用python 处理数据,将E日的open 作为open,if(E+1日的Low-E日的high,1,0) 作为flag,并将open,flag 作为新的csv存储

打算用E日的开盘价预测当天14:50该基金要不要买入,标志是flag,1是可以买,0是可以考虑买

import pandas as pd

# 加载原始数据
data = pd.read_csv('D:\\stockData\ch5\\159905.sz.csv', encoding='ascii')
# 创建新的 DataFrame,只包含 E 日的 'Open' 列
new_data = pd.DataFrame()
new_data['open'] = data['Open']
# 计算新的 'flag' 列
new_data['flag'] = (data['Low'].shift(-1) - data['High']).apply(lambda x: 1 if x > 0 else 0)
# 保存处理后的数据到新的 CSV 文件中
new_data.to_csv('./159905.cl.csv', index=False, encoding='ascii')

# 打印前几行以检查结果
print(new_data.head())

###20240717更新####

  • 工作真的是怎么也做不完,所以打算用1日的开盘价来预测接下来4日的买卖策略,于是需要对原数据处理做一下调整
import pandas as pd
# 加载原始数据
data = pd.read_csv('D:\\stockData\原始数据\\159905.sz.csv', encoding='ascii')
# 创建新的 DataFrame,只包含 E 日的 'Open' 列
new_data = pd.DataFrame()
new_data['x'] = data['Open']
# 计算新的 'flag' 列
new_data['y'] = (data['Low'].shift(-1) - data['High']).apply(lambda x: 1 if x > 0 else 0)
new_data['z'] = (data['Low'].shift(-2) - data['High'].shift(-1)).apply(lambda x: 1 if x > 0 else 0)
new_data['o'] = (data['Low'].shift(-3) - data['High'].shift(-2)).apply(lambda x: 1 if x > 0 else 0)
new_data['p'] = (data['Low'].shift(-4) - data['High'].shift(-3)).apply(lambda x: 1 if x > 0 else 0)
# 保存处理后的数据到新的 CSV 文件中
new_data.to_csv('D:\\stockData\\inputout\\159905.cl.csv', index=False, encoding='ascii')
# 打印前几行以检查结果
print(new_data.head())

####20240824更新######

代码优化,将E+1日的最低价和E日的收盘价相减,作为买卖信号

import pandas as pd
import os
import numpy as np

def process_csv_files(input_directory, output_directory, time_offsets=(1, 2, 3, 4)):
    # 检查并创建目标文件夹
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)

    # 检查路径是否存在
    if os.path.exists(input_directory):
        # 列出路径下所有 CSV 文件
        csv_files = [f for f in os.listdir(input_directory) if f.endswith('.csv')]
        print(f"找到以下 CSV 文件: {csv_files}")

        # 对每个 CSV 文件进行数据处理
        for file in csv_files:
            try:
                file_path = os.path.join(input_directory, file)
                data = pd.read_csv(file_path)

                # 确保时间序列数据按日期排序
                data.sort_index(inplace=True)

                # 创建新的 DataFrame
                new_data = pd.DataFrame()
                new_data['Open'] = data['Open']
                new_data['High'] = data['High']
                new_data['Low'] = data['Low']
                new_data['Close'] = data['Close']

                # 计算新的 'flag' 列
                for offset in time_offsets:
                    new_data[f'flag_{offset}'] = (data['Low'].shift(-offset) - data['Close'].shift(-offset + 1)).apply(lambda x: 1 if x > 0 else 0)

                # 保存处理后的数据到新的文件夹中
                new_data.to_csv(os.path.join(output_directory, file), index=False)
                print(f"文件 {file} 已处理并保存")
            except Exception as e:
                print(f"处理文件 {file} 时出现错误: {e}")

# 使用示例
input_directory = 'D:\\stockData\\low-close\\'
output_directory = 'D:\\stockData\\low-close\\processed\\'
process_csv_files(input_directory, output_directory)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值