コード例 #1
0
                    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()
コード例 #2
0
ファイル: strategy1.py プロジェクト: kailunww/SSI
 #     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,
     ))
コード例 #3
0
ファイル: strategy1.py プロジェクト: kailunww/SSI
 # 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,
コード例 #4
0
ファイル: strategy2.py プロジェクト: kailunww/SSI
            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()