def __init__(self):
     self.handler = handler()
     self.assets = handler().assets
     self.assets_trade = [
         'EURUSD', 'EURAUD', 'GBPJPY', 'GBPCAD', 'USDCAD', 'USDJPY',
         'AUDJPY', 'IBUS500', 'IBUST100', 'IBGB100', 'IBDE30', 'IBFR40'
     ]
def chart(plan, id, symbol, time, date):  #UP-

    name = id + "_" + str(time)

    total = 0
    for i in plan.keys():
        if i == id:
            for ii in plan.get(i)['strat'].keys():
                total += 1
                df = hd.handler().candle_data(symbol,
                                              plan.get(i)['strat'][ii], 20)

                fig, ax = plt.subplots(figsize=(15, 10))
                candlestick2_ohlc(ax,
                                  df.open,
                                  df.high,
                                  df.low,
                                  df.close,
                                  width=0.5,
                                  colorup='g',
                                  colordown='r')
                ax.set_title(
                    f"{symbol} with {plan.get(i)['strat'][ii]} Minutes Candle",
                    fontsize=18)

                if not os.path.exists(f'./DATA/charts/{date}'):  #UP-
                    os.makedirs(f'./DATA/charts/{date}')  #UP-

                plt.savefig(f'./DATA/charts/{date}/{name}_{total}.svg')  #UP-
                plt.clf()
    def info(self):

        plan = pd.DataFrame(self.plan.values(), self.plan.keys())
        db = {}

        for i in plan.asset.unique():
            db.update({
                i: {
                    'start': handler().trading_hours(i)[0],
                    'end': handler().trading_hours(i)[1],
                    'digits': handler().instruments_info(i)
                }
            })

        print(db)
        return db
    def __init__(self, plan, orders, trades):
        self.orders = orders
        self.trades = trades
        self.plan = plan

        self.handle = handler()
        self.strat = strategy(self.plan)
        self.ind = indicators()
Exemple #5
0
    def info(self):
    
        plan = pd.DataFrame(self.plan.values(), self.plan.keys())
        db = {}

        for i in plan.asset.unique():
            db.update({i: {'digits': handler().account_instruments(i)}})

        print(db)
        return db
    def __init__(self, plan, orders, trades, x):
        self.orders = orders
        self.trades = trades
        self.plan = plan
        self.x = x
        self.intraday = self.first_data()
        self.asset_info = self.info()

        self.handle = handler()
        self.strat = strategy(self.plan)
        self.ind = indicators()
Exemple #7
0
    def first_data(self):

        ''' the first call-load of intraday database to save on future calls to broker for data 
            it is important remember that the qty of data requested most fit the needed for all indicators
        '''

        y = pd.DataFrame()

        for i, ii in self.x:
            temp = handler().candle_data(i, ii, 205).iloc[:-1]
            temp['tf'] = ii
            y = pd.concat([y, temp], sort=True)

        return y
Exemple #8
0
    def _get_new_data(self):

        if 'OANDA' not in os.listdir('./../DATA/'):
            last = dt.datetime.now(
                tz=pytz.timezone("Europe/Moscow")) - dt.timedelta(1900)
            db = pd.DataFrame()
        else:
            db = pd.read_pickle('./../DATA/OANDA')
            db.columns = db.columns.str.lower()

            db = db.reset_index().set_index('date')
            last = sorted(db.index.unique())[-1]

        data = pd.DataFrame()

        if last.date() == (
                dt.datetime.now(tz=pytz.timezone("Europe/Moscow")).date() -
                dt.timedelta(1)):
            pass
        else:
            for i in assets:
                df = handler().candle_data(
                    i,
                    1440,
                    1,
                    from_dt=last,
                    to_dt=(dt.datetime.now(tz=pytz.timezone("Europe/Moscow")))
                    - dt.timedelta(1),
                    use='plan')

                data = pd.concat([data, df], sort=True).drop_duplicates()

            df = data.reset_index().rename({
                'index': 'date'
            }, axis=1).set_index(['date', 'asset'])

            if len(db) > 1:
                db = db.reset_index().set_index(['date', 'asset'])
                df = pd.concat([db, df], sort=True).drop_duplicates()

            df = df.reset_index().set_index('date')

            self._remove_duplicated(df)
Exemple #9
0
 def __init__(self):
     self.handle = handler()
 def __init__(self):
     self.handler = handler()
     self.assets = handler().assets
import pandas as pd
import datetime as dt
from plan_indicat import ind
import pickle
from user_data import *
from handle_data import handler
import pytz
import os

risk = MAX_PERCENTAGE_ACCOUNT_AT_RISK
capital = float(handler().account_balance())
daily_risk = capital * risk
ind = ind()

trade_short = ['USDJPY', 'GBPJPY', 'AUDJPY']
trade_long = ['USDCAD', 'IBUS500', 'EURUSD', 'IBJP225']


class build_plan:
    def __init__(self):
        self.handler = handler()
        self.assets = handler().assets

    def _get_new_data(self):
        if 'IB' not in os.listdir('./../DATA/'):
            last = dt.datetime.now(
                tz=pytz.timezone("Europe/Moscow")).date() - dt.timedelta(1900)
            db = pd.DataFrame()
        else:
            db = pd.read_pickle('./../DATA/IB')
            db.columns = db.columns.str.lower()
 def __init__(self, plan):
     self.handle = handler()
     self.indicators = indicators()
     self.plan = plan
Exemple #13
0
import pandas as pd
import datetime as dt
import pickle
from user_data import *
from handle_data import handler
import pytz
import os
import warnings
warnings.filterwarnings("ignore")

import time

capital = float(handler().account_details()['NAV'])
daily_risk = capital * MAX_PERCENTAGE_ACCOUNT_AT_RISK
ind = ind()

assets = [
    'EUR_USD', 'EUR_JPY', 'EUR_GBP', 'EUR_AUD', 'EUR_CAD', 'USD_JPY',
    'GBP_USD', 'AUD_USD', 'USD_CAD', 'GBP_JPY', 'AUD_JPY', 'CAD_JPY',
    'GBP_AUD', 'GBP_CAD', 'SPX500_USD', 'NAS100_USD', 'UK100_GBP', 'DE30_EUR',
    'FR40_EUR', 'JP225_USD', 'HK33_HKD', 'AU200_AUD', 'IN50_USD', 'XAU_USD',
    'WTICO_USD', 'XCU_USD', 'US2000_USD'
]

trade_short = []
trade_long = []


class build_plan:
    def __init__(self):
        pass