Skip to content

Commit

Permalink
changed data blob inputs v0.51.0
Browse files Browse the repository at this point in the history
  • Loading branch information
robcarver17 committed Oct 28, 2020
1 parent cb4ea30 commit 0b96e14
Show file tree
Hide file tree
Showing 17 changed files with 259 additions and 285 deletions.
5 changes: 5 additions & 0 deletions DONE_TO_DO.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Release notes

## Version 0.51.0

Essentially 'finished' production.md (in as much as anything can be finished...)
Changed data Blobs so now take lists of objects rather than str, easier to see dependencies

## Version 0.50.0

(Done loads of work but forgotten to update the version number or this file. So let's reward ourselves with a 0.20 version bump. The following list is almost certainly incomplete...)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Rob Carver
[https://qoppac.blogspot.com/p/pysystemtrade.html](https://qoppac.blogspot.com/p/pysystemtrade.html)


Version 0.50.0
Version 0.51.0


20201023
20201028


## Release notes
Expand Down
36 changes: 21 additions & 15 deletions sysproduction/backup_arctic_to_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,20 @@
from sysproduction.data.strategies import get_list_of_strategies
import os

from sysdata.csv.csv_futures_contracts import csvFuturesContractData
from sysdata.csv.csv_adjusted_prices import csvFuturesAdjustedPricesData
from sysdata.csv.csv_futures_contract_prices import csvFuturesContractPriceData
from sysdata.csv.csv_multiple_prices import csvFuturesMultiplePricesData
from sysdata.csv.csv_spot_fx import csvFxPricesData
from sysdata.csv.csv_contract_position_data import csvContractPositionData
from sysdata.csv.csv_strategy_position_data import csvStrategyPositionData
from sysdata.csv.csv_historic_orders import csvStrategyHistoricOrdersData, csvContractHistoricOrdersData, csvBrokerHistoricOrdersData
from sysdata.csv.csv_capital_data import csvCapitalData
from sysdata.csv.csv_optimal_position import csvOptimalPositionData
from sysdata.csv.csv_instrument_config import csvFuturesInstrumentData
from sysdata.csv.csv_roll_state_storage import csvRollStateData



def backup_arctic_to_csv():
data = dataBlob(log_name="backup_arctic_to_csv")
Expand Down Expand Up @@ -72,23 +86,15 @@ def get_data_and_create_csv_directories(logname):
csv_data_paths=class_paths, keep_original_prefix=True, log_name=logname
)

data.add_class_list(
"csvFuturesContractPriceData csvFuturesAdjustedPricesData \
csvFuturesMultiplePricesData csvFxPricesData \
csvContractPositionData csvStrategyPositionData \
csvBrokerHistoricOrdersData csvContractHistoricOrdersData csvStrategyHistoricOrdersData \
csvCapitalData csvOptimalPositionData csvFuturesInstrumentData \
csvRollStateData csvFuturesContractData"
data.add_class_list([
csvFuturesContractPriceData, csvFuturesAdjustedPricesData,
csvFuturesMultiplePricesData, csvFxPricesData,
csvContractPositionData, csvStrategyPositionData,
csvBrokerHistoricOrdersData, csvContractHistoricOrdersData, csvStrategyHistoricOrdersData,
csvCapitalData, csvOptimalPositionData, csvFuturesInstrumentData,
csvRollStateData, csvFuturesContractData]
)

data.add_class_list(
"arcticFuturesContractPriceData arcticFuturesMultiplePricesData \
arcticFuturesAdjustedPricesData arcticFxPricesData \
mongoContractPositionData mongoStrategyPositionData \
mongoBrokerHistoricOrdersData mongoContractHistoricOrdersData mongoStrategyHistoricOrdersData \
mongoCapitalData mongoFuturesContractData mongoFuturesInstrumentData \
mongoOptimalPositionData mongoRollParametersData mongoRollStateData"
)

return data

Expand Down
14 changes: 11 additions & 3 deletions sysproduction/data/broker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@

from collections import namedtuple

"ibFxPricesData, ibFuturesContractPriceData, ibFuturesContractData,\
ibContractPositionData, ibOrdersData, ibMiscData]"

from sysbrokers.IB.ibSpotFXData import ibFxPricesData
from sysbrokers.IB.ibFuturesContractPriceData import ibFuturesContractPriceData
from sysbrokers.IB.ibFuturesContracts import ibFuturesContractData
from sysbrokers.IB.ibPositionData import ibContractPositionData
from sysbrokers.IB.ibOrders import ibOrdersData
from sysbrokers.IB.ibMiscData import ibMiscData

from syscore.objects import missing_data, arg_not_supplied, missing_order, missing_contract

Expand Down Expand Up @@ -33,9 +41,9 @@ def __init__(self, data=arg_not_supplied):

data.add_ib_class("ibFxPricesData", ibFxPricesData)

data.add_class_list(
"ibFxPricesData ibFuturesContractPriceData ibFuturesContractData\
ibContractPositionData ibOrdersData ibMiscData"
data.add_class_list([
ibFxPricesData, ibFuturesContractPriceData, ibFuturesContractData,
ibContractPositionData, ibOrdersData, ibMiscData]
)
self.data = data

Expand Down
3 changes: 2 additions & 1 deletion sysproduction/data/capital.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from syscore.objects import missing_data, arg_not_supplied

from sysdata.production.capital import totalCapitalCalculationData
from sysdata.mongodb.mongo_capital import mongoCapitalData
from sysdata.private_config import get_private_then_default_key_value

from sysproduction.data.get_data import dataBlob
Expand All @@ -13,7 +14,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoCapitalData")
data.add_class_object(mongoCapitalData)
self.data = data

@property
Expand Down
13 changes: 8 additions & 5 deletions sysproduction/data/contracts.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@

from syscore.objects import missing_contract, arg_not_supplied

from sysdata.arctic.arctic_futures_per_contract_prices import arcticFuturesContractPriceData
from sysdata.arctic.arctic_multiple_prices import arcticFuturesMultiplePricesData
from sysdata.mongodb.mongo_roll_data import mongoRollParametersData
from sysdata.mongodb.mongo_futures_contracts import mongoFuturesContractData
from sysdata.futures.rolls import contractDateWithRollParameters
from sysdata.futures.contracts import futuresContract

from sysproduction.data.prices import get_valid_instrument_code_from_user, diagPrices
from sysproduction.data.get_data import dataBlob


missing_expiry = datetime.datetime(1900, 1, 1)


Expand All @@ -18,9 +21,9 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list(
"arcticFuturesContractPriceData mongoRollParametersData \
arcticFuturesMultiplePricesData mongoFuturesContractData"
data.add_class_list([
arcticFuturesContractPriceData, mongoRollParametersData,
arcticFuturesMultiplePricesData, mongoFuturesContractData]
)
self.data = data

Expand Down Expand Up @@ -280,7 +283,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoFuturesContractData")
data.add_class_object(mongoFuturesContractData)
self.data = data

def add_contract_data(self, contract, ignore_duplication=False):
Expand Down
18 changes: 11 additions & 7 deletions sysproduction/data/controls.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

from sysdata.private_config import get_private_then_default_key_value
from sysdata.production.position_limits import positionLimitAndPosition, positionLimitForInstrument, positionLimitForStrategyInstrument
from sysdata.mongodb.mongo_process_control import mongoControlProcessData
from sysdata.mongodb.mongo_lock_data import mongoLockData
from sysdata.mongodb.mongo_position_limits import mongoPositionLimitData
from sysdata.mongodb.mongo_trade_limits import mongoTradeLimitData
from sysdata.mongodb.mongo_override import mongoOverrideData

from sysproduction.data.get_data import dataBlob
from sysproduction.data.strategies import diagStrategiesConfig
Expand All @@ -20,7 +25,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoLockData")
data.add_class_object(mongoLockData)
self.data = data

def is_instrument_locked(self, instrument_code):
Expand All @@ -42,7 +47,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoTradeLimitData")
data.add_class_object(mongoTradeLimitData)
self.data = data

def what_trade_is_possible(
Expand Down Expand Up @@ -97,7 +102,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoOverrideData")
data.add_class_object(mongoOverrideData)
self.data = data

def get_dict_of_all_overrides(self):
Expand All @@ -118,7 +123,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoOverrideData")
data.add_class_object(mongoOverrideData)
self.data = data

def update_override_for_strategy(self, strategy_name, new_override):
Expand Down Expand Up @@ -152,7 +157,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("mongoControlProcessData")
data.add_class_object(mongoControlProcessData)
self.data = data

def get_dict_of_control_processes(self):
Expand Down Expand Up @@ -487,10 +492,9 @@ def __init__(self, data=arg_not_supplied):
# Check data has the right elements to do this
if data is arg_not_supplied:
data = dataBlob()
data.add_class_list("mongoPositionLimitData")
data.add_class_object(mongoPositionLimitData)
self.data = data


def cut_down_proposed_instrument_trade_okay(
self,
instrument_trade):
Expand Down
9 changes: 6 additions & 3 deletions sysproduction/data/currency_data.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
from sysdata.private_config import get_private_then_default_key_value
from sysproduction.data.get_data import dataBlob
from syscore.objects import arg_not_supplied
from syscore.genutils import print_menu_of_values_and_get_response

from sysdata.arctic.arctic_spotfx_prices import arcticFxPricesData
from sysdata.fx.spotfx import currencyValue
from sysdata.private_config import get_private_then_default_key_value

from sysproduction.data.get_data import dataBlob


class currencyData(object):
Expand All @@ -15,7 +18,7 @@ def __init__(self, data=arg_not_supplied):
if data is arg_not_supplied:
data = dataBlob()

data.add_class_list("arcticFxPricesData")
data.add_class_object(arcticFxPricesData)
self.data = data

def update_fx_prices(self, fx_code, new_fx_prices, check_for_spike=True):
Expand Down
Loading

0 comments on commit 0b96e14

Please sign in to comment.