Comments (4)
这样会把用户回测的时候的目录里面的函数引入的回测框架内
from quantaxis.
#框架内部
try:
sys.path.append(os.getcwd())
print('loading strategy from'+ os.getcwd())
import user_strategy
from user_strategy import before_backtest, before_trading, handle_bar, end_trading, end_backtest
except:
QA_util_log_info(Exception)
def strategy_dec(func, *a, **b):
def deoc(*a, **b):
before_trading()
handle_bar()
func(*a, **b)
end_trading()
return deoc
def backtest_dec(func, *a, **b):
def inside_backtest(*a, **b):
before_backtest()
func(*a, **b)
end_backtest()
return inside_backtest
class backtest():
@backtest_dec
@strategy_dec
def exec_bid(self):
print('from backtest_framework: exec bid market and account')
"""
loading strategy fromC:\Users\yutiansut\quantaxis\test\new_test
import successfully
from strategy: befor_backtest
from strategy: befor_trading
from strategy: handle_bar
from backtest_framework: exec bid market and account
from strategy: end_trading
from strategy: end_bar
"""
用户策略:
print('import successfully')
def before_backtest():
print('from strategy: befor_backtest')
def before_trading():
print('from strategy: befor_trading')
def handle_bar():
print('from strategy: handle_bar')
def end_trading():
print('from strategy: end_trading')
def end_backtest():
print('from strategy: end_bar')
from quantaxis.
继续完善
回测框架用类的形式
class backtest():
cash=10000
def __init__(self,):
pass
@classmethod
def before_backtest(backtest,func,*a,**b):
#yield backtest.cash
return func(backtest,*a,**b)
@classmethod
def before_trading(backtest,func,*a,**b):
#yield backtest.cash
return func(backtest,*a,**b)
@classmethod
def strategy(backtest,func,*a,**b):
return func(backtest,*a,**b)
@classmethod
def end_trading(backtest,func,*a,**b):
#yield backtest.cash
return func(backtest,*a,**b)
def exec_bid(self,bid):
print(bid)
self.cash+=bid
from xxx import backtest
@backtest.before_trading
def before_trading(backtest):
print(backtest.cash)
@backtest.strategy
def handle_bar(backtest):
print('x')
print(backtest.cash)
backtest.exec_bid(backtest,1000)
print(backtest.cash)
if __name__=='__main__':
before_trading
handle_bar
from quantaxis.
from quantaxis.
Related Issues (20)
- Quantaxis 2.0.0.dev33版本的回测样例 HOT 3
- docker环境下的安装失败 HOT 1
- 无法获取通达信板块数据,Error save_tdx.QA_SU_save_stock_block exception HOT 1
- 使用docker pull 时报网络错误 HOT 3
- 回测示例求教:基于RSRS的ETF轮动策略(closed) HOT 1
- 大数据AI推荐
- 安装依赖时,报错metadata-generation-failed
- 有港股的财务数据吗 HOT 1
- 报jqdatasdk not installed HOT 2
- 请问下大盘指数日线图和分时图是如何save 的,存在哪个表里
- 关于自由现金流FINONE(322)和(321)的精确定义?
- Failed to init data in quantaxis cli HOT 2
- qatrader运行异常 HOT 2
- qa沟通渠道问题 HOT 2
- QUANTAXIS 的一般/高级财务方法 报错 KeyError: '581'
- save all: xdxr 不会增量更新。
- QATdx 期货数据 get_history_transaction_data 分时或者分笔数据没有夜盘数据
- 有没有人知道如何通过docker搭建2.0版本 HOT 1
- Quant
- pytdx版本问题
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quantaxis.