金融/证券/会计/公司治理等方向的编程课程
从最高点到之后的最低点, 所有回撤中幅度最大的
日期 | 10-25 | 10-26 | 10-27 | 10-28 | 10-29 | 10-30 | 10-31 |
资产 | 1万 | 2万 | 1万5 | 1万 | 2万 | 3万 | 2万 |
28号回撤了50%, 31号回撤了33%, 最大回撤率50%
import pandas as pd
data1 = [['2016-07-04', 5000000.00], ['2016-07-05', 4835769.38], ['2016-07-06', 5036838.71], ['2016-07-07', 4881597.25], ['2016-07-08', 5099866.54], ['2016-07-11', 5158305.86], ['2016-07-12', 5379073.81], ['2016-07-13', 5174389.13], ['2016-07-14', 5235795.42], ['2016-07-15', 5050606.65], ['2016-07-18', 5153493.81], ['2016-07-19', 5410731.34], ['2016-07-20', 5233841.72], ['2016-07-21', 5245693.42], ['2016-07-22', 5089468.61], ['2016-07-25', 5368514.36], ['2016-07-26', 5640139.80], ['2016-07-27', 5285918.31], ['2016-07-28', 5669054.75], ['2016-07-29', 5954109.95], ['2016-08-01', 5363140.57], ['2016-08-02', 5463225.81], ['2016-08-03', 5535254.28], ['2016-08-04', 5580878.38], ['2016-08-05', 5583599.43], ['2016-08-08', 5532192.08], ['2016-08-09', 5651183.49], ['2016-08-10', 5668028.27], ['2016-08-11', 5595957.57], ['2016-08-12', 5602812.38], ['2016-08-15', 5668724.48], ['2016-08-16', 5617281.02], ['2016-08-17', 5715316.60], ['2016-08-18', 5770128.40], ['2016-08-19', 5732294.20], ['2016-08-22', 5751937.92], ['2016-08-23', 5874266.66], ['2016-08-24', 5853859.26], ['2016-08-25', 5880573.21], ['2016-08-26', 5890153.76], ['2016-08-29', 5894311.85], ['2016-08-30', 5852469.53], ['2016-08-31', 5834809.34], ['2016-09-01', 5937106.72], ['2016-09-02', 5848258.50], ['2016-09-05', 5835814.67], ['2016-09-06', 5919762.95], ['2016-09-07', 5945231.91], ['2016-09-08', 5996092.42]]
data2 = [['2016-07-04', 5000000.00], ['2016-07-05', 5035769.38], ['2016-07-06', 5036838.71], ['2016-07-07', 5081597.25], ['2016-07-08', 5099866.54], ['2016-07-11', 5158305.86], ['2016-07-12', 5179073.81], ['2016-07-13', 5174389.13], ['2016-07-14', 5135795.42], ['2016-07-15', 5150606.65], ['2016-07-18', 5153493.81], ['2016-07-19', 5210731.34], ['2016-07-20', 5233841.72], ['2016-07-21', 5245693.42], ['2016-07-22', 5289468.61], ['2016-07-25', 5368514.36], ['2016-07-26', 5440139.80], ['2016-07-27', 5485918.31], ['2016-07-28', 5469054.75], ['2016-07-29', 5454109.95], ['2016-08-01', 5463140.57], ['2016-08-02', 5463225.81], ['2016-08-03', 5535254.28], ['2016-08-04', 5580878.38], ['2016-08-05', 5583599.43], ['2016-08-08', 5532192.08], ['2016-08-09', 5651183.49], ['2016-08-10', 5668028.27], ['2016-08-11', 5595957.57], ['2016-08-12', 5602812.38], ['2016-08-15', 5668724.48], ['2016-08-16', 5617281.02], ['2016-08-17', 5715316.60], ['2016-08-18', 5770128.40], ['2016-08-19', 5732294.20], ['2016-08-22', 5751937.92], ['2016-08-23', 5874266.66], ['2016-08-24', 5853859.26], ['2016-08-25', 5880573.21], ['2016-08-26', 5890153.76], ['2016-08-29', 5894311.85], ['2016-08-30', 5852469.53], ['2016-08-31', 5834809.34], ['2016-09-01', 5937106.72], ['2016-09-02', 5848258.50], ['2016-09-05', 5835814.67], ['2016-09-06', 5919762.95], ['2016-09-07', 5945231.91], ['2016-09-08', 5996092.42]]
def calculate_max_retracement(data):
df = pd.DataFrame(data, columns=['date', 'liquidate'])
global high_price
high_price = 0
retracements = df.apply(calculate_retracement, axis=1)
return max(retracements)
def calculate_retracement(row):
global high_price
if high_price == 0:
high_price = row['liquidate']
if row['liquidate'] > high_price:
high_price = row['liquidate']
return 1 - row['liquidate'] / high_price
max1 = calculate_max_retracement(data1)
max2 = calculate_max_retracement(data2)
print(max1, max2)
data1与data2的最大回撤分别是 0.09925402536444594 0.01706084373703154
我近期一边整理免费课程,也会推出更多的免费视频,方便大家结合查看学习
如果你对我的课程感兴趣,欢迎与我联系,提供一对一教学,也可以帮助实现特定程序
了解清楚目标后,第一次可以先听课后付款
如果有概念没有理解清楚,随时可以询问,不再收费