timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) if trader.stock == 0: if ssi >= THRESHOLD: unit = base_unit trader.sell(bar, unit) logs.add( Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) elif ssi <= -THRESHOLD: unit = base_unit trader.buy(bar, unit) logs.add( Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) trader.update_value(bars.last()) result = Result( trader=trader, year_count=bars.year_count, logs=logs, ) result.output()
# adjusted_ssi = ssi - IGNORE # else: # adjusted_ssi = ssi + IGNORE optimal_hold = -int(ssi/0.2) # if optimal_hold > MAX_LIMIT: # optimal_hold = MAX_LIMIT # elif optimal_hold < -MAX_LIMIT: # optimal_hold = -MAX_LIMIT optimal_hold *= base_unit diff = optimal_hold - trader.stock # last_ssi = row["SSI_log"] if diff > 0: price = bar.close_ask unit = diff print("buy @ %s for %s unit" % (price, unit), trader.capital, trader.stock, bar.ssi) trader.buy(price, unit) logs.add(Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) elif diff < 0: price = bar.close_bid unit = -diff print("sell @ %s for %s unit" % (price, unit), trader.capital, trader.stock, bar.ssi) trader.sell(price, unit) logs.add(Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, ))
# else: # adjusted_ssi = ssi + IGNORE optimal_hold = -int(ssi / 0.2) # if optimal_hold > MAX_LIMIT: # optimal_hold = MAX_LIMIT # elif optimal_hold < -MAX_LIMIT: # optimal_hold = -MAX_LIMIT optimal_hold *= base_unit diff = optimal_hold - trader.stock # last_ssi = row["SSI_log"] if diff > 0: price = bar.close_ask unit = diff print("buy @ %s for %s unit" % (price, unit), trader.capital, trader.stock, bar.ssi) trader.buy(price, unit) logs.add( Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) elif diff < 0: price = bar.close_bid unit = -diff print("sell @ %s for %s unit" % (price, unit), trader.capital, trader.stock, bar.ssi) trader.sell(price, unit) logs.add( Log( timestamp=bar.timestamp,
trader.close(bar) logs.add(Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) if trader.stock == 0: if ssi >= THRESHOLD: unit = base_unit trader.sell(bar, unit) logs.add(Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) elif ssi <= -THRESHOLD: unit = base_unit trader.buy(bar, unit) logs.add(Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) trader.update_value(bars.last()) result = Result( trader=trader, year_count=bars.year_count, logs=logs, ) result.output()