Add piker chart command
parent
489e8c226f
commit
0d06dbbefa
|
@ -1,9 +1,11 @@
|
||||||
"""
|
"""
|
||||||
Console interface to UI components.
|
Console interface to UI components.
|
||||||
"""
|
"""
|
||||||
|
from datetime import datetime
|
||||||
from functools import partial
|
from functools import partial
|
||||||
import os
|
import os
|
||||||
import click
|
import click
|
||||||
|
import trio
|
||||||
import tractor
|
import tractor
|
||||||
|
|
||||||
from ..cli import cli
|
from ..cli import cli
|
||||||
|
@ -102,3 +104,33 @@ def optschain(config, symbol, date, tl, rate, test):
|
||||||
loglevel=loglevel if tl else None,
|
loglevel=loglevel if tl else None,
|
||||||
start_method='forkserver',
|
start_method='forkserver',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command()
|
||||||
|
@click.option('--tl', is_flag=True, help='Enable tractor logging')
|
||||||
|
@click.option('--date', '-d', help='Contracts expiry date')
|
||||||
|
@click.option('--test', '-t', help='Test quote stream file')
|
||||||
|
@click.option('--rate', '-r', default=1, help='Logging level')
|
||||||
|
@click.argument('symbol', required=True)
|
||||||
|
@click.pass_obj
|
||||||
|
def chart(config, symbol, date, tl, rate, test):
|
||||||
|
"""Start an option chain UI
|
||||||
|
"""
|
||||||
|
from .qt._exec import run_qtrio
|
||||||
|
from .qt._chart import QuotesTabWidget
|
||||||
|
from .qt.quantdom.base import Symbol
|
||||||
|
from .qt.quantdom.loaders import get_quotes
|
||||||
|
|
||||||
|
async def plot_symbol(widgets):
|
||||||
|
qtw = widgets['main']
|
||||||
|
s = Symbol(ticker=symbol, mode=Symbol.SHARES)
|
||||||
|
get_quotes(
|
||||||
|
symbol=s.ticker,
|
||||||
|
date_from=datetime(1900, 1, 1),
|
||||||
|
date_to=datetime(2030, 12, 31),
|
||||||
|
)
|
||||||
|
# spawn chart
|
||||||
|
qtw.update_chart(s)
|
||||||
|
await trio.sleep_forever()
|
||||||
|
|
||||||
|
run_qtrio(plot_symbol, (), QuotesTabWidget)
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
"""
|
||||||
|
Super hawt Qt UI components
|
||||||
|
"""
|
|
@ -5,7 +5,6 @@ Run ``trio`` in guest mode on top of the Qt event loop.
|
||||||
All global Qt runtime settings are mostly defined here.
|
All global Qt runtime settings are mostly defined here.
|
||||||
"""
|
"""
|
||||||
import traceback
|
import traceback
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
import PyQt5 # noqa
|
import PyQt5 # noqa
|
||||||
from pyqtgraph import QtGui
|
from pyqtgraph import QtGui
|
||||||
|
@ -15,10 +14,6 @@ import qdarkstyle
|
||||||
import trio
|
import trio
|
||||||
from outcome import Error
|
from outcome import Error
|
||||||
|
|
||||||
from _chart import QuotesTabWidget
|
|
||||||
from quantdom.base import Symbol
|
|
||||||
from quantdom.loaders import get_quotes
|
|
||||||
|
|
||||||
|
|
||||||
# Taken from Quantdom
|
# Taken from Quantdom
|
||||||
class MainWindow(QtGui.QMainWindow):
|
class MainWindow(QtGui.QMainWindow):
|
||||||
|
@ -98,20 +93,3 @@ def run_qtrio(
|
||||||
window.setCentralWidget(instance)
|
window.setCentralWidget(instance)
|
||||||
window.show()
|
window.show()
|
||||||
app.exec_()
|
app.exec_()
|
||||||
|
|
||||||
|
|
||||||
async def plot_aapl(widgets):
|
|
||||||
qtw = widgets['main']
|
|
||||||
s = Symbol(ticker='AAPL', mode=Symbol.SHARES)
|
|
||||||
get_quotes(
|
|
||||||
symbol=s.ticker,
|
|
||||||
date_from=datetime(1900, 1, 1),
|
|
||||||
date_to=datetime(2030, 12, 31),
|
|
||||||
)
|
|
||||||
# spawn chart
|
|
||||||
qtw.update_chart(s)
|
|
||||||
await trio.sleep_forever()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
run_qtrio(plot_aapl, (), QuotesTabWidget)
|
|
||||||
|
|
Loading…
Reference in New Issue