Skip to content

Instantly share code, notes, and snippets.

class Bot():
""" Main Trading Bot class """
def __init__(self, config: 'Config'):
self._config = config
self._price_loader = PriceDataLoader()
self._broker = Broker(config.total_cash, self._price_loader)
self._data: None
self._is_running = False
# Initial configurations
self.setup_logging()
class Config():
"""
Class for Bot configuration
"""
def __init__(self, symbols, total_cash, cash_per_trade, data_fetch_interval):
self._symbols = symbols
self._cash_per_trade = cash_per_trade
self._total_cash = total_cash
self._data_fetch_interval = data_fetch_interval
# Getters
class Positions(Enum):
LONG = 'LONG'
SHORT = 'SHORT'
class Side(Enum):
BUY = 'BUY'
SELL = 'SELL'
class OrderStatus(Enum):
PENDING = 'PENDING'
CANCELED = 'CANCELED'
FILLED = 'FILLED'
from typing import Callable, Dict, List, Optional, Sequence, Tuple, Type, Union
import numpy as np
import datetime
import os
from loguru import logger
import sys
import time
import requests
import pandas as pd
from pandas import DataFrame
symbol="AAPL" #AAPL is the symbol for Apple Inc.
URL=('https://yfapi.net/ws/insights/v1/finance/insights?'
'symbol={}'
)
URL=URL.format(symbol)
header = {
'X-API-KEY': "{{API_KEY}}"
}
count="25"
scrIds="day_gainers"
URL=('https://yfapi.net/ws/screeners/v1/finance/screener/predefined/saved?'
'count={}&'
'scrIds={}'
)
URL=URL.format(count,scrIds)
header = {
'X-API-KEY': "{{API_KEY}}"
symbol="AAPL" #AAPL is symbol for Apple Inc.
modules = "price"
URL=('https://yfapi.net/v11/finance/quoteSummary/'
'{}?'
'modules={}&'
'lang=en&'
'region=US'
)
URL=URL.format(symbol,modules)
symbol="AAPL" #AAPL is the symbol for Apple Inc.
URL=('https://yfapi.net/v6/finance/recommendationsbysymbol/'
'{}'
)
URL=URL.format(symbol)
header = {
'X-API-KEY': "{{API_KEY}}"
}
comparisons = "ABNB" #ABNB is the ticker for Airbnb Inc.
interval= "1d"
range="5d"
ticker="AAPL" #AAPL is the ticker for Apple Inc.
URL=('https://yfapi.net/v8/finance/chart/'
'{}?'
'comparisons={}&'
'interval={}&'
'range={}'
interval='1d'
range='5d'
symbols='AAPL'#AAPL is the symbol for Apple Inc.
URL=('https://yfapi.net/v8/finance/spark?'
'interval={}&'
'range={}&'
'symbols={}'
)
URL=URL.format(interval,range,symbols)