def get_past_prices(range, ticker):
    '''
    Input: a list of date tuples in the format (%Y%m%d,%Y%m%d), and the stock ticker symbol.

    Output: a dataframe with the open/close/high/low and volume historical figures related to the provided stock ticker.

    Example: get_past_prices([('2010-12-01', '2010-12-31')], 'AAPL')
    '''

    td = TDClient(apikey="ef26202dacaf412fb157a05403f81ca3")
    times = []

    counter = 1

    for start, end in range:
        # delay to prevent API limits.
        time.sleep(20)
        ts = td.time_series(symbol=ticker,
                            interval="1day",
                            start_date=start,
                            end_date=end).as_pandas()
        times.append(ts)
        print(str(counter) + ')', str(start) + ' to', end)
        counter += 1

    stock_prices = pd.concat(times)

    print("Final shape: {}".format(stock_prices.shape))
    return stock_prices
Beispiel #2
0
def output(request):
    if request.GET.get("ticker"):
        userinput = request.GET.get("ticker")
        td = TDClient(apikey="5ab205ca85414927b3b757076d329696")
        ts = td.time_series(symbol=userinput, interval="1min",
                            outputsize=1).as_json()
        return render(request, 'test.html', {'script': ts})
Beispiel #3
0
def get_tickers_data(interval="1day", outputsize=5000):
    sp500_tickers, names = get_tickers_list_SP500()
    with open("apikey.txt", "r") as file:
        apikey = json.loads(file.read())

    td = TDClient(apikey=apikey)
    for ticker in sp500_tickers:
        df = td.time_series(symbol=ticker,
                            outputsize=outputsize,
                            interval=interval).as_pandas()
        print(df.head())
        df.to_csv(f"tickers_data/{ticker}.csv")
        time.sleep(10)
def update_stock(stock=str):  #Gets the stock data from Twelvedata
    td = TDClient(apikey=supersecretapi())  #get your own api! :P
    ts = td.time_series(symbol=stock,
                        interval="1day",
                        timezone="America/Argentina/Buenos_Aires",
                        start_date="2020-11-02",
                        end_date="2021-01-09",
                        outputsize=5000).as_pandas()
    ts = ts.sort_values(
        "datetime"
    )  #I Spend too much time sorting the DataFrame and not saving it hahaha
    print(ts)
    ts.to_csv("data/%s.csv" % stock)
    return ts
Beispiel #5
0
def getData(ticker):
    td = TDClient(apikey="b34e89fbda894c4186fdd1db0c4aca4b")
    ts1 = td.time_series(symbol=ticker, interval="5min",
                         outputsize=78).with_vwap().with_macd()
    ts1_p = ts1.as_pandas()
    ts2 = ts1.with_heikinashicandles()
    ts2_p = ts2.as_pandas()
    ts = pd.concat([ts1_p, ts2_p], axis=1).reindex(ts1_p.index)
    ts = ts.rename(
        columns={
            "open": "Open",
            "close": "Close",
            "high": "High",
            "low": "Low",
            "volume": "Volume"
        })
    for i in ts:
        print(i)
    return ts
def main():
    td = TDClient(apikey=config.API_KEY)

    print('Running Initial Historical Fetch!')

    fetchHistoricalData(td)

    print("Scheduling Fetch Loop!")
    sched = BlockingScheduler()
    sched.add_job(fetchHistoricalData,
                  'cron',
                  args=[td],
                  minute='0-59',
                  second='25')
    sched.start()
import time
from collections import namedtuple
import requests
import websocket
from twelvedata import TDClient
import json

# Initialize client - apikey parameter is requiered
td = TDClient(apikey="ece0867f7f864c78aca8f03754a1a788")
stock_id = set(line.strip() for line in open('StockID.txt'))
indicator_id = set(line.strip() for line in open('Tech.txt'))
Transaction = namedtuple('Transaction',
                         'type time timezone symbol shares stock_price')
transactions = []
user_shares = dict()


def is_float(test):
    try:
        float(test)
        return True
    except ValueError:
        return False


def buy(parameters):
    params = parameters.split(" ")
    symbol = ""
    num_of_shares = 0
    stat_operator = ""
    stat_parameter = 0
Beispiel #8
0
def _init_client():
    return TDClient(
        "demo",
        http_client=CachedHttpClient(API_URL),
    )
Beispiel #9
0
from twelvedata import TDClient
import asyncio
import websocket
import ssl
import json

td = TDClient(apikey="6ada7883b5494ec2ab023bbbf350a589")
ts = td.time_series(
    symbol="BTC/USD",
    outputsize=8,
    interval="1h",
)

ts.as_plotly_figure().show()


def appendToDataFrame(dataframe, dict):
    dataframe = dataframe.append(dict, ignore_index=True)

    return dataframe

def on_message(ws, message):
    print(message)

def on_error(ws, error):
    print(error)

def on_close(ws):
    print("Connection closed")

def on_open(ws):
Beispiel #10
0
cursor.execute("""
    SELECT id, symbol, name FROM stock WHERE country='United States' OR country='India'
""")
rows = cursor.fetchall()
symbols = []
stock_dict = {}
for row in rows:
    symbol = row['symbol']
    symbols.append(symbol)
    stock_dict[symbol] = row['id']
print(stock_dict)
print(symbols[:20])

chunk_size = 8

td = TDClient(apikey=config.API_KEY)

# for i in range(0, len(symbols)):

# print(barsets)
# print(stock_dict[barsets['id']])

# for i in range(0, len(symbols)):

start_time = time.time()

for i in range(0, len(symbols), chunk_size):
    try:
        sample_list = symbols[i:i + chunk_size]
        ts = td.time_series(symbol=sample_list,
                            interval="2h",
Beispiel #11
0
def run(hours):
    start = time.process_time()
    td = TDClient(apikey=TWELVE_DATA_API_KEY)
    cluster = MongoClient(MONGO_DB)
    db = cluster["wsb_momentum"]
    collection = db["daily_mentions"]
    todays_date = date.today()
    yesterday_date = todays_date - timedelta(days=1)
    todays_data = collection.find_one({"date": str(todays_date)})
    yesterdays_data = collection.find_one({"date": str(yesterday_date)})
    yesterdays_tickers = yesterdays_data['tickers']
    todays_tickers = todays_data['tickers']
    todays_formatted_data = []
    yesterdays_formatted_data = {}
    difference = []
    coef_list = [
        51.6, 27.2, 21.1, 16.8, 14.7, 9.4, 7.9, 6.3, 4.6, 3.6, 3, 2.6, 2.2, 2,
        1.6, 1.5, 1.4, 1.35, 1.3, 1.25, 1.2, 1.15, 1.1, 1, 1
    ]

    for ticker in todays_tickers:
        todays_formatted_data.append({
            'ticker': ticker['ticker'],
            'mentions': ticker['mentions'][0]
        })

    for ticker in yesterdays_tickers:
        yesterdays_formatted_data[ticker['ticker']] = ticker['mentions'][0]

    for item in todays_formatted_data:
        ticker = item['ticker']
        try:
            difference.append({
                "ticker":
                ticker,
                "mentions":
                item['mentions'],
                "difference":
                round(item['mentions'] * coef_list[hours], 0) -
                yesterdays_formatted_data[ticker],
                "difference_percentage":
                round((((item['mentions'] * coef_list[hours]) -
                        yesterdays_formatted_data[ticker]) /
                       yesterdays_formatted_data[ticker]) * 100, 2)
            })
        except:
            pass

    difference.sort(key=lambda x: x.get('difference'), reverse=True)
    todays_formatted_data.sort(key=lambda x: x.get('mentions'), reverse=True)
    top_by_mentions = todays_formatted_data[0:9]
    top_by_increase = difference[0:19]
    top_by_increase.sort(key=lambda x: x.get('difference_percentage'))

    for ticker in top_by_increase:
        volume_last_thirty = 0
        volume_previous_thirty = 0
        yahoo_data = yf.Ticker(ticker["ticker"])
        list_yahoo_data = yahoo_data.history(period="5d").values.tolist()
        try:
            ticker["open"] = str(round(list_yahoo_data[4][0], 2))
            ticker["yesterday_open"] = str(round(list_yahoo_data[3][0], 2))
            ticker["yesterday_high"] = str(round(list_yahoo_data[3][1], 2))
            ticker["yesterday_low"] = str(round(list_yahoo_data[3][2], 2))
            ticker["yesterday_close"] = str(round(list_yahoo_data[3][3], 2))
        except:
            print('excepted 2', ticker)
            try:
                twelve_data = td.time_series(
                    symbol=ticker["ticker"],
                    interval="1day",
                    outputsize=2,
                    timezone="America/New_York",
                )
                list_twelve_data = twelve_data.as_pandas().values.tolist()
                ticker["open"] = str(round(list_twelve_data[0][0], 2))
                ticker["yesterday_open"] = str(round(list_twelve_data[1][0],
                                                     2))
                ticker["yesterday_high"] = str(round(list_twelve_data[1][1],
                                                     2))
                ticker["yesterday_low"] = str(round(list_twelve_data[1][2], 2))
                ticker["yesterday_close"] = str(
                    round(list_twelve_data[1][3], 2))
                time.sleep(8)
            except:
                ticker["thirty_min_change_percentage"] = 0.00
                ticker["one_hour_change_percentage"] = 0.00
                print('excepted 3', ticker)
                time.sleep(8)
        try:
            data = td.time_series(
                symbol=ticker["ticker"],
                interval="1min",
                outputsize=60,
                timezone="America/New_York",
            )
            list_data = data.as_pandas().values.tolist()
            for interval in list_data[0:29]:
                volume_last_thirty += interval[4]
            for interval in list_data[30:59]:
                volume_previous_thirty += interval[4]
            ticker["change_since_open"] = str(
                round(list_data[0][3] - float(ticker["open"]), 2))
            ticker["change_since_open_percentage"] = str(
                round((list_data[0][3] - float(ticker["open"])) /
                      float(ticker["open"]) * 100, 2))
            ticker["volume"] = str(int(volume_last_thirty))
            ticker["volume_change"] = str(
                int(volume_last_thirty - volume_previous_thirty))
            ticker["volume_change_percentage"] = str(
                round(((volume_last_thirty - volume_previous_thirty) /
                       volume_previous_thirty) * 100, 2))
            ticker["thirty_min_change"] = str(
                round(list_data[0][3] - list_data[29][0], 2))
            ticker["one_hour_change"] = str(
                round(list_data[0][3] - list_data[59][0], 2))
            ticker["thirty_min_change_percentage"] = str(
                round(
                    ((list_data[0][3] - list_data[29][0]) / list_data[29][0]) *
                    100, 2))
            ticker["one_hour_change_percentage"] = str(
                round(
                    ((list_data[0][3] - list_data[59][0]) / list_data[59][0]) *
                    100, 2))
            ticker["price"] = str(round(list_data[0][3], 2))
        except:
            ticker["thirty_min_change_percentage"] = 0.00
            ticker["one_hour_change_percentage"] = 0.00
            pass
        time.sleep(8)

    message = '*Top Twenty Tickers By Increase In Mentions Since Yesterday:* \n'
    message_two = ''
    message_three = ''
    website = "\n <https://wsb-data.vercel.app/|Investigate these tickers further> \n"
    alert = False
    alert_message = '@channel *High acceleration detected* \n'
    for ticker in top_by_increase[0:6]:
        small_increase_high_mentions = float(
            ticker["difference_percentage"]) > 100 and int(
                ticker["mentions"]) > 100
        big_increase_moderate_mentions = float(
            ticker["difference_percentage"]) > 500 and int(
                ticker["mentions"]) > 50
        huge_increase_low_mentions = float(
            ticker["difference_percentage"]) > 2000
        price_increase = float(
            ticker["thirty_min_change_percentage"]) > 5 or float(
                ticker["one_hour_change_percentage"]) > 10

        link = '<https://finance.yahoo.com/quote/' + ticker[
            "ticker"] + '|*' + ticker["ticker"] + ":*> \n"
        if (small_increase_high_mentions or big_increase_moderate_mentions
                or huge_increase_low_mentions) and price_increase:
            alert = True
            try:
                mentions = "```On pace for " + str(int(
                    ticker["difference"])) + " (" + str(
                        ticker["difference_percentage"]
                    ) + "%) more mentions than yesterday. \n"
                price = "Currently $" + ticker["price"] + "\n"
                opened = "Opened at $" + ticker["open"] + "\n"
                open_change = "Change of $" + ticker[
                    "change_since_open"] + " (" + ticker[
                        "change_since_open_percentage"] + "%) since open. \n"
                price_thirty = "Change of $" + ticker[
                    "thirty_min_change"] + " (" + ticker[
                        "thirty_min_change_percentage"] + "%) over thirty minutes. \n"
                price_sixty = "Change of $" + ticker[
                    "one_hour_change"] + " (" + ticker[
                        "one_hour_change_percentage"] + "%) over one hour. \n"
                volume = ticker[
                    "volume"] + " volume traded in the past thirty minutes. \n"
                volume_change = "Change of " + ticker[
                    "volume_change"] + " (" + ticker[
                        "volume_change_percentage"] + "%) from the previous thirty minutes. \n"
                yesterday = "Yesterday: Open: $" + ticker[
                    "yesterday_open"] + ". High: $" + ticker[
                        "yesterday_high"] + ". Low: $" + ticker[
                            "yesterday_low"] + ". Close: $" + ticker[
                                "yesterday_close"] + ". ``` \n"
                alert_message += link + mentions + price + opened + open_change + price_thirty + price_sixty + volume + volume_change + yesterday
            except:
                alert_message += "Error fetching data for high acceleration ticker: " + link
        else:
            try:
                mentions = "```On pace for " + str(int(
                    ticker["difference"])) + " (" + str(
                        ticker["difference_percentage"]
                    ) + "%) more mentions than yesterday. \n"
                price = "Currently $" + ticker["price"] + "\n"
                opened = "Opened at $" + ticker["open"] + "\n"
                open_change = "Change of $" + ticker[
                    "change_since_open"] + " (" + ticker[
                        "change_since_open_percentage"] + "%) since open. \n"
                price_thirty = "Change of $" + ticker[
                    "thirty_min_change"] + " (" + ticker[
                        "thirty_min_change_percentage"] + "%) over thirty minutes. \n"
                price_sixty = "Change of $" + ticker[
                    "one_hour_change"] + " (" + ticker[
                        "one_hour_change_percentage"] + "%) over one hour. \n"
                volume = ticker[
                    "volume"] + " volume traded in the past thirty minutes. \n"
                volume_change = "Change of " + ticker[
                    "volume_change"] + " (" + ticker[
                        "volume_change_percentage"] + "%) from the previous thirty minutes. \n"
                yesterday = "Yesterday: Open: $" + ticker[
                    "yesterday_open"] + ". High: $" + ticker[
                        "yesterday_high"] + ". Low: $" + ticker[
                            "yesterday_low"] + ". Close: $" + ticker[
                                "yesterday_close"] + ". ``` \n"
                message += link + mentions + price + opened + open_change + price_thirty + price_sixty + volume + volume_change + yesterday
            except:
                message += "Error fetching data for " + link

    for ticker in top_by_increase[6:14]:
        small_increase_high_mentions = float(
            ticker["difference_percentage"]) > 100 and int(
                ticker["mentions"]) > 100
        big_increase_moderate_mentions = float(
            ticker["difference_percentage"]) > 500 and int(
                ticker["mentions"]) > 50
        huge_increase_low_mentions = float(
            ticker["difference_percentage"]) > 2000
        price_increase = float(
            ticker["thirty_min_change_percentage"]) > 5 or float(
                ticker["one_hour_change_percentage"]) > 10

        link = '<https://finance.yahoo.com/quote/' + ticker[
            "ticker"] + '|*' + ticker["ticker"] + ":*> \n"
        if (small_increase_high_mentions or big_increase_moderate_mentions
                or huge_increase_low_mentions) and price_increase:
            alert = True
            try:
                mentions = "```On pace for " + str(int(
                    ticker["difference"])) + " (" + str(
                        ticker["difference_percentage"]
                    ) + "%) more mentions than yesterday. \n"
                price = "Currently $" + ticker["price"] + "\n"
                opened = "Opened at $" + ticker["open"] + "\n"
                open_change = "Change of $" + ticker[
                    "change_since_open"] + " (" + ticker[
                        "change_since_open_percentage"] + "%) since open. \n"
                price_thirty = "Change of $" + ticker[
                    "thirty_min_change"] + " (" + ticker[
                        "thirty_min_change_percentage"] + "%) over thirty minutes. \n"
                price_sixty = "Change of $" + ticker[
                    "one_hour_change"] + " (" + ticker[
                        "one_hour_change_percentage"] + "%) over one hour. \n"
                volume = ticker[
                    "volume"] + " volume traded in the past thirty minutes. \n"
                volume_change = "Change of " + ticker[
                    "volume_change"] + " (" + ticker[
                        "volume_change_percentage"] + "%) from the previous thirty minutes. \n"
                yesterday = "Yesterday: Open: $" + ticker[
                    "yesterday_open"] + ". High: $" + ticker[
                        "yesterday_high"] + ". Low: $" + ticker[
                            "yesterday_low"] + ". Close: $" + ticker[
                                "yesterday_close"] + ". ``` \n"
                alert_message += link + mentions + price + opened + open_change + price_thirty + price_sixty + volume + volume_change + yesterday
            except:
                alert_message += "Error fetching data for high acceleration ticker: " + link
        else:
            try:
                mentions = "```On pace for " + str(int(
                    ticker["difference"])) + " (" + str(
                        ticker["difference_percentage"]
                    ) + "%) more mentions than yesterday. \n"
                price = "Currently $" + ticker["price"] + "\n"
                opened = "Opened at $" + ticker["open"] + "\n"
                open_change = "Change of $" + ticker[
                    "change_since_open"] + " (" + ticker[
                        "change_since_open_percentage"] + "%) since open. \n"
                price_thirty = "Change of $" + ticker[
                    "thirty_min_change"] + " (" + ticker[
                        "thirty_min_change_percentage"] + "%) over thirty minutes. \n"
                price_sixty = "Change of $" + ticker[
                    "one_hour_change"] + " (" + ticker[
                        "one_hour_change_percentage"] + "%) over one hour. \n"
                volume = ticker[
                    "volume"] + " volume traded in the past thirty minutes. \n"
                volume_change = "Change of " + ticker[
                    "volume_change"] + " (" + ticker[
                        "volume_change_percentage"] + "%) from the previous thirty minutes. \n"
                yesterday = "Yesterday: Open: $" + ticker[
                    "yesterday_open"] + ". High: $" + ticker[
                        "yesterday_high"] + ". Low: $" + ticker[
                            "yesterday_low"] + ". Close: $" + ticker[
                                "yesterday_close"] + ". ``` \n"
                message_two += link + mentions + price + opened + open_change + price_thirty + price_sixty + volume + volume_change + yesterday
            except:
                message_two += "Error fetching data for " + link

    for ticker in top_by_increase[14:]:
        small_increase_high_mentions = float(
            ticker["difference_percentage"]) > 100 and int(
                ticker["mentions"]) > 100
        big_increase_moderate_mentions = float(
            ticker["difference_percentage"]) > 500 and int(
                ticker["mentions"]) > 50
        huge_increase_low_mentions = float(
            ticker["difference_percentage"]) > 2000
        price_increase = float(
            ticker["thirty_min_change_percentage"]) > 5 or float(
                ticker["one_hour_change_percentage"]) > 10

        link = '<https://finance.yahoo.com/quote/' + ticker[
            "ticker"] + '|*' + ticker["ticker"] + ":*> \n"
        if (small_increase_high_mentions or big_increase_moderate_mentions
                or huge_increase_low_mentions) and price_increase:
            alert = True
            try:
                mentions = "```On pace for " + str(int(
                    ticker["difference"])) + " (" + str(
                        ticker["difference_percentage"]
                    ) + "%) more mentions than yesterday. \n"
                price = "Currently $" + ticker["price"] + "\n"
                opened = "Opened at $" + ticker["open"] + "\n"
                open_change = "Change of $" + ticker[
                    "change_since_open"] + " (" + ticker[
                        "change_since_open_percentage"] + "%) since open. \n"
                price_thirty = "Change of $" + ticker[
                    "thirty_min_change"] + " (" + ticker[
                        "thirty_min_change_percentage"] + "%) over thirty minutes. \n"
                price_sixty = "Change of $" + ticker[
                    "one_hour_change"] + " (" + ticker[
                        "one_hour_change_percentage"] + "%) over one hour. \n"
                volume = ticker[
                    "volume"] + " volume traded in the past thirty minutes. \n"
                volume_change = "Change of " + ticker[
                    "volume_change"] + " (" + ticker[
                        "volume_change_percentage"] + "%) from the previous thirty minutes. \n"
                yesterday = "Yesterday: Open: $" + ticker[
                    "yesterday_open"] + ". High: $" + ticker[
                        "yesterday_high"] + ". Low: $" + ticker[
                            "yesterday_low"] + ". Close: $" + ticker[
                                "yesterday_close"] + ". ``` \n"
                alert_message += link + mentions + price + opened + open_change + price_thirty + price_sixty + volume + volume_change + yesterday
            except:
                alert_message += "Error fetching data for high acceleration ticker: " + link
        else:
            try:
                mentions = "```On pace for " + str(int(
                    ticker["difference"])) + " (" + str(
                        ticker["difference_percentage"]
                    ) + "%) more mentions than yesterday. \n"
                price = "Currently $" + ticker["price"] + "\n"
                opened = "Opened at $" + ticker["open"] + "\n"
                open_change = "Change of $" + ticker[
                    "change_since_open"] + " (" + ticker[
                        "change_since_open_percentage"] + "%) since open. \n"
                price_thirty = "Change of $" + ticker[
                    "thirty_min_change"] + " (" + ticker[
                        "thirty_min_change_percentage"] + "%) over thirty minutes. \n"
                price_sixty = "Change of $" + ticker[
                    "one_hour_change"] + " (" + ticker[
                        "one_hour_change_percentage"] + "%) over one hour. \n"
                volume = ticker[
                    "volume"] + " volume traded in the past thirty minutes. \n"
                volume_change = "Change of " + ticker[
                    "volume_change"] + " (" + ticker[
                        "volume_change_percentage"] + "%) from the previous thirty minutes. \n"
                yesterday = "Yesterday: Open: $" + ticker[
                    "yesterday_open"] + ". High: $" + ticker[
                        "yesterday_high"] + ". Low: $" + ticker[
                            "yesterday_low"] + ". Close: $" + ticker[
                                "yesterday_close"] + ". ``` \n"
                message_three += link + mentions + price + opened + open_change + price_thirty + price_sixty + volume + volume_change + yesterday
            except:
                message_three += "Error fetching data for " + link

    slack_data = {'text': message}
    response = requests.post(webhook_url,
                             data=json.dumps(slack_data),
                             headers={'Content-Type': 'application/json'})
    if response.status_code != 200:
        raise ValueError(
            'Request to slack returned an error %s, the response is:\n%s' %
            (response.status_code, response.text))
    time.sleep(1)
    slack_data = {'text': message_two}
    response = requests.post(webhook_url,
                             data=json.dumps(slack_data),
                             headers={'Content-Type': 'application/json'})
    if response.status_code != 200:
        raise ValueError(
            'Request to slack returned an error %s, the response is:\n%s' %
            (response.status_code, response.text))
    time.sleep(1)
    slack_data = {'text': message_three + website}
    response = requests.post(webhook_url,
                             data=json.dumps(slack_data),
                             headers={'Content-Type': 'application/json'})
    if response.status_code != 200:
        raise ValueError(
            'Request to slack returned an error %s, the response is:\n%s' %
            (response.status_code, response.text))
    if alert:
        time.sleep(1)
        slack_data = {'text': alert_message, "link_names": True}
        response = requests.post(webhook_url,
                                 data=json.dumps(slack_data),
                                 headers={'Content-Type': 'application/json'})
        if response.status_code != 200:
            raise ValueError(
                'Request to slack returned an error %s, the response is:\n%s' %
                (response.status_code, response.text))
Beispiel #12
0
from twelvedata import TDClient
from discord import Webhook, RequestsWebhookAdapter
import datetime
import config_values as config

current_time = datetime.datetime.now().time()
value_threshold = 450

#run only between market hours
if (current_time > datetime.time(9)) and (current_time < datetime.time(15,59)):
    td = TDClient(apikey=config.static_values["api_key"])

    ts = td.time_series(
        symbol="GME",
        interval="1min",
        outputsize=1,
        timezone="America/New_York",
    ).as_json()


    stock_time = ts[0]["datetime"]
    stock_high = ts[0]["high"]

    format_string = "{time}  -  the high in the last two minutes for GME is ${high}".format(time = stock_time, high = stock_high)

    webhook = Webhook.from_url(config.static_values["webhook_url"], adapter=RequestsWebhookAdapter())

    if float(stock_high) > value_threshold:
        webhook.send(format_string)


def indicators(symbol):
    ts = td.time_series(symbol=symbol, interval='1min', outputsize=3)
    ind = ts.with_sma(time_period=5).with_sma(time_period=8).with_sma(
        time_period=13).as_pandas()
    ind['symbol'] = symbol
    return ind


t0 = time.perf_counter()

symbols = [
    'INO', 'BIOC', 'AMD', 'QQQ', 'SQQQ', 'HTBX', 'AAPL', 'TRNX', 'MSFT', 'CZR'
]
td = TDClient(apikey=twelvedata_api_key)
#print(indicators(symbols[0]))
#print(indicators(symbols[1]))
#print(indicators(symbols[2]))
#print(indicators(symbols[3]))
#print(indicators(symbols[4]))
#print(indicators(symbols[5]))
#print(indicators(symbols[6]))
#print(indicators(symbols[7]))
#print(indicators(symbols[8]))
#print(indicators(symbols[9]))

with concurrent.futures.ThreadPoolExecutor() as executor:
    results = [executor.submit(indicators, symbol) for symbol in symbols]

for result in results:
Beispiel #14
0
# Test out for best results
overSoldLine = 47
overBoughtLine = 59

# Dynamic Variables
boughtState = False
stockOwned = 0
bal = 10000
percentageRiskPerTrade = 0.2

while True:

    try:
        # Initiliaze client -api key
        td = TDClient(apikey=apiKey)
        ts = td.time_series(
            symbol="CAD/USD",
            interval="5min",
            outputsize=1,
            timezone="America/New_York"
        )
        # Returning Json
        df = ts.with_rsi().as_json()
        print("------")
        print(get_live_price("CADUSD=X"))
        now = datetime.now()
        current_time = now.strftime("%H:%M:%S")
        print("Current Time: ", current_time)
        print("Rsi: ")
        print(df[0]["rsi"])
Beispiel #15
0
from tkinter import *
from tkinter import ttk
from twelvedata import TDClient
import numpy as np
import pandas as pd
import time
import matplotlib
import mplfinance as mplFin

key = 'c95e6270c7b14d49a090a6bd6ef3563a'
td = TDClient(apikey=key)


class BackTrader:
    def __init__(self):
        global var
        root = Tk()
        root.title('Back Tester v0.1')
        root.geometry('600x600')
        var = IntVar(root)
        var.set(1)

        button_frame = Frame(root)
        button_frame.grid(column=3, row=8, pady=20)

        valueOutput = Text(root, width=60, height=1)

        titleLabel = Label(root, text='Back Tester v0.1')
        titleLabel.config(font=('Verdana 12 bold'))
        compTickerLabel = Label(root, text='Ticker Symbol:')
        compIntervalLabel = Label(root, text='Interval:')
Beispiel #16
0
def _init_client():
    return TDClient(
        "demo",
        http_client=CachedHttpClient("https://api.twelvedata.com"),
    )
from twelvedata import TDClient
import pandas as pd

td = TDClient(apikey="4138a26532c14163a10c81b40f323194")


def getTwelveData(_symbol, _interval='1min'):
    ts = td.time_series(
        symbol=_symbol,
        interval=_interval,
        outputsize=30,
        timezone="America/Los_Angeles",
    )
    df = ts.without_ohlc().with_sma(time_period=3).with_sma(
        time_period=8).with_sma(time_period=21).with_rsi().as_pandas()
    return df


def testData(_symbol, _interval='1min'):
    ts = td.time_series(
        symbol=_symbol,
        interval=_interval,
        outputsize=35,
        timezone="America/Los_Angeles",
    )
    df_new = ts.as_pandas()

    valueList = []
    for index, value in enumerate(df_new['close']):
        if index < 11:
            valueList.append(df_new['close'][index:3 + index].mean())