首页 > 解决方案 > 在 Pyhon 中写入 CSV 文件,用于数据帧。记录结果

问题描述

我正在尝试创建自己的数据框。我的代码

import pandas as pd
from datetime import datetime
import time
import MetaTrader5 as mt5

if not mt5.initialize():
    print("initialize() falhou")
    mt5.shutdown()
ativos = mt5.symbols_get()


mt5.copy_rates_from_pos('@DD', mt5.TIMEFRAME_M1, 0, 1)

def get_ohlc(ativo, timeframe, n=55):
    ativo = mt5.copy_rates_from_pos(ativo, timeframe, 0, n)
    ativo = pd.DataFrame(ativo)
    ativo['time']=pd.to_datetime(ativo['time'], unit='s')
    ativo.set_index('time', inplace=True)
    return ativo

get_ohlc('@DD', mt5.TIMEFRAME_M1)
info = mt5.symbol_info_tick('@DD')



tempo = time.time() + 100000000
while time.time() < tempo:
    tick = mt5.symbol_info_tick('@DD')
    print(f" TIME:{datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]} ,DAX:{tick.last}, BID:{tick.bid}, ASK:{tick.ask}, VOLUME:{tick.volume}, FLAG:{tick.flags}, REAL:{tick.volume_real} ", end='\n')
    time.sleep(0.1)

程序输出(不以所有行为例)

TIME:2020-12-09 13:27:18.579 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:18.687 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:18.797 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:18.906 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:19.015 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:19.125 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:19.234 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:19.343 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:19.452 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0 
 TIME:2020-12-09 13:27:19.561 ,TICK LAST:13408.0, BID:13406.5, ASK:13407.5, VOLUME:1, FLAG:2, REAL:1.0  

如何按列将程序输出的结果写入csv文件?新数据记录在先前值的结果下。看起来像这样..

TIME                       TCK LAST     BID       ASK      VOLUME  FLAG  REAL
2020-12-09 13:27:19.561    13408.0      13406.5   13407.5   1        2   1.0

标签: pythonpandasdataframecsv

解决方案


推荐阅读