나는 인생의 나름대로 내가 원하는 구조를 얻는 것처럼 보이고, 제대로 기능을 발휘하는 것처럼 보이기 때문에 분노의 정도에 맞춰 내가 너희들에게 간다.상품 선물 계층 적 데이터 구조
설치 : Futures_Contracts라는 디렉토리가 있고 내부에는 모두 기본 자산으로 명명 된 약 30 개의 폴더가 있으며 마지막으로 CSV 형식의 가장 가까운 만료 계약 6 개 안에 있습니다. 각 csv는 형식이 동일하며 날짜, O, H, L, C, V, OI, 만료 월을 포함합니다.
참고 : 목표는 여기에서 : OHLCV OI는 가까운 가정, 개방 고가, 저가, 가까운, 볼륨, (익숙하지 않은 사람들을 위해) 미결제 것은
작업 아래의 정착과 동의어이다 최상위 인덱스가 기본 상품 심볼이고 중급 인덱스가 만료 월 - 연도, 마지막으로 OHLC 데이터 인 방식으로 선물 데이터를 다중 인덱스 팬더 데이터 프레임에로드하는 것입니다. 최종 목표는 zipline 모듈에서 해킹을 시작하여 미래에 실행하도록 할 수있는 것입니다. 그래서 시각적으로 :
내 미약 한 시도 :이 다소 작동
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import DataFrame, Series
import datetime
plt.figsize(16,8)
deliveries = {}
commoidities = {}
columns = 'open', 'high', 'low', 'settle', 'volume', 'interest', 'delivery' #Contract fields
path = os.getcwdu()+'/Futures_Contracts/' #Futures Path
for sym in os.listdir(path):
if sym[0] != '.': #Weed out hidden files
deliveries[sym] = []
i = 0
for contract in os.listdir(path + sym):
temp = pd.io.parsers.read_csv(path + sym + '/' + contract, index_col=0, parse_dates = True, names = columns)#pull in the csv
deliveries[sym].append(str(contract[:-4][-1] + contract[:-4][:-1][-2:])) #add contract to dict in form of MonthCode-YY
commodities[sym] = deliveries[sym]
commodities[sym][i] = temp
i += 1
그러나이 정말 마지막에 dataframe을 보유하고 중첩 딕셔너리이다. 따라서 슬라이스은 매우 투박 :
commodities['SB2'][0]['settle'].plot()
commodities['SB2'][3]['settle'].plot()
commodities['SB2'][4]['settle'].plot()
commodities['SB2'][3]['settle'].plot()
commodities['SB2'][4]['settle'].plot()
commodities['SB2'][5]['settle'].plot()
및
가 최적 내가 자산, 만기, 날짜 값에서 데이터를 비교할 수 있도록 각 인덱스에 걸쳐 슬라이스 할 수있을 것 산출한다. Matplotlib 차트에서 볼 수 있듯이, 모든 것이 단순히 '결말'이라는 이름으로 표시됩니다.
확실한 방법이 있지만 분명히 알아낼 수있을만큼 똑똑하지 않습니다.
날 좀 더 당신의 두뇌를 선택할 수 있도록하시기 바랍니다 대규모을 적용 내려 와서 출력합니다 것을 살펴 . 불행히도 모든 기본 자산이 동일한 계약 만료 기간을 가지는 것은 아닙니다. 어떻게 처리 할 수 있습니까? 이런 이유로 데이터 프레임을 만드는 것이 실현 가능하지 않을 것이라고 생각합니다. 최적의 방법은 csv의 모든 생각에 함께 참여하는 것입니다. –
다른 날짜를 의미합니까? 위의 코드는 다음을 처리합니다. –
날짜가 다르지만 명시적인 만료에 해당하는 열이 걱정됩니다. –