什么是金融?
金融:就是对现有资源进行重新整合之后,实现价值和利润的等效流通。
通俗来说,金融就是你有钱,但对创业没有想法,将钱融给需要做大做强的公司,等到上市,市值翻倍,从中获利。
金融工具:在金融市场中可交易的金融资产(股票、期货、黄金、外汇、基金等),就是将钱融给别人的方式。
上市/IPO:企业通过证券交易所公开向社会增发股票以募集资金。公司去证监会申请上市,证监会审核以规避所有风险,在证券交易所公开。
股票的分类:
蓝筹股:资本雄厚、信誉优良的公司的股票
绩优股:业绩优良的公司的股票
ST股:特别处理股票,连续两年亏损或者每股净资产低于股票面值股票按上市地区分类:
A股:中国大陆上市(上海或者深圳证券交易所),人民币认购买卖(T+1,涨跌幅10%),股票波动不能大于10%,为了保护股民,有涨停跌停之说;T就代表交割日,今天买出去,明天才可以卖出去
B股:中国大陆上市,外币认购买卖(T+1,T+3),T+3交收日,三天之后到账。
H股:中国香港上市(T+0,涨跌幅不设限制)
N股:美国纽约上市
S股:新加坡上市
股票市场的构成
上市公司投资者证监会(决定能否上市)证券业协会交易所:处理各种各样的信息证券中介机构:不向小股民小散户发售股票,证券交易所需要有席位,证券中介机构帮小股民代买股票,赚取席位费交易所:上海证券交易所:只有一个主板(沪指)
指数反映了大盘整体的趋势,整个市场假如有一万亿,七八千亿都在涨,通过趋势分析,大盘总体在涨。
深圳证券交易所:
主板:大型成熟企业(深成指)
中小板:经营规模较小
创业板:尚处于成长期的创业企业
影响股价的因素:公司自身因素、行业因素(最近人工智能发展的不错,很多公司会涨)、市场因素(是影响股价的最根本的因素)、心理因素、经济因素(国家的政策,利率 )、政治因素
股票买卖(A股)
委托买卖股票:个人不能直接买卖,需要在券商开户,进行委托购买
股票交易日:周一到周五(非法定节假日)
交易时间:
金融分析:
基本面分析宏观经济面分析:国家的财政政策、货币政策
行业分析
公司分析:财务数据、业绩报告等技术面分析:各项技术指标
K线:
阳线:代表股票在今天一天内是涨的,低开高走
阴线:代表股票在今天一天内是跌的,高开低走
MA(均线):前若干天收盘的平均值
KDJ(随机指标)
MACD(指数平滑移动平均线) 金融量化投资
量化投资:利用计算机技术并且采用一定的数学模型去实践投资理念,实现投资策略的过程。
量化投资的优势:
量化策略
量化策略:通过一套固定的逻辑来分析、判断和决策,自动化地进行股票交易。
策略的周期:
量化投资的方式:
自己编写:Numpy+pandas+Matplotlib
在线平台:聚宽、优矿、米筐、Quantopian
开源框架:RQAlpha、QUANTAXIS
1、双均线策略
# 导入函数库
from jqdata import *
# 初始化函数,设定基准等等
def initialize(context):
#g.security = '601318.XSHG'
set_benchmark('000300.XSHG')
set_option('use_real_price',True)
#print(g.security)
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003, close_today_commission=0, min_commission=5), type='stock')
g.security = ['601318.XSHG']
g.p1 = 5
g.p2 = 30
def handle_data(context, data):
for stock in g.security:
#金叉 :如果5日均线大于10日均线并且不持仓
#死叉: 如果5日均线小于10日均线并且持仓股票
df = attribute_history(stock, g.p2)
ma10 = df['close'].mean()
ma5 = df['close'][-5].mean()
if ma10 > ma5 and stock in context.portfolio.positions :
#死叉
order_target(stock,0)
if ma10 < ma5 and stock not in context.portfolio.positions:
#金叉
order(stock,context.portfolio.available_cash * 0.8)
2、小市值策略
# 导入函数库
from jqdata import *
# 初始化函数,设定基准等等
def initialize(context):
# 设定沪深300作为基准
set_benchmark('000002.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
# 输出内容到日志 log.info()
### 股票相关设定 ###
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
g.security = get_index_stocks('000002.XSHG')
g.q = query(valuation,indicator).filter(valuation.code.in_(g.security))
g.N = 20
run_monthly(handle, 1)
def handle(context):
df = get_fundamentals(g.q)[['code','market_cap','roe']]
#df = df.sort_values('market_cap').iloc[:g.N,:]
#print(df)
df['market_cap'] = (df['market_cap'] - df['market_cap'].min()) / (df['market_cap'].max() - df['market_cap'].min())
df['roe'] = (df['market_cap'] - df['market_cap'].min()) / (df['market_cap'].max() - df['market_cap'].min())
df['score'] = df['roe'] - df['market_cap']
df = df.sort_values('score').iloc[-g.N:,:]
to_hold = list(df['code'])
to_hold = filter_paused_stock(to_hold)
#print(current_data)
for stock in context.portfolio.positions:
if stock not in to_hold:
order_target(stock,0)
tobuy = [stock for stock in to_hold if stock not in context.portfolio.positions]
if len(tobuy) > 0 :
cash_per_stock = context.portfolio.available_cash / len(tobuy)
for stock in tobuy :
order_value(stock,cash_per_stock)
# 过滤停牌股票
def filter_paused_stock(stock_list):
current_data = get_current_data()
return [stock for stock in stock_list if not current_data[stock].paused]
3、均线回归策略
# 导入函数库
from jqdata import *
# 初始化函数,设定基准等等
def initialize(context):
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
### 股票相关设定 ###
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
g.security = get_index_stocks('000300.XSHG')
g.ma_days = 30 #30日均线
g.stock_num = 10 #选股数量20
g.stock_num_t = 20 #筛选后选股数量10
## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的)
run_monthly(handle,1)
## 运行函数
def handle(context):
sr = pd.Series(index = g.security)
for stock in sr.index :
ma = attribute_history(stock,g.ma_days)['close'].mean()
p = get_current_data()[stock].day_open
ratio = (ma - p) / ma #偏离程度
sr[stock] = ratio
#print(sr.index)
to_hold = sr.nlargest(g.stock_num.t).index.values
to_hold = skip_paused_stock(to_hold)
to_hold = to_hold[-g.stock_num:]
#print(to_hold)
#卖出股票
for stock in context.portfolio.positions:
if stock not in to_hold:
order(stock,0)
#买入股票
to_buy = [stock for stock in to_hold if stock not in context.portfolio.positions]
if len(to_buy) > 0:
cash = context.portfolio.available_cash
cash_per_stock = cash / len(to_buy)
for stock in to_buy:
order_value(stock,cash_per_stock)
# 跳过停牌股票
def skip_paused_stock(tobuy_list):
current_data = get_current_data()
return [stock for stock in tobuy_list if not current_data[stock].paused]
4、布林带策略
布林线:由三条轨道线组成,其中上下两条线为价格的压力线、支撑线,在两条线之间为均线
计算公式:
中间线=20日均线
up线=20日均线+N×SD(20日收盘价标准差)
down线=20日均线-N×SD(20日收盘价标准差)
如果涨到压力线,会跌,卖出
如果跌到支撑线,会涨,买入
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)