mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-09 14:00:55 +08:00
black format
This commit is contained in:
@@ -50,7 +50,6 @@ class HighFreqHandler(DataHandlerLP):
|
||||
drop_raw=drop_raw,
|
||||
)
|
||||
|
||||
|
||||
def get_feature_config(self):
|
||||
fields = []
|
||||
names = []
|
||||
@@ -98,7 +97,7 @@ class HighFreqHandler(DataHandlerLP):
|
||||
)
|
||||
]
|
||||
names += ["$open", "$high", "$low", "$close", "$vwap"]
|
||||
|
||||
|
||||
fields += [
|
||||
"Ref({0}, 240)/Ref(DayLast({1}), 240)".format(
|
||||
template_if.format(
|
||||
@@ -205,7 +204,9 @@ class HighFreqBacktestHandler(DataHandler):
|
||||
template_paused = "Select(Eq($paused, 0.0), {0})"
|
||||
template_fillnan = "FFillNan({0})"
|
||||
|
||||
fields += [template_fillnan.format(template_paused.format("$close")),]
|
||||
fields += [
|
||||
template_fillnan.format(template_paused.format("$close")),
|
||||
]
|
||||
names += ["$close0"]
|
||||
fields += [
|
||||
"If(Eq({1}, np.nan), 0, If(Or(Gt({2}, Mul(1.001, {4})), Lt({2}, Mul(0.999, {3}))), 0, {1}))".format(
|
||||
|
||||
@@ -9,7 +9,7 @@ from qlib.data.data import Cal
|
||||
class DayFirst(ElemOperator):
|
||||
def __init__(self, feature):
|
||||
super(DayFirst, self).__init__(feature, "day_first")
|
||||
|
||||
|
||||
def _load_internal(self, instrument, start_index, end_index, freq):
|
||||
_calendar = Cal.get_calender_day(freq=freq)[0]
|
||||
series = self.feature.load(instrument, start_index, end_index, freq)
|
||||
@@ -44,6 +44,7 @@ class Date(ElemOperator):
|
||||
series = self.feature.load(instrument, start_index, end_index, freq)
|
||||
return pd.Series(_calendar[series.index], index=series.index)
|
||||
|
||||
|
||||
class Select(PairOperator):
|
||||
def __init__(self, condition, feature):
|
||||
super(Select, self).__init__(condition, feature, "select")
|
||||
@@ -53,10 +54,11 @@ class Select(PairOperator):
|
||||
series_feature = self.feature_right.load(instrument, start_index, end_index, freq)
|
||||
return series_feature.loc[series_condition]
|
||||
|
||||
|
||||
class IsNull(ElemOperator):
|
||||
def __init__(self, feature):
|
||||
super(IsNull, self).__init__(feature, "isnull")
|
||||
|
||||
def _load_internal(self, instrument, start_index, end_index, freq):
|
||||
series = self.feature.load(instrument, start_index, end_index, freq)
|
||||
return series.isnull()
|
||||
return series.isnull()
|
||||
|
||||
@@ -62,9 +62,9 @@ class HighFreqNorm(Processor):
|
||||
feat_1 = df_values[:, [5, 6, 7, 8, 9, 11]].reshape(-1, 6 * 240)
|
||||
|
||||
df_new_features = pd.DataFrame(
|
||||
data=np.concatenate((feat, feat_1), axis=1),
|
||||
index=idx,
|
||||
columns=["FEATURE_%d" % i for i in range(12 * 240)],
|
||||
data=np.concatenate((feat, feat_1), axis=1),
|
||||
index=idx,
|
||||
columns=["FEATURE_%d" % i for i in range(12 * 240)],
|
||||
).sort_index()
|
||||
|
||||
return df_new_features
|
||||
return df_new_features
|
||||
|
||||
@@ -24,6 +24,7 @@ from qlib.data.data import Cal
|
||||
|
||||
from highfreq_ops import DayFirst, DayLast, FFillNan, Date, Select, IsNull
|
||||
|
||||
|
||||
def save_dataset(dataset, path: [Path, str]):
|
||||
"""
|
||||
save dataset to path
|
||||
@@ -35,6 +36,7 @@ def save_dataset(dataset, path: [Path, str]):
|
||||
"""
|
||||
dataset.to_pickle(path=path)
|
||||
|
||||
|
||||
def load_dataset(path: [Path, str], init_type=DataHandlerLP.IT_LS):
|
||||
"""
|
||||
load dataset from path
|
||||
@@ -48,7 +50,7 @@ def load_dataset(path: [Path, str], init_type=DataHandlerLP.IT_LS):
|
||||
- if `init_type` == DataHandlerLP.IT_FIT_SEQ:
|
||||
|
||||
the input of `DataHandlerLP.fit` will be the output of the previous processor
|
||||
|
||||
|
||||
- if `init_type` == DataHandlerLP.IT_FIT_IND:
|
||||
|
||||
the input of `DataHandlerLP.fit` will be the original df
|
||||
@@ -57,17 +59,24 @@ def load_dataset(path: [Path, str], init_type=DataHandlerLP.IT_LS):
|
||||
|
||||
The state of the object has been load by pickle
|
||||
"""
|
||||
fd = open(path, 'rb')
|
||||
fd = open(path, "rb")
|
||||
dataset = pickle.load(fd)
|
||||
dataset.init(init_type=init_type)
|
||||
fd.close()
|
||||
return dataset
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
# use default data
|
||||
provider_uri = "/mnt/v-xiabi/data/qlib/high_freq" # target_dir
|
||||
qlib.init(provider_uri=provider_uri, custom_ops=[DayFirst, DayLast, FFillNan, Date, Select, IsNull], redis_port=233, region=REG_CN, auto_mount=False)
|
||||
qlib.init(
|
||||
provider_uri=provider_uri,
|
||||
custom_ops=[DayFirst, DayLast, FFillNan, Date, Select, IsNull],
|
||||
redis_port=233,
|
||||
region=REG_CN,
|
||||
auto_mount=False,
|
||||
)
|
||||
|
||||
MARKET = "csi300"
|
||||
BENCHMARK = "SH000300"
|
||||
@@ -134,4 +143,3 @@ if __name__ == "__main__":
|
||||
Cal.get_calender_day(freq="1min") # TO FIX: load the calendar day for cache
|
||||
dataset = init_instance_by_config(task["dataset"])
|
||||
dataset_backtest = init_instance_by_config(task["dataset_backtest"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user