Ejemplo n.º 1
0
def main():
    # update_bundle()
    config['base']['start_date'] = '2017-09-21'
    run_func(init=init,
             before_trading=before_trading,
             handle_bar=handle_bar,
             config=config)
Ejemplo n.º 2
0
def test_api(specific_test=None):
    # FIXME: Error msg is hard to understand @zjuguxi
    print(u"Testing API......")

    from tests.api import test_strategies as test_api_strategies
    from tests.mod import test_strategies as test_mod_strategies

    for strategy in test_api_strategies + test_mod_strategies:
        if specific_test and strategy["name"] != specific_test:
            continue
        print("running", strategy["name"])
        run_func(**strategy)

    print(u"API test ends.")
Ejemplo n.º 3
0
def test_api(specific_test=None):
    # FIXME: Error msg is hard to understand @zjuguxi
    print(u"Testing API......")

    from tests.api import test_strategies as test_api_strategies
    from tests.mod import test_strategies as test_mod_strategies

    for strategy in test_api_strategies + test_mod_strategies:
        if specific_test and strategy["name"] != specific_test:
            continue
        print("running", strategy["name"])
        run_func(**strategy)

    print(u"API test ends.")
Ejemplo n.º 4
0
def temp_run_file(row):
    temp_context = {
        'esp': row.esp,
        'code': add_tag(row.code),
        'projectName': settings.PROJECT_NAME
    }
    config = {
        "base": {
            "start_date": "2010-01-01",
            "end_date": get_today(),
            "benchmark": "000300.XSHG",
            "accounts": {
                "stock": row.code,
            }
        },
        "extra": {
            "log_level": "error",
            "user_system_log_disabled": True,
            "context_vars": temp_context,
        },
        "mod": {
            "sys_analyser": {
                "enabled": False,
                "plot": False,
                # "output_file": './one_data/static/' + row.code + '.png',
                "plot_save_file": './one_data/static/' + row.code + '.png',
                # "plot_save_file": './static/' + row.code + '.png',
            }
        }
    }
    print('开始运行策略-------' + row.name)
    run_func(init=init,
             before_trading=before_trading,
             handle_bar=handle_bar,
             config=config)
    # run_file(strategy_file_path, config)
    print('策略运行成功-------' + row.name)
Ejemplo n.º 5
0
 def compute_strategy(self, stock_id):
     # 您可以指定您要传递的参数
     user_func = self.choose_strategy(stock_id, name=self.strategy_name)
     user_func['config'] = config_utils.parse_config(
         './config/config_20190909.yml')
     print('use strategy:{}'.format(stock_id))
     print('user_func:{}'.format(user_func))
     result = run_func(**user_func)
     base_path = self.result_path.joinpath(self.strategy_name)
     if not base_path.exists():
         base_path.mkdir(parents=True)
     result_path = base_path.joinpath(stock_id.split('.')[0] + '.pk')
     with result_path.open('wb') as f:
         pickle.dump(result, f)
     return stock_id
Ejemplo n.º 6
0
    context.pre_trading_signal = context.trading_signal

CONFIG = {
    "base": {
        "start_date": "20180901",
        "end_date": "20200901",
        "frequency": "1d",
        "accounts": {
            "STOCK": 1000000
        }
    },
    "extra": {
        "log_level": "verbose"
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            # "report_save_path": ".",
            "plot": True,
            "enabled": True,
            "benchmark": "000300.XSHG"
            # "matching_type": "last"
        },
    }
}

if __name__ == "__main__":
    from rqalpha import run_func

    run_func(init=init, handle_bar=handle_bar, config=CONFIG)
Ejemplo n.º 7
0
    logger.info("用户程序执行完成")
    for book_id, data in context.all_close_price.items():
        np.save("close_price/%s" % book_id, np.array(data))


config = {
    "base": {
        "start_date": "2004-06-01",
        "end_date": "2017-02-01",
        "accounts": {
            "stock": 100000
        }
    },
    "extra": {
        "log_level": "verbose",
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            "plot": True
        }
    }
}

# 您可以指定您要传递的参数
run_func(init=init,
         before_trading=before_trading,
         handle_bar=handle_bar,
         end=end,
         config=config)
Ejemplo n.º 8
0
    context.bar_list.append(price_scaled[0])

    # if not enough bar
    if len(context.bar_list) < context.algorithm.seq_length * 2 + 2:
        return

    # frm = len(context.bar_list)-context.algorithm.seq_length
    x1 = context.bar_list[-context.algorithm.seq_length*2:-context.algorithm.seq_length]
    x2 = context.bar_list[-context.algorithm.seq_length:]

    x = [x1, x2]
    c, a, _ = context.algorithm.predict(x)
    res = np.append(_, [0, 0, 0, 0])
    predict = scale.inverse_transform([res])

    predict = scale.inverse_transform([res])
    print('predict', predict)
    pass


# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass


rqalpha.run_func(init=init,
                 before_trading=before_trading,
                 handle_bar=handle_bar,
                 after_trading=after_trading,
                 config=config)
Ejemplo n.º 9
0
                order_percent(context.s1, 1)
            else:
                print("skip order, no money")
        context.last = hist[-1]


# def after_trading(context):
#     print ("done")

config = {
    "base": {
        "start_date": "2016-08-01",
        "end_date": "2017-07-14",
        "benchmark": "000300.XSHG",
        "accounts": {
            "stock": 1000000
        }
    },
    "extra": {
        "log_level": "verbose",
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            "plot": True
        }
    }
}

run_func(init=init, handle_bar=handle_bar, config=config)
Ejemplo n.º 10
0

def handle_bar(context, bar_dict):
    pass


def after_trading(context):
    pass


if __name__ == '__main__':

    args = future_spider_parser.parse_args()

    config = {
        "base": {
            "start_date": "2018-01-01",
            "end_date": "2018-01-02",
            "benchmark": "AU88",
            "accounts": {
                "future": 100000
            }
        },
        "extra": {
            "log_level": "warning",
        },
        "args": args,
    }

    rqalpha.run_func(**globals())
Ejemplo n.º 11
0
    if not context.fired:
        # order_percent并且传入1代表买入该股票并且使其占有投资组合的100%
        order_percent(context.s1, 1)
        context.fired = True


config = {
  "base": {
    "start_date": "2016-06-01",
    "end_date": "2016-12-01",
    "securities": ['stock'],
    "stock_starting_cash": 100000,
    "benchmark": "000300.XSHG"
  },
  "extra": {
    "log_level": "verbose",
  },
  "mod": {
    "sys_analyser": {
      "enabled": True,
      "plot": True
    }
  }
}

# 您可以指定您要传递的参数
run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=config)

# 如果你的函数命名是按照 API 规范来,则可以直接按照以下方式来运行
# run_func(**globals())
Ejemplo n.º 12
0
    before_yesterday = "2018-08-07"
    yesterday = "2018-08-08"

config_next_day = {
    "stock_id": "600519.XSHG",
    "predicted_one": predicted_one,
    "base": {
        "start_date": yesterday,
        "end_date": today,
        "accounts": {
            "stock": 100000
        }
    },
    "extra": {
        "log_level": "verbose",
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            "plot": False
        }
    }
}

# 您可以指定您要传递的参数
if __name__ == "__main__":
    run_func(init=init_next_day,
             before_trading=before_trading_next_day,
             handle_bar=handle_bar_next_day,
             config=config_next_day)
Ejemplo n.º 13
0
 def compute_strategy(self, stock_id):
     # 您可以指定您要传递的参数
     user_func = self.choose_strategy(stock_id, name='golden_cross')
     print('use strategy:{}'.format(stock_id))
     run_func(**user_func)
     return stock_id
Ejemplo n.º 14
0
    if (context.trading_signal != context.pre_trading_signal or
            (context.units_hold < context.units_hold_max and context.units_hold > 1) or
            context.trading_signal == 'stop'):
        if context.trading_signal == 'entry':
            context.quantity = context.unit
            if available_cash > bar_dict[context.s].last*context.quantity:
                order_shares(context.s, context.quantity)
                context.first_open_price = bar_dict[context.s].last
                context.units_hold = 1

        if context.trading_signal == 'entry_add':
            context.quantity = context.unit
            order_shares(context.s, context.quantity)
            context.units_hold += 1

        if context.trading_signal == 'stop':
            if context.units_hold > 0:
                order_shares(context.s, -context.quantity)
                context.units_hold -= 1

        if context.trading_signal == 'exit':
            if cur_position > 0:
                order_shares(context.s, -cur_position)
                context.units_hold = 0

    context.pre_trading_signal = context.trading_signal


# 您可以指定您要传递的参数
run_func(init=init, handle_bar=handle_bar, config=tonghuashun_AGUSDO_config.config)
Ejemplo n.º 15
0

CONFIG = {
    "base": {
        "start_date": "20180901",
        "end_date": "20200901",
        "frequency": "1d",
        # "benchmark": "000300.XSHG",
        "accounts": {
            "STOCK": 10e8
        }
    },
    "extra": {
        "log_level": "verbose"
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            # "report_save_path": ".",
            "plot": True,
            "enabled": True,
            "benchmark": "000300.XSHG"
            # "matching_type": "last"
        },
    }
}

if __name__ == "__main__":
    from rqalpha import run_func
    run_func(init=init, config=CONFIG)
Ejemplo n.º 16
0
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading_dl(context):
    logger.info("收盘后执行after_trading函数")


config_dl = {
    "stock_id": "000001.XSHE",
    "base": {
        "start_date": yesterday,
        "end_date": today,
        "accounts": {
            "stock": 100000
        }
    },
    "extra": {
        "log_level": "verbose",
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            "plot": False
        }
    }
}

# 您可以指定您要传递的参数
run_func(init=init_dl,
         before_trading=before_trading_dl,
         handle_bar=handle_bar_dl,
         config=config_dl)
Ejemplo n.º 17
0
        "start_date": "20180901",
        "end_date": "20200901",
        "frequency": "1d",
        # "benchmark": "000300.XSHG",
        "accounts": {
            "STOCK": 10e8
        }
    },
    "extra": {
        "log_level": "verbose"
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            # "report_save_path": ".",
            "plot": True,
            "enabled": True,
            "benchmark": "000300.XSHG"
            # "matching_type": "last"
        },
    }
}

if __name__ == "__main__":
    from rqalpha import run_func

    run_func(init=init,
             before_trading=before_trading,
             handle_bar=handle_bar,
             config=CONFIG)
Ejemplo n.º 18
0
            "benchmark": None,
            "accounts": {
                "stock": 100000
            }
        }
        ,
        # "extra": {
        #   "log_level": "verbose",
        # },
        "mod": {
            "sys_analyser": {
                "enabled": True,
                "plot": False
            }
        }
    }

# 您可以指定您要传递的参数
results = run_func(init=init,  handle_bar=handle_bar, config=config)
report = results["sys_analyser"]
print (report.keys())
print ('stock positions')
print (report.get('stock_positions'))
# print ('trades')
# print (report.get('trades'))
# print ('summary')
# print (report.get('summary'))
# print ('stock_account')
# print (report.get('stock_account'))
# print ('portfolio')
# print (report.get('portfolio'))
Ejemplo n.º 19
0
    for security in to_remove:
        available_stocks.remove(security)

    return available_stocks


config = {
    "base": {
        "start_date": "2018-01-01",
        "end_date": "2018-11-07",
        "benchmark": "000300.XSHG",
        "accounts": {
            "stock": 1000000
        }
    },
    "extra": {
        "log_level": "verbose",
        "locale": "zh_Hans_CN"
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            "plot": True
        }
    }
}

# 您可以指定您要传递的参数
#run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=config)
run_func(**globals())
Ejemplo n.º 20
0
            if cur_position > 0:
                order_shares(context.s, -cur_position)
                context.units_hold = 0

    context.pre_trading_signal = context.trading_signal


config = {
    "base": {
        "start_date": "2018-01-01",
        "end_date": "2018-9-25",
        "benchmark": "000300.XSHG",
        "accounts": {
            "stock": 10000000
        }
    },
    "extra": {
        "log_level": "verbose",
        "locale": "zh_Hans_CN"
    },
    "mod": {
        "sys_analyser": {
            "enabled": True,
            "plot": True
        }
    }
}

# 您可以指定您要传递的参数
run_func(init=init, before_trading=None, handle_bar=handle_bar, config=config)
Ejemplo n.º 21
0
def my_run():
    run_func(
        init=init,
        before_trading=before_trading,
        handle_bar=handle_bar,
        config=config)