Source code for cointrader.helpers
import datetime
from termcolor import colored
from terminaltables import AsciiTable
[docs]def colorize_value(value):
if value < 0:
return colored(value, "red")
else:
return colored(value, "green")
# def render_signal_details(signals):
# out = [["Indicator", "Signal", "Details"]]
# for s in signals:
# out.append([s, signals[s].value, signals[s].details])
# table = AsciiTable(out).table
# return "\n".join(["\nSignal:", table])
[docs]def render_signal_detail(signal):
if signal.buy:
return colored("BUY", "green")
if signal.sell:
return colored("SELL", "red")
else:
return "WAIT"
[docs]def render_user_options(options):
out = []
for o in options:
out.append("{}) {}".format(o[0], o[1]))
return "\n".join(out)
[docs]def render_bot_title(bot, market, chart):
out = ["\n"]
data = chart._data
if len(data) > 1:
last = data[-2]
else:
last = data[-1]
current = data[-1]
values = {}
values["date"] = datetime.datetime.utcfromtimestamp(current["date"])
if current["close"] > last["close"]:
values["rate"] = colored(current["close"], "green")
else:
values["rate"] = colored(current["close"], "red")
change_percent = (current["close"] - last["close"]) / current["close"] * 100
values["change_percent"] = round(change_percent, 4)
values["url"] = market.url
values["btc"] = bot.btc
values["amount"] = bot.amount
values["currency"] = market.currency
t = u"{date} [{btc} BTC {amount} {currency}] | {rate} ({change_percent}%) | {url}".format(**values)
out.append("=" * len(t))
out.append(t)
out.append("=" * len(t))
return "\n".join(out)
[docs]def render_bot_statistic(stat):
out = [["", stat["start"], stat["end"], "CHANGE %"]]
out.append(["COINTRADER", stat["trader_start_value"], stat["trader_end_value"], "{}".format(colorize_value(round(stat["profit_cointrader"], 4)))])
out.append(["MARKET", stat["market_start_value"], stat["market_end_value"], "{}".format(colorize_value(round(stat["profit_chart"], 4)))])
table = AsciiTable(out).table
return "\n".join(["\nStatistic:", table])
[docs]def render_bot_tradelog(trades):
out = [["DATE", "TYPE", "RATE", "COINS", "COINS'", "BTC", "BTC'"]]
for trade in trades:
values = []
values.append(trade.date)
values.append(trade.order_type)
values.append(trade.rate)
if trade.order_type == "BUY":
values.append("--")
values.append(trade.amount_taxed)
values.append(trade.btc)
values.append("--")
elif trade.order_type == "SELL":
values.append(trade.amount)
values.append("--")
values.append("--")
values.append(trade.btc_taxed)
else:
values.append(trade.amount)
values.append("--")
values.append(trade.btc)
values.append("--")
out.append(values)
table = AsciiTable(out).table
return "\n".join(["\nTradelog:", table])