分类: Python/Ruby
2021-06-04 17:28:57
max_consume_money = consume_money
for day_up_down in data.index:
open = data.loc[day_up_down].values[0]
high = data.loc[day_up_down].values[1]
low = data.loc[day_up_down].values[2]
# close = data.loc[day_up_down].values[3]
# 盘前
# 如果 opt 为空,没有任何操作, 基准价 > 开盘价,触发买入
# if len(opt) == 0 and benchmark > open:
if benchmark * (1 - grid) > open:
# 一手买入 或者 倍数买入
# 买入
# 基准价变更
benchmark = open
print(day_up_down, "开盘买入", benchmark)
# 计算的操作
consume_money += Decimal(benchmark) * Decimal(count)
if consume_money.compare(max_consume_money) > 0:
max_consume_money = consume_money
# 添加记录
h = history.History(stock_code, 1, open, count)
opt.append(h)
opt_b.append([day_up_down, benchmark, 1])
elif benchmark * (1 + grid) <= open:
if len(opt) > 0:
# 卖出
# 基准价变更
benchmark = open
# 计算的操作
# 利润
temp = float(
((Decimal(benchmark) - Decimal(opt[len(opt) - 1].price)) * count).quantize(Decimal('0.00')))
profit += temp
consume_money -= Decimal(benchmark) * Decimal(count)
print(day_up_down, "开盘卖出", benchmark, opt[len(opt) - 1].price, "收益", temp)
# 修改记录
h = history.History(stock_code, -1, benchmark, count)
opt.pop()
opt_s.append([day_up_down, benchmark, -1])
while benchmark * (1 - grid) >= low:
# 盘中
# 一手买入 或者 倍数买入
# 买入
# 基准价变更
benchmark = float(Decimal(benchmark * (1 - grid)).quantize(Decimal('0.000')))
print(day_up_down, "盘中买入", benchmark)
# 计算的操作
consume_money += Decimal(benchmark) * Decimal(count)
if consume_money.compare(max_consume_money) > 0:
max_consume_money = consume_money
# 添加记录
h = history.History(stock_code, 1, benchmark, count)
opt.append(h)
opt_b.append([day_up_down, benchmark, 1])
# open = high开盘价就是最高价的情况 到时候再触发 low 会多买,这是一个假收益
# 不会那么巧吧开盘价跟最高价一样
if len(opt) > 0 and open != high:
while len(opt) > 0 and benchmark * (1 + grid) <= high:
# 卖出
# 基准价变更
benchmark = float(Decimal(benchmark * (1 + grid)).quantize(Decimal('0.000')))
# 计算的操作
temp = float(
((Decimal(benchmark) - Decimal(opt[len(opt) - 1].price)) * count)
.quantize(Decimal('0.00')))
profit += temp
consume_money -= Decimal(benchmark) * Decimal(count)
print(day_up_down, "盘中卖出", benchmark, opt[len(opt) - 1].price, "收益", temp)
# 修改记录
h = history.History(stock_code, -1, benchmark, count)
opt.pop()
opt_s.append([day_up_down, benchmark, -1])