def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) redis_domain = get_env(env.REDIS_DOMAIN) redis_password = get_env(env.REDIS_PASSWORD) self.redis = redis.StrictRedis(redis_domain, 6379, encoding="utf-8", decode_responses=True, password=redis_password)
def stream(self, callback, instruments=None): accountID = get_env(env.OANDA_DEFAULT_ACCOUNT) token = get_env(env.OANDA_TOKEN) headers = {"Authorization": f"Bearer {token}"} if instruments is None: instruments = ["EUR_USD", "USD_JPY", "AUD_USD", "USD_CAD", "USD_CHF", "USD_JPY", "EUR_JPY", "GBP_USD"] instrument_url = "" for instrument in instruments: instrument_url = instrument_url + f"{instrument}%2C" stream_domain = get_env(env.OANDA_STREAM_DOMAIN) the_url = f"https://{stream_domain}/v3/accounts/{accountID}/pricing/stream?instruments={instrument_url}" r = requests.get(the_url, stream=True, headers=headers) print(">>>> Pricing service online! <<<<<") for line in r.iter_lines(): if line: line = json.loads(line.decode('utf-8')) if line["type"] == "PRICE": callback(line)
def get_dependencies(): access_token = get_env(env.OANDA_TOKEN) oanda_trade_domain = get_env(env.OANDA_TRADE_DOMAIN) api = v20.Context(oanda_trade_domain, 443, token=access_token) account_id = get_env(env.OANDA_DEFAULT_ACCOUNT) return api, account_id
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) uri = get_env(env.MONGODB_FULL_URL) self.client = MongoClient(uri)
def get_dependencies(): oanda_trade_domain = get_env(env.OANDA_TRADE_DOMAIN) access_token = get_env(env.OANDA_TOKEN) account_id = get_env(env.OANDA_DEFAULT_ACCOUNT) return oanda_trade_domain, access_token, account_id
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) sid = get_env(env.TWILIO_SID) token = get_env(env.TWILIO_TOKEN) self.client = Client(sid, token)