コード例 #1
0
 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'
     ]
コード例 #2
0
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()
コード例 #3
0
    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
コード例 #4
0
    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()
コード例 #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
コード例 #6
0
    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()
コード例 #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
コード例 #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)
コード例 #9
0
 def __init__(self):
     self.handle = handler()
コード例 #10
0
 def __init__(self):
     self.handler = handler()
     self.assets = handler().assets
コード例 #11
0
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()
コード例 #12
0
 def __init__(self, plan):
     self.handle = handler()
     self.indicators = indicators()
     self.plan = plan
コード例 #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