ステップ A:GenericBarFeed
クラスで PyAlgoTrade のドキュメントに従います
このリンクで、v0.16 のクラスのCSVセクションを参照addBarsFromCSV()
してください。BarFeed
このリンクで、v0.17 のクラスのCSVセクションを参照addBarsFromCSV()
してください。BarFeed
Note
- CSV ファイルには、最初の行に列名が含まれている必要があります。・空欄
でもOKです。
- 複数の計測器を操作する
場合: --- ロードされたすべての計測器が同じタイムゾーンにある場合、タイムゾーン パラメータが指定されていない可能性があります。
--- ロードされた計測器のいずれかが異なるタイムゾーンにある場合、タイムゾーン パラメータを設定する必要があります。
CSV 形式のファイルから特定の商品のバーを読み込みます。計器がバーフィードに登録されます。– 機器識別子。– CSV ファイルへのパス。– バーのローカライズに使用するタイムゾーン。確認してください。Adj Close
addBarsFromCSV(
instrument, path, timezone = None
)
Parameters:
(string) instrument
(string) path
(pytz) timezone
pyalgotrade.marketsession
次:
ABarFeed
は、次の形式の CSV ファイルからバーを読み込みます。
Date Time, Open, High, Low, Close, Volume, Adj Close
2013-01-01 13:59:00,13.51001,13.56,13.51,13.56789,273.88014126,13.51001
ステップ B:文書化された CSV ファイルの事前フォーマットを実装する
CSV データには少し正気 (PyAlgoTrade
メソッドで使用できるようになる前)が必要
ですが、実行可能であり、手動または強力なベース機能を使用して簡単なトランスフォーマーを作成できます。numpy.genfromtxt()
lambda-
converters
converters
このサンプル コードは、CSV 構造が異なるため、独自の変換の機能をすぐに確認できるように説明することを目的としています。
with open( getCsvFileNAME( ... ), "r" ) as aFH:
numpy.genfromtxt( aFH,
skip_header = 1, # Ref. pyalgotrade
delimiter = ",",
# v v v v v v
# 2011.08.30,12:00,1791.20,1792.60,1787.60,1789.60,835
# 2011.08.30,13:00,1789.70,1794.30,1788.70,1792.60,550
# 2011.08.30,14:00,1792.70,1816.70,1790.20,1812.10,1222
# 2011.08.30,15:00,1812.20,1831.50,1811.90,1824.70,2373
# 2011.08.30,16:00,1824.80,1828.10,1813.70,1817.90,2215
converters = { 0: lambda aString: mPlotDATEs.date2num( datetime.datetime.strptime( aString, "%Y.%m.%d" ) ), #_______________________________________asFloat ( 1.0, +++ )
1: lambda aString: ( ( int( aString[0:2] ) * 60 + int( aString[3:] ) ) / 60. / 24. ) # ( 15*60 + 00 ) / 60. / 24.__asFloat < 0.0, 1.0 )
# HH: :MM HH MM
}
)