add basic func to load paper_trades file

explicit_write_pps_on_exit
algorandpa 2023-01-13 01:14:47 +00:00 committed by jaredgoldman
parent 85a1b858b4
commit b67d020e23
2 changed files with 20 additions and 1 deletions

View File

@ -30,11 +30,12 @@ from typing import (
Callable, Callable,
) )
import uuid import uuid
import os.path
from bidict import bidict from bidict import bidict
import pendulum import pendulum
import trio import trio
import tractor import tractor
import logging
from .. import data from .. import data
from ..data._source import Symbol from ..data._source import Symbol
@ -56,6 +57,7 @@ from ._messages import (
BrokerdError, BrokerdError,
) )
from ..config import load
log = get_logger(__name__) log = get_logger(__name__)
@ -84,6 +86,17 @@ class PaperBoi(Struct):
last_ask: tuple[float, float] = (float('inf'), 0) # price, size last_ask: tuple[float, float] = (float('inf'), 0) # price, size
last_bid: tuple[float, float] = (0, 0) last_bid: tuple[float, float] = (0, 0)
def record_paper_trade(self):
try:
#create paper trades record
print('RECORDING PAPER TRADE')
config, path = load('paper_trades')
except Exception as Arguement:
logging.exception('ERROR RECORDING PAPER TRADE')
pass
async def submit_limit( async def submit_limit(
self, self,
oid: str, # XXX: see return value oid: str, # XXX: see return value
@ -271,6 +284,7 @@ class PaperBoi(Struct):
dt=pendulum.from_timestamp(fill_time_s), dt=pendulum.from_timestamp(fill_time_s),
bsuid=key, bsuid=key,
) )
self.record_paper_trade()
pp.add_clear(t) pp.add_clear(t)
pp_msg = BrokerdPosition( pp_msg = BrokerdPosition(

View File

@ -115,6 +115,7 @@ _conf_names: set[str] = {
'pps', 'pps',
'trades', 'trades',
'watchlists', 'watchlists',
'paper_trades'
} }
_watchlists_data_path = os.path.join(_config_dir, 'watchlists.json') _watchlists_data_path = os.path.join(_config_dir, 'watchlists.json')
@ -212,6 +213,10 @@ def load(
# if one exists. # if one exists.
if os.path.isfile(template): if os.path.isfile(template):
shutil.copyfile(template, path) shutil.copyfile(template, path)
else:
# create an empty file
with open(path, 'x'):
pass
else: else:
with open(path, 'r'): with open(path, 'r'):
pass # touch it pass # touch it