Risk-Reward Ratio 盈亏比 python

Risk-Reward Ratio 盈亏比,指的是在进行投资或交易时,预期收益与风险的比值,即期望获利的金额与可能的损失金额之比。通常情况下,盈亏比为1:2或1:3,表示预期获利的金额是可能损失的金额的2倍或3倍。盈亏比越高,说明预期的收益相对较大,但对应的风险也相对较高。交易员们在进行交易决策时,往往会考虑盈亏比,以确定是否值得进入该交易。

一、盈亏比公式

盈亏比是指在交易中获得的盈利与亏损之比,是一个衡量交易风险和收益的重要指标。一般来说,盈亏比越高,表明风险收益比越好,交易者的交易效率越高。

具体计算盈亏比的方法为:

盈亏比 = 获利交易总额 ÷ 亏损交易总额

其中,获利交易总额指所有获利交易的盈利之和,亏损交易总额指所有亏损交易的亏损之和。

举个例子,假设某个交易者进行了10笔交易,其中有7笔盈利,3笔亏损,盈利总额为2000元,亏损总额为500元,则该交易者的盈亏比为:

盈亏比 = 2000 ÷ 500 = 4

换言之,该交易者的盈利交易总额是亏损交易总额的4倍,盈亏比为4。

需要注意的是,盈亏比只是衡量交易风险和收益的一个指标,不能作为唯一的依据来决定交易是否合适。交易者还需结合其他因素,如市场行情、资金规模、交易周期等,综合考虑来制定交易策略。

二、盈亏比的使用时机

盈亏比是一种常用的风险控制指标,主要用于判断一个交易策略的盈利能力和风险水平。一般来说,在制定交易计划时,需要考虑盈亏比,确定合理的止盈和止损水平。

具体来说,盈亏比可以在以下情况下使用:

  • 确定止盈和止损水平:在交易计划中,一般会设置止盈和止损点位,以控制风险和获得盈利。盈亏比可以帮助交易者确定一个合理的止盈和止损水平,以达到最大化收益和最小化风险的目的。

  • 评估交易策略:在进行交易策略的评估和比较时,盈亏比可以作为一个重要的指标,帮助交易者判断不同策略的盈利能力和风险水平,从而选择最优的交易策略。

  • 监控交易风险:在交易过程中,盈亏比也可以作为一个监控交易风险的指标,帮助交易者识别和控制交易风险,及时调整交易策略,避免出现大的亏损。

盈亏比的计算方法为:

盈亏比 = 总盈利金额 / 总亏损金额

其中,总盈利金额是所有盈利交易的收益之和,总亏损金额是所有亏损交易的损失之和。

例如,某交易者在过去30天内进行了20次交易,其中盈利交易10次,亏损交易10次,总盈利金额为2000元,总亏损金额为1000元,则盈亏比为:

盈亏比 = 2000 / 1000 = 2

这意味着,这个交易者每赚1元就亏损了0.5元,盈亏比为2,表明他的盈利能力比亏损能力更强。

三、一支股票怎么计算盈亏比

计算盈亏比需要考虑买入价格、卖出价格以及交易成本等因素。具体计算公式为:

盈亏比 = (卖出价格 - 买入价格)/ 买入价格 * 100% - 交易成本

其中,卖出价格为卖出时的股价,买入价格为买入时的股价,交易成本包括佣金、印花税、过户费等费用。

举个例子,假设某股票的买入价格为10元,卖出价格为12元,佣金为20元,印花税为0.1%。则盈亏比为:

盈亏比 = (12 - 10) / 10 * 100% - (20 + 10 * 0.1%) = 16.9%

这表示投资者在该交易中获得了16.9%的收益。

四、预估盈亏比可选股

预估盈亏比可以用来选股,但需要结合其他因素进行综合分析。以下是一个简单的计算盈亏比的方法:

1. 选取一支股票,并确定买入价和目标卖出价。
2. 计算止损价,即买入价乘以一个安全系数(如0.95)。
3. 计算预期盈利,即目标卖出价减去买入价。
4. 计算预期亏损,即买入价减去止损价。
5. 计算盈亏比,即预期盈利除以预期亏损。

例如,假设某股票买入价为10元,目标卖出价为12元,安全系数为0.95,则止损价为9.5元。预期盈利为2元,预期亏损为0.5元,盈亏比为4。

需要注意的是,预估盈亏比只是一种参考,实际交易中还需要考虑股票的风险、市场情况、财务数据等多方面因素。

五、python预估盈亏比

一个简单的使用Python计算预估盈亏比的示例代码,需要安装pandas和yfinance库。

代码中,首先使用yfinance库获取股票数据,然后计算每日的收益率。接着计算收益率的均值和标准差,并用均值除以标准差得到预估盈亏比。最后输出结果。

需要注意的是,该代码只是一个简单的示例,实际应用时需要考虑更多的因素,并使用更为复杂的模型进行预估。

import yfinance as yf
import pandas as pd

# 获取股票数据
symbol = 'AAPL'  # 股票代码,以苹果公司为例
stock = yf.Ticker(symbol)
df = stock.history(period='1y')

# 计算收益率
df['daily_return'] = df['Close'].pct_change()

# 计算均值和标准差
mean_return = df['daily_return'].mean()
std_return = df['daily_return'].std()

# 预估盈亏比
win_loss_ratio = mean_return / std_return

# 输出结果
print(f"预估盈亏比为: {win_loss_ratio:.2f}")

如果要将250天均线也加入到预估盈亏比的计算中,可以按照以下步骤进行:

  1. 在上面的代码中,加入计算250天均线的代码,可以使用pandas库的rolling()函数来实现。具体来说,可以使用如下代码计算250天均线:
df['ma250'] = df['Close'].rolling(window=250).mean()
  1. 在计算盈亏比时,可以增加一条判断语句,如果当日收盘价高于250天均线,则使用收盘价计算盈亏比;否则,使用250天均线计算盈亏比。具体来说,可以使用如下代码:
if df['Close'].iloc[-1] > df['ma250'].iloc[-1]:
    profit_ratio = (df['Close'].iloc[-1] - buy_price) / buy_price
else:
    profit_ratio = (df['ma250'].iloc[-1] - buy_price) / buy_price

python stock 量化投资和股票分析 mpl_finance 画图

python stock 量化投资和股票分析,python的numpy、pandas包写上几行代码,再用matplotlib画上几张图,用sklearn(scikit-learn)包的模型画个传统机器学习的模型又或用tensorflow或者pytorch等框架套入深度学习,云云如是

python stock 这两个词原本是互不相干的,不知具体从何时起,量化投资股票分析数据模型python数据分析等等各种词汇的联系越来越多,从而使得很多所谓的交易高手股市技术流股票大佬在各个平台来吹嘘自己的交易策略有多么的厉害。
拿着python的numpypandas包写上几行很多小白看不明白的代码,再用matplotlib画上几张图,就说自己的交易策略;稍微知道的多就会在用sklearn(scikit-learn)包的模型画个传统机器学习的模型;再厉害一些的呢就用tensorflow或者pytorch等框架套入数据做个深度学习的模型,云云如是… 基本的教学大纲差不多是下边这样的。
我和我的小伙伴都惊呆了...
呆!股市大狗在此,哪里逃…

python stock 股票数据来源

  • 合法爬虫
  • 现成的python包数据调用,如yfinance
  • 臆想出来的

雅虎的yfinance还是很好用的,如果读者没法使用就可以参考笔者之前的爬虫文章去正规的网站上爬取股票数据,至于怎么做到合法呢?就是看网站域名下的robots.txt文件是什么样的,比如很多人都是知道的东方财富网,我们直接在它的根域名后边跟一个robots.txt,在浏览器地址栏中加载看一下

https://www.eastmoney.com/robots.txt

而浏览器加载的结果如下,我们看到User-agent没有具体的指向,并且Disallow 又没有说不允许谁来爬,所以呢爬TM的没问题。

User-agent: *
Allow: /
Sitemap: http://www.eastmoney.com/sitemap.xml

数据初探和哔哩哔哩

如上文所说我们用yfinance加载数据,用特斯拉(TSLA)的日交易数据来演示一哈。

import yfinance as yf

tsla= yf.Ticker("tsla")
data = tsla.history(start="2020-06-01", end="2022-06-30", interval="1d")
print(data.head(2))
print(data.columns)
                           Date        Open  ...  Dividends  Stock Splits
2020-06-01  2020-06-01 00:00:00  171.600006  ...          0           0.0
2020-06-02  2020-06-02 00:00:00  178.940002  ...          0           0.0

Index(['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Dividends',
       'Stock Splits'],
      dtype='object')

到了这里大佬们会比哔哩哔哩一下这些数据都是啥,比如这些数据的含义啊,什么日开盘价、收盘价、交易量等等,然后会在介绍一下,要用什么来计算指标,然后又用这些指标来达到什么样的效果。自己知道且有耐心的老师还会给说一下这些指标具体的数学本质是啥。

matplotlib画个MACD图

先计算上线布林线,整个过程都是pandas dataframe的常规计算,没有什么特殊的,如果非要摆一摆就是把这个MACD的含义啊,pandas的使用啊,数学意义啊,股市指标价值啊,巴拉巴拉讲上几节课。

import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt
plt.style.use('seaborn-colorblind')

# 短线EMA
shortEMA = history.Close.ewm(span=12, adjust=False).mean()
# 长线EMA
longEMA = history.Close.ewm(span=26, adjust=False).mean()
# MACD
MACD = shortEMA - longEMA

single_line = MACD.ewm(span=9, adjust=False).mean()

plt.figure(figsize=(12.2, 4.5))
plt.plot(history.index, MACD, label='TSLA MACD', color='r')
plt.plot(history.index, single_line, label='Single Line', color='b')
plt.xticks(rotation=45)
plt.legend(loc='upper left')
plt.show()
matplotlib画的特斯拉MACD图
MACD线

mplfinance 画个K线图

malfinace 本身以前是matplotlib的一个模块,但是从19年开始独立出来了,所以读者如果用的是较新的python环境必须的从新安装一下,模块也好,包也罢都可能会是另一个知识点,因为小白们是不知道怎么用这些工具的,得学啊。

==================================

   WARNING: `mpl_finance` is deprecated:

    Please use `mplfinance` instead (no hyphen, no underscore).

    To install: `pip install --upgrade mplfinance` 

   For more information, see: https://pypi.org/project/mplfinance/

======================================

BOLLING 计算

data['SMA'] = data['Close'].rolling(window=20).mean()
# 计算 standard deviation
data['STD'] = data['Close'].rolling(window=20).std()
data['UpperLine'] = data['SMA'] + (data['STD'] * 2)
data['LowerLine'] = data['SMA'] - (data['STD'] * 2)
add_plot = mpf.make_addplot(data[['UpperLine', 'LowerLine']],linestyle='dashdot')
mpf.plot(data, addplot=add_plot, type='ohlc', volume=True)
malfinace 实现特斯拉的日K线图
malfinace K线图

机器学习做个模型吧

嘿嘿嘿,笔者不想在此篇文章里写模型的代码了,至此算是骗个炮吧:stuck_out_tongue_winking_eye:,以后空了再来后续骗。

股票概念-美股 道琼斯、纳斯达克和标普500指数基本理解

美股有很多的朋友关注,肯定经常会听到道琼斯纳斯达克、标普500指数等名词,但是刚入门的小伙伴肯定就这些名词只闻其音不知其意,本篇对这些专业名词做一下基本的概念理解介绍,希望对铁汁们有用处。简单地说:道琼斯里主要是工业股,纳斯达克是创业板 道琼斯是集合竞价交易,纳斯达克是做市商制度。

1、道琼斯

道琼斯指数是股票价格平均指数,是世界上最有影响、使用最广的股价指数。它以在纽约证券交易所挂牌上市的一部分有代表性的公司股票作为编制对象,由四种股价平均指数构成。

1896年,华尔街日报和道琼斯公司的创始人——查尔斯·道创造了这个指数。全名是道琼斯工业平均指数,简称“道指”,包含了美国股市规模最大最知名的30家上市公司。

当时美国正处于第二次工业革命时期,所以道琼斯指数的成分股大部分是工业公司。

道琼斯指数最初包含12家公司,由于时代变迁,如今只剩通用公司一家还在指数中。
目前指数的行业分布比较均衡,过去的大头工业目前只占比15%左右。

道琼斯行业占比

2、纳斯达克

纳斯达克指数是全美证券商协会自动报价系统(National Association of Securities Dealers Automated Quotations)英文缩写,但目前已成为纳斯达克股票市场的代名词。信息和服务业的兴起催生了纳斯达克。

纳斯达克始建于1971年,是一个完全采用电子交易、为新兴产业提供竞争舞台、自我监管、面向全球的股票市场。纳斯达克是全美也是世界最大的股票电子交易市场。

美国股市有两个证券交易场所:纽约交易所和纳斯达克交易所。
纳斯达克指数全称纳斯达克综合指数,简称“纳指”,是反映纳斯达克交易所市场行情的综合指数。这个指数囊括了5000多家上市公司。

这里要注意:纳斯达克指数 ≠ 纳斯达克100指数,纳斯达克100只包含100家公司。

3、标普500

S&P500股价指数乃是由美国McGraw Hill公司,自纽约证交所、美国证交所及上柜等股票中选出500支,其中包含400家工业类股、40家公用事业、40家金融类股及20家运输类股,经由股本加权后所得到之指数,以1941至1943这段期间的股价平均为基数10,并在1957年由S&P公司加以推广提倡。

因为S&P指数几乎占纽约证交所股票总值80%以上,且在选股上考量了市值、流动性及产业代表性等因素,所以此指数货一推出,就极受机构法人与基金经理人的青睐,成为评量操作绩效的重要参考指标。

标普500即标准普尔500指数,是由美股上市公司中选取市值最大流动性最好的500家公司组成。和道琼斯指数一样,标普500覆盖美股两个交易所,但包含股票数量比前者多。如果只能选择一个指数投资美股,那就选标普500吧。

4、总结

美股指数区别
  • 这三个美股指数所包含的股票数量不同;覆盖的市场范围不同;涵盖的行业分布不同。道琼斯指数简称“道指”,其中包含30只股票,覆盖了纽交所和纳斯达克交易所;纳斯达克指数简称“纳指”,股票数量最多,有5000多只,且只覆盖了纳斯达克交易所;标普500也覆盖了两所美股交易所,但是包含的股票数量有500只。
  • 道琼斯指数、纳斯达克指数和标普500都是衡量美国股市的综合指标,都反映了美国股市的行情,其中道琼斯指数是世界上历史最悠久的股票指数,是以股价来算的。道琼斯与标普500的行业分布相较来说更加均衡,而纳斯达克指数中则更多的是信息科技类型的股票。道指与纳指更适合进行美股行情的观察,而标普500则更适合作为投资标的。但道指和纳指都不如标普500具有代表性,标普500也是股神巴菲特更加推崇的,如果只能选择一个指数进行美股的投资就选择标普500。

道琼斯和纳斯达克综合指数适合作为观察指标,而标普500和纳斯达克100指数则可以作为投资标的。