• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:Python-一起来对网格做下回测

python 搞代码 3年前 (2022-02-20) 79次浏览 已收录 0个评论

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开盘价就是最高价的状况 [Skrill下载](https://www.gendan5.com/wallet/Skrill.html)到时候再触发 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])

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:Python-一起来对网格做下回测
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址