BUG: for issue #227, made more mappings for hourly frequency

This commit is contained in:
Frederic Fortier
2018-02-14 20:26:41 -05:00
parent 041665dee1
commit 2ba825db9b
3 changed files with 15 additions and 9 deletions
+2 -2
View File
@@ -26,7 +26,7 @@ def handle_data(context, data):
context.asset,
fields='price',
bar_count=20,
frequency='30T'
frequency='1H'
)
last_traded = prices.index[-1]
log.info('last candle date: {}'.format(last_traded))
@@ -114,7 +114,7 @@ def analyze(context, perf):
if __name__ == '__main__':
mode = 'backtest'
mode = 'live'
if mode == 'backtest':
run_algorithm(
+3 -2
View File
@@ -502,7 +502,7 @@ class Exchange:
"""
freq, candle_size, unit, data_frequency = get_frequency(
frequency, data_frequency
frequency, data_frequency, supported_freqs=['T', 'D', 'H']
)
# The get_history method supports multiple asset
candles = self.get_candles(
@@ -523,8 +523,9 @@ class Exchange:
field=field,
)
delta_candle_size = candle_size * 60 if unit == 'H' else candle_size
# Checking to make sure that the dates match
delta = get_delta(candle_size, data_frequency)
delta = get_delta(delta_candle_size, data_frequency)
adj_end_dt = end_dt - delta
last_traded = asset_series.index[-1]
+10 -5
View File
@@ -92,7 +92,7 @@ def get_periods_range(freq, start_dt=None, end_dt=None, periods=None):
adj_periods = periods * unit_periods
# TODO: standardize time aliases to avoid any mapping
unit = 'd' if unit == 'D' else 'm'
unit = 'd' if unit == 'D' else 'h' if unit == 'H' else 'm'
delta = pd.Timedelta(adj_periods, unit)
if start_dt is not None:
@@ -248,7 +248,7 @@ def get_year_start_end(dt, first_day=None, last_day=None):
return year_start, year_end
def get_frequency(freq, data_frequency=None):
def get_frequency(freq, data_frequency=None, supported_freqs=['D', 'T']):
"""
Get the frequency parameters.
@@ -305,9 +305,14 @@ def get_frequency(freq, data_frequency=None):
data_frequency = 'minute'
elif unit.lower() == 'h':
candle_size = candle_size * 60
alias = '{}T'.format(candle_size)
data_frequency = 'minute'
if 'H' in supported_freqs:
unit = 'H'
alias = '{}H'.format(candle_size)
else:
candle_size = candle_size * 60
alias = '{}T'.format(candle_size)
data_frequency = 'minute'
else:
raise InvalidHistoryFrequencyAlias(freq=freq)