我正在尝试计算股票系列的下跌持续时间和恢复时间。我可以计算回撤,但很难确定每次回撤的持续时间和恢复时间。到目前为止我有这个代码:
import pandas as pd
import pickle
import xlrd
import numpy as np
np.random.seed(0)
df = pd.Series(np.random.randn(2500)*0.7+0.05, index=pd.date_range('1/1/2000', periods=2500, freq='D'))
df= 100*(1+df/100).cumprod()
df=pd.DataFrame(df)
df.columns = ['close']
df['ret'] = df.close/df.close[0]
df['modMax'] = df.ret.cummax()
df['modDD'] = 1-df.ret.div(df['modMax'])
groups = df.groupby(df['modMax'])
dd = groups['modMax','modDD'].apply(lambda g: g[g['modDD'] == g['modDD'].max()])
top10dd = dd.sort_values('modDD', ascending=False).head(10)
top10dd
Run Code Online (Sandbox Code Playgroud)
这给出了该系列中 10 个最高的回撤,但我还想知道回撤的持续时间和恢复时间。
其中人员到代码是一对多的关系。
我有一个函数,它返回一个 Person 记录,如果代码person.codes返回与该 Person 关联的所有代码的 NSSet。我遇到的问题是如何使用 NSSet。
person.codes.allObjects.first 返回此数据:
<Codes: 0x60000213cb40> (entity: Codes; id: 0xb978dbf34ddb849 <x-coredata://A2B634E4-E136-48E1-B2C5-82B6B68FBE44/Codes/p1> ; data: {
code = 4LQ;
number = 1;
whosAccount = "0xb978dbf34ddb869 <x-coredata://A2B634E4-E136-48E1-B2C5-82B6B68FBE44/Person/p1>";
})
Run Code Online (Sandbox Code Playgroud)
我想如果我使用person.codes.allObjects.firsttype Codes,我将能够访问codeandnumber元素,但我收到一个错误:error: value of type 'Any?' has no member 'number'
另外,我如何在此数据集中搜索特定代码或数字。
我很欣赏这可能是一个简单的问题,但搜索并阅读了文档无济于事。我怀疑可能基础知识还不够。
我有一个包含以下代码的 CoreDataHandler 类:
class CoreDataHandler: NSObject {
//static let sharedInstance = CoreDataHandler()
private static func getContext() -> NSManagedObjectContext {
let appDelegate = NSApplication.shared.delegate as! AppDelegate …Run Code Online (Sandbox Code Playgroud)