fmzquant / strategies Goto Github PK
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 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 for perfectionists with deadlines.
Laravel
A 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
server
A server is a program made to 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 process requests and deliver data to 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 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
Some thing interesting about game, make everyone 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 happy.
Recommend Org
We are working to build community through open source technology. NB: members must have two-factor auth.
初始化函数,设定基准等等
def initialize(context):
# 开启动态复权模式(真实价格)
set_option(‘use_real_price’, True)
# 过滤掉order系列API产生的比error级别低的log
# log.set_level(‘order’, ‘error’)
set_parameter(context)
### 股票相关设定 ###
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type=‘stock’)
‘’’
参数设置部分 ==
‘’’
def set_parameter(context):
# 设置RSRS指标中N, M的值
#统计周期
g.N = 18
#统计样本长度
g.M = 1100
#首次运行判断
g.init = True
#持仓股票数
g.stock_num = 10
#风险参考基准 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易
g.security = ‘000300.XSHG’
# 设定策略运行基准 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易
set_benchmark(g.security)
#记录策略运行天数
g.days = 0
#set_benchmark(g.stock)
# 买入阈值
g.buy = 0.7
g.sell = -0.7
#用于记录回归后的beta值,即斜率
g.ans = []
#用于计算被决定系数加权修正后的贝塔值
g.ans_rightdev= []
开盘前运行函数
def before_market_open(context):
# 输出运行时间
#log.info(‘函数运行时间(before_market_open):’+str(context.current_dt.time()))
g.如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 days += 1
# 给微信发送消息(添加模拟交易,并绑定微信生效)
send_message(‘策略正常,运行第%s天~’%g.days)
开盘时运行函数
def market_open(context):
security = g.security
# 填入各个日期的RSRS斜率值
beta=0
r2=0
if g.init:
g.init = False
else:
#RSRS斜率指标定义
prices = attribute_history(security, g.如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 N, ‘1d’, [‘high’, ‘low’])
highs = prices.high
lows = prices.low
X = sm.add_constant(lows)
model = sm.OLS(highs, X)
beta = model.fit().params[1]
g.ans.append(beta)
#计算r2
r2=model.fit().rsquared
g.ans_rightdev.append(r2)
#策略选股买卖部分
def trade_func(context):
#获取股票池
df = get_fundamentals(query(valuation.code,valuation.如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 pb_ratio,indicator.roe))
#进行pb,roe大于0筛选
df = 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 df[(df[‘roe’]>0) & (df[‘pb_ratio’]>0)].sort(如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 ‘pb_ratio’)
#以股票名词作为index
df.index = df[‘code’].values
#取roe倒数
df[‘1/roe’] = 1/df[‘roe’]
#获取综合得分
df[‘point’] = df‘pb_ratio’,‘1/roe’.rank().T.apply(f_sum)
#按得分进行排序,取指定数量的股票
df = df.sort(‘point’)[:g.stock_num]
pool = df.index
log.info(‘总共选出%s只股票’%len(pool))
#得到每只股票应该分配的资金
cash = context.portfolio.total_value/len(pool)
#获取已经持仓列表
hold_stock = context.portfolio.positions.keys()
#卖出不在持仓中的股票
for s in hold_stock:
if s not in pool:
order_target(s,0)
#买入股票
for s in pool:
order_target_value(s,cash)
#打分工具
def f_sum(x):
return sum(x)
收盘后运行函数
def after_market_close(context):
#得到当天所有成交记录
trades = get_trades()
for _trade in trades.values():
log.info(‘成交记录:’+str(_trade))
#打印账户总资产
log.info(‘今日账户总资产:%s’%round(context.portfolio.total_value,2))
#log.info(如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 ’##############################################################’)
量化有用吗,量化金融是一个什么样的专业?
2022-04-07 06:45:42 来源:功凝网 作者:佚名 浏览量:141
量化金融是一个什么样的专业?
毕业之后我们专业课程进一步改革,并且欢迎学生修计算机专业,真的是太可惜当年没这个选项了!下面贴一个链接,是目前专业的课程设置,有很大的灵活度。链接-课程设置
有些同学会继续去读金工硕士,所以我有所耳闻。链接-金工硕士课程(范例)
Quant 分成Q-Quant 和P-Quant,大概就是做产品定价和做市场预测的分别。金工硕士以前更多侧重于Q-Quant,不过现在AI和机器学习火了,也很多加入了相应的课程。
国内目前海归的中等经验的量化工作者就业形势如何?
所以这成了一个死循环,有些海外大fund不大倾向于提拔和培养qr为基金经理而宁愿从外面挖,对于中国人则更是难上加难。于是感到玻璃天花板但又想独当一面管钱的就考虑海归了,结果发现国内竟然要求你在国外管过book且实盘记录业绩还要好看,so, dead end。
话说回来,米国的买方工作算是work life balance可以的啦,好多卖方狗投行狗risk狗validation狗developer狗乃至码农狗削尖了头都想进来,你回国图啥?待遇上难以match米国,做的东西回国未必有用,国内现在大环境也是严监管去杠杆抑制投机脱虚向实,回国图个啥?接盘房价?
要建立一个量化策略,预测目标通常是什么?
垃圾: 从过去量价预测价格, 什麽模式不模式, 大量此类都是过拟合, 就算不是过拟合, 也没办法确定没有过拟合, 通通是垃圾
还行: 从过去波动率预测波动率, 搞波动率期货, 或期权对冲等
有用: 藉统计归纳外部因素, 例如天气温度对价格或波动率的影响, 你也可以自己思索有哪些因素能探讨, 抓网路上的开放资料来回归一番, 想法合理就不容易过拟合, 发挥空间比较大
我在用的: 不讲, 留着自己溷饭吃
数学建模中的量化分析是什么?
这个问题应该倒过来问:量化分析中的数学建模是什么?这样的问题才有意义。
量化中的数学建模到底是什么呢?
我们可以先回归数学的意义,数学是将具象化的问题抽象化,并用简洁而干净的语言剥茧抽丝的过程,从而让我们发现问题的最核心最本质的内容。在量化金融当中,数学也是这个作用。引用我课上老师的文字:“It is a reduced-form, low-dimensional summary of expected returns. ” 某种程度上,量化金融中的模型,通过数学以降维的方式呈现出来,将很多复杂的问题简化成具体的因子,人们可以通过这些因子本身来评估投资回报、成本、收益和公司的现状,从而更好的来刻画投资。
我们再来看看大部分数学模型里面存在的缺陷:
1. It might be silent about (sometimes provides) economic interpretations of risk sources in an economy. 这些模型里面的因子真的有效吗? 很多在我们模型里面的因子是成功,但是放到现实的世界里的时候,它可能就是个哑炮,并不会对整体收益率起到显著的帮助。
2. Often we can’t tell whether factors are risk-based or behavioral reasons. For example, the value factor can be a systematic risk(Fama and French, 1996) or expectation errors (Porta et al., 1997).如何使用发明者量化交易平台扩展API实现TradingView报警信号交易
有时候,我们无法判断数学模型中的因子来自于市场的风险还是人的行为偏差。 比如模型中的一些价值因素可能是来自系统的风险(Fama 和 French,1996),也可能是来自人的期望的误差(Porta ect,1997)。
3. Some factors appear to be fragile and can’t capture the changing nature of risks over 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 time, e.g., COVID-19.
有一些变量的有效性是存在问题的,模型里面非常的脆弱,无法捕捉风险随时间变化的性质,比如数学模型就不能预测到 COVID-19带来的冲击。
4. A 如何使用发明者量化交易平台扩展API实现TradingView报警信号交易 factor zoo? 452 factors considered in Hou et al. (2020).现在有多达400多个因子被量化金融学家发现出来,但是真的需要这么多模型吗?众所周知,普遍市场上更常用的Fama-French 模型总共就三个因子,但是却被广泛的应用。
5. Dimension reduction by statistical ways or machine learning often lacks interpretability and robustness.很多新的是统计方法和机器学习等方法,虽然构建了很多非常有用的模型,更新了很多方法,但是他们无法解释金融现象,并且缺乏稳健性(随着样本的变化而有改变)。
量化金融的数学模型是在帮助金融学家认识这个金融世界,但是不代表数学模型不能替代金融研究。在金融、经济包括很多文科的领域,量化数学始终是一个工具,数字与样本辅助我们在认知这个世界,但是也存在着因为数字过于简洁而使得我们忽略很多其他维度的关键变量,这就需要我们离开数学,用专业的视角去挖掘。因此不管是量化金融还是金融本身,我们并不在意这个量化模型的精度一定要达到99%还是99.99999%(这是统计学家爱干的事情)。我们更加在意的是能否讲出一个有意思的投资故事解释这个世界,以及这个模型能否带来收益。