SYMBOL INDEX (3297 symbols across 67 files) FILE: analysts.py function run (line 23) | def run(path): FILE: assessments.py class Assessment (line 6) | class Assessment(): method __init__ (line 7) | def __init__(self, init_assets=1000000): method reset (line 12) | def reset(self): method calculate (line 16) | def calculate(self, context: CtaContext): method finish (line 20) | def finish(self): method reward (line 25) | def reward(self) -> float: method done (line 30) | def done(self) -> float: method curr_assets (line 35) | def curr_assets(self) -> float: method init_assets (line 39) | def init_assets(self) -> float: class SimpleAssessment (line 43) | class SimpleAssessment(Assessment): # 借鉴了neofinrl method reset (line 46) | def reset(self): method calculate (line 53) | def calculate(self, context: CtaContext): method finish (line 161) | def finish(self): method reward (line 190) | def reward(self) -> float: method rewards (line 195) | def rewards(self) -> float: method done (line 199) | def done(self) -> float: method curr_assets (line 203) | def curr_assets(self) -> float: FILE: compare_elegantrl.py class Wt4RLSimpleTrainer (line 19) | class Wt4RLSimpleTrainer(SimpleCTASubProcessEnv): method state_dim (line 25) | def state_dim(self): method action_dim (line 29) | def action_dim(self): method __init__ (line 33) | def __init__(self): class Wt4RLSimpleEvaluator (line 76) | class Wt4RLSimpleEvaluator(SimpleCTASubProcessEnv): method state_dim (line 82) | def state_dim(self): method action_dim (line 86) | def action_dim(self): method __init__ (line 90) | def __init__(self): # mode=3可以打开详细调试模式 function run (line 144) | def run(): function debug (line 149) | def debug(count): function train (line 169) | def train(): function test (line 231) | def test(): FILE: compare_rllib.py function run (line 33) | def run(): function train (line 37) | def train(): function test (line 194) | def test(path): FILE: compare_sb3.py function run (line 14) | def run(): function debug (line 19) | def debug(): function train (line 122) | def train(): function test (line 243) | def test(path): FILE: dataset_from_storage.py class DataReader (line 10) | class DataReader: method __len__ (line 13) | def __len__(self) -> int: method set_bars (line 16) | def set_bars(self, data: pd.DataFrame) -> tuple: method get_bars (line 31) | def get_bars(self, curBar: POINTER(WTSBarStruct), idx: int) -> bool: FILE: elegantrl/agent.py class AgentBase (line 17) | class AgentBase: method __init__ (line 18) | def __init__(self, net_dim=256, state_dim=8, action_dim=2, reward_scal... method init (line 68) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_action (line 108) | def select_action(self, state: np.ndarray) -> np.ndarray: method select_actions (line 114) | def select_actions(self, state: torch.Tensor) -> torch.Tensor: method explore_one_env (line 126) | def explore_one_env(self, env, target_step: int) -> list: method explore_vec_env (line 158) | def explore_vec_env(self, env, target_step: int) -> list: method update_net (line 188) | def update_net(self, buffer, batch_size: int, repeat_times: float, sof... method optim_update (line 197) | def optim_update(self, optimizer, objective, params): # plan todo par... method soft_update (line 230) | def soft_update(target_net, current_net, tau): method save_or_load_agent (line 240) | def save_or_load_agent(self, cwd: str, if_save: bool): method convert_trajectory (line 264) | def convert_trajectory(self, traj_list: list) -> list: # off-policy class AgentDQN (line 282) | class AgentDQN(AgentBase): # [ElegantRL.2021.10.25] method __init__ (line 283) | def __init__(self): method init (line 289) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_actions (line 304) | def select_actions(self, states: torch.Tensor) -> torch.Tensor: # for... method explore_one_env (line 317) | def explore_one_env(self, env, target_step) -> list: method explore_vec_env (line 340) | def explore_vec_env(self, env, target_step) -> list: method update_net (line 362) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... method get_obj_critic_raw (line 372) | def get_obj_critic_raw(self, buffer, batch_size): method get_obj_critic_per (line 382) | def get_obj_critic_per(self, buffer, batch_size): class AgentDoubleDQN (line 396) | class AgentDoubleDQN(AgentDQN): # [ElegantRL.2021.10.25] method __init__ (line 397) | def __init__(self): method init (line 401) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_actions (line 414) | def select_actions(self, states: torch.Tensor) -> torch.Tensor: # for... method get_obj_critic_raw (line 424) | def get_obj_critic_raw(self, buffer, batch_size) -> (torch.Tensor, tor... method get_obj_critic_per (line 434) | def get_obj_critic_per(self, buffer, batch_size): class AgentDDPG (line 451) | class AgentDDPG(AgentBase): method __init__ (line 452) | def __init__(self): method init (line 462) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_actions (line 477) | def select_actions(self, state: torch.Tensor) -> torch.Tensor: method update_net (line 484) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... method get_obj_critic_raw (line 502) | def get_obj_critic_raw(self, buffer, batch_size): method get_obj_critic_per (line 511) | def get_obj_critic_per(self, buffer, batch_size): class AgentTD3 (line 525) | class AgentTD3(AgentBase): method __init__ (line 526) | def __init__(self): method init (line 537) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method update_net (line 550) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... method get_obj_critic_raw (line 569) | def get_obj_critic_raw(self, buffer, batch_size): method get_obj_critic_per (line 579) | def get_obj_critic_per(self, buffer, batch_size): class AgentSAC (line 598) | class AgentSAC(AgentBase): # [ElegantRL.2021.10.25] method __init__ (line 599) | def __init__(self): method init (line 611) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_actions (line 630) | def select_actions(self, state: torch.Tensor) -> torch.Tensor: method update_net (line 638) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau): method get_obj_critic_raw (line 669) | def get_obj_critic_raw(self, buffer, batch_size, alpha): method get_obj_critic_per (line 681) | def get_obj_critic_per(self, buffer, batch_size, alpha): class AgentModSAC (line 698) | class AgentModSAC(AgentSAC): # Modified SAC using reliable_lambda and T... method __init__ (line 699) | def __init__(self): method update_net (line 705) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau): class AgentPPO (line 743) | class AgentPPO(AgentBase): method __init__ (line 744) | def __init__(self): method init (line 756) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_action (line 774) | def select_action(self, state: np.ndarray) -> np.ndarray: method select_actions (line 780) | def select_actions(self, state: torch.Tensor) -> tuple: method explore_one_env (line 790) | def explore_one_env(self, env, target_step): method explore_vec_env (line 813) | def explore_vec_env(self, env, target_step): method update_net (line 837) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau): method get_reward_sum_raw (line 883) | def get_reward_sum_raw(self, buf_len, buf_reward, buf_mask, buf_value)... method get_reward_sum_gae (line 893) | def get_reward_sum_gae(self, buf_len, ten_reward, ten_mask, ten_value)... method splice_trajectory (line 907) | def splice_trajectory(self, traj_list, last_done_list): method convert_trajectory (line 916) | def convert_trajectory(self, traj_list): class AgentDiscretePPO (line 930) | class AgentDiscretePPO(AgentPPO): method __init__ (line 931) | def __init__(self): method explore_one_env (line 935) | def explore_one_env(self, env, target_step): method explore_vec_env (line 958) | def explore_vec_env(self, env, target_step): class AgentA2C (line 983) | class AgentA2C(AgentPPO): # A2C.2015, PPO.2016 method __init__ (line 984) | def __init__(self): method update_net (line 989) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau): class AgentDiscreteA2C (line 1032) | class AgentDiscreteA2C(AgentA2C): method __init__ (line 1033) | def __init__(self): method explore_one_env (line 1037) | def explore_one_env(self, env, target_step): method explore_vec_env (line 1060) | def explore_vec_env(self, env, target_step): class AgentStep1AC (line 1085) | class AgentStep1AC(AgentBase): method __init__ (line 1086) | def __init__(self): method init (line 1095) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_actions (line 1109) | def select_actions(self, state: torch.Tensor) -> torch.Tensor: method update_net (line 1113) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... method get_obj_critic_raw (line 1139) | def get_obj_critic_raw(self, buffer, batch_size): method get_obj_critic_per (line 1148) | def get_obj_critic_per(self, buffer, batch_size): class AgentShareAC (line 1164) | class AgentShareAC(AgentBase): # IAC (InterAC) waiting for check method __init__ (line 1165) | def __init__(self): method update_net (line 1174) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... class AgentShareSAC (line 1219) | class AgentShareSAC(AgentSAC): # Integrated Soft Actor-Critic method __init__ (line 1220) | def __init__(self): method init (line 1228) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method update_net (line 1254) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... class AgentSharePPO (line 1293) | class AgentSharePPO(AgentPPO): method __init__ (line 1294) | def __init__(self): method init (line 1298) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method update_net (line 1317) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau): class AgentShareA2C (line 1364) | class AgentShareA2C(AgentSharePPO): method update_net (line 1365) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau): class AgentShareStep1AC (line 1409) | class AgentShareStep1AC(AgentBase): method __init__ (line 1410) | def __init__(self): method init (line 1418) | def init(self, net_dim=256, state_dim=8, action_dim=2, reward_scale=1.... method select_actions (line 1446) | def select_actions(self, state: torch.Tensor) -> torch.Tensor: method update_net (line 1450) | def update_net(self, buffer, batch_size, repeat_times, soft_update_tau... method get_obj_critic_raw (line 1480) | def get_obj_critic_raw(self, buffer, batch_size): method get_obj_critic_per (line 1489) | def get_obj_critic_per(self, buffer, batch_size): class OrnsteinUhlenbeckNoise (line 1505) | class OrnsteinUhlenbeckNoise: # NOT suggest to use it method __init__ (line 1506) | def __init__(self, size, theta=0.15, sigma=0.3, ou_noise=0.0, dt=1e-2): method __call__ (line 1526) | def __call__(self) -> float: FILE: elegantrl/demo.py function demo_continuous_action_off_policy (line 10) | def demo_continuous_action_off_policy(): # [ElegantRL.2021.10.10] function demo_continuous_action_on_policy (line 96) | def demo_continuous_action_on_policy(): # [ElegantRL.2021.10.13] function demo_discrete_action_off_policy (line 177) | def demo_discrete_action_off_policy(): # [ElegantRL.2021.10.10] function demo_discrete_action_on_policy (line 205) | def demo_discrete_action_on_policy(): # [ElegantRL.2021.10.12] function demo_pixel_level_on_policy (line 233) | def demo_pixel_level_on_policy(): # 2021-09-07 function demo_isaac_gym_on_policy (line 277) | def demo_isaac_gym_on_policy(): function demo_pybullet_off_policy (line 367) | def demo_pybullet_off_policy(): function demo_pybullet_on_policy (line 465) | def demo_pybullet_on_policy(): function demo_step1_off_policy (line 605) | def demo_step1_off_policy(): FILE: elegantrl/env.py function build_env (line 13) | def build_env(env, if_print=False, env_num=1, device_id=None, args=None, ): function build_eval_env (line 99) | def build_eval_env(eval_env, env, env_num, eval_gpu_id, args, ): class PendulumEnv (line 113) | class PendulumEnv: # [ElegantRL.2021.10.10] method __init__ (line 114) | def __init__(self, env_name): method reset (line 133) | def reset(self): method step (line 136) | def step(self, action): method render (line 141) | def render(self): class PreprocessEnv (line 148) | class PreprocessEnv(gym.Wrapper): # environment wrapper method __init__ (line 149) | def __init__(self, env, if_print=True, if_norm=False): method reset_type (line 175) | def reset_type(self): method step_type (line 178) | def step_type(self, action) -> (np.ndarray, float, bool, dict): method reset_norm (line 181) | def reset_norm(self): method step_norm (line 190) | def step_norm(self, action) -> (np.ndarray, float, bool, dict): function get_gym_env_info (line 204) | def get_gym_env_info(env, if_print) -> (str, int, int, int, bool, float)... function get_avg_std__for_state_norm (line 266) | def get_avg_std__for_state_norm(env_name) -> (np.ndarray, np.ndarray): function demo_get_video_to_watch_gym_render (line 356) | def demo_get_video_to_watch_gym_render(): function train_save_eval_watch (line 432) | def train_save_eval_watch(): FILE: elegantrl/evaluator.py class Evaluator (line 9) | class Evaluator: # [ElegantRL.2021.10.13] method __init__ (line 10) | def __init__(self, cwd, agent_id, eval_env, eval_gap, eval_times1, eva... method evaluate_and_save (line 33) | def evaluate_and_save(self, act, steps, r_exp, log_tuple) -> (bool, bo... method get_r_avg_std_s_avg_std (line 87) | def get_r_avg_std_s_avg_std(rewards_steps_list): method save_or_load_recoder (line 93) | def save_or_load_recoder(self, if_save): method draw_plot (line 101) | def draw_plot(self): function get_episode_return_and_step (line 116) | def get_episode_return_and_step(env, act) -> (float, int): # [ElegantRL... function save_learning_curve (line 149) | def save_learning_curve(recorder=None, cwd='.', save_title='learning cur... FILE: elegantrl/net.py class QNet (line 10) | class QNet(nn.Module): # nn.Module is a standard PyTorch Network method __init__ (line 11) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 18) | def forward(self, state): class QNetDuel (line 22) | class QNetDuel(nn.Module): # Dueling DQN method __init__ (line 23) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 32) | def forward(self, state): class QNetTwin (line 39) | class QNetTwin(nn.Module): # Double DQN method __init__ (line 40) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 49) | def forward(self, state): method get_q1_q2 (line 53) | def get_q1_q2(self, state): class QNetTwinDuel (line 58) | class QNetTwinDuel(nn.Module): # D3QN: Dueling Double DQN method __init__ (line 59) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 72) | def forward(self, state): method get_q1_q2 (line 78) | def get_q1_q2(self, state): class Actor (line 94) | class Actor(nn.Module): method __init__ (line 95) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 102) | def forward(self, state): method get_action (line 105) | def get_action(self, state, action_std): class ActorSAC (line 111) | class ActorSAC(nn.Module): method __init__ (line 112) | def __init__(self, mid_dim, state_dim, action_dim, if_use_dn=False): method forward (line 132) | def forward(self, state): method get_action (line 136) | def get_action(self, state): method get_action_logprob (line 142) | def get_action_logprob(self, state): class ActorPPO (line 181) | class ActorPPO(nn.Module): method __init__ (line 182) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 199) | def forward(self, state): method get_action (line 202) | def get_action(self, state): method get_logprob_entropy (line 210) | def get_logprob_entropy(self, state, action): method get_old_logprob (line 220) | def get_old_logprob(self, _action, noise): # noise = action - a_noise class ActorDiscretePPO (line 225) | class ActorDiscretePPO(nn.Module): method __init__ (line 226) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 243) | def forward(self, state): method get_action (line 246) | def get_action(self, state): method get_logprob_entropy (line 255) | def get_logprob_entropy(self, state, a_int): method get_old_logprob (line 260) | def get_old_logprob(self, a_int, a_prob): class ActorBiConv (line 265) | class ActorBiConv(nn.Module): method __init__ (line 266) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 277) | def forward(self, state): method get_action (line 281) | def get_action(self, state, action_std): class Critic (line 290) | class Critic(nn.Module): method __init__ (line 291) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 298) | def forward(self, state, action): class CriticTwin (line 302) | class CriticTwin(nn.Module): # shared parameter method __init__ (line 303) | def __init__(self, mid_dim, state_dim, action_dim, if_use_dn=False): method forward (line 322) | def forward(self, state, action): method get_q1_q2 (line 326) | def get_q1_q2(self, state, action): class CriticPPO (line 331) | class CriticPPO(nn.Module): method __init__ (line 332) | def __init__(self, mid_dim, state_dim, _action_dim): method forward (line 345) | def forward(self, state): class CriticTwinPPO (line 349) | class CriticTwinPPO(nn.Module): method __init__ (line 350) | def __init__(self, mid_dim, state_dim, _action_dim): method forward (line 366) | def forward(self, state): method get_q1_q2 (line 370) | def get_q1_q2(self, state): class CriticBiConv (line 375) | class CriticBiConv(nn.Module): method __init__ (line 376) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 400) | def forward(self, state, action): class ShareDPG (line 409) | class ShareDPG(nn.Module): # DPG means deterministic policy gradient method __init__ (line 410) | def __init__(self, state_dim, action_dim, mid_dim): method add_noise (line 429) | def add_noise(a, noise_std): method forward (line 439) | def forward(self, s, noise_std=0.0): # actor method critic (line 445) | def critic(self, s, a): method next_q_action (line 452) | def next_q_action(self, s, s_next, noise_std): class ShareSPG (line 473) | class ShareSPG(nn.Module): # SPG means stochastic policy gradient method __init__ (line 474) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 505) | def forward(self, s): method get_action (line 511) | def get_action(self, s): method get_action_logprob (line 522) | def get_action_logprob(self, state): # actor method get_q_logprob (line 539) | def get_q_logprob(self, state): method get_q1_q2 (line 561) | def get_q1_q2(self, s, a): # critic class SharePPO (line 570) | class SharePPO(nn.Module): # Pixel-level state version method __init__ (line 571) | def __init__(self, state_dim, action_dim, mid_dim): method forward (line 595) | def forward(self, s): method get_action_noise (line 600) | def get_action_noise(self, state): method get_q_logprob (line 610) | def get_q_logprob(self, state, noise): method get_q1_q2_logprob (line 617) | def get_q1_q2_logprob(self, state, action): class ShareBiConv (line 629) | class ShareBiConv(nn.Module): method __init__ (line 630) | def __init__(self, mid_dim, state_dim, action_dim): method forward (line 663) | def forward(self, state): # actor method critic (line 669) | def critic(self, state, action): method get_action (line 675) | def get_action(self, state, action_std): # actor, get noisy action class NnReshape (line 686) | class NnReshape(nn.Module): method __init__ (line 687) | def __init__(self, *args): method forward (line 691) | def forward(self, x): class DenseNet (line 695) | class DenseNet(nn.Module): # plan to hyper-param: layer_number method __init__ (line 696) | def __init__(self, lay_dim): method forward (line 703) | def forward(self, x1): # x1.shape==(-1, lay_dim*1) class ConcatNet (line 709) | class ConcatNet(nn.Module): # concatenate method __init__ (line 710) | def __init__(self, lay_dim): method forward (line 723) | def forward(self, x0): class ConvNet (line 731) | class ConvNet(nn.Module): # pixel-level state encoder method __init__ (line 732) | def __init__(self, inp_dim, out_dim, image_size=224): method forward (line 758) | def forward(self, x): class BiConvNet (line 779) | class BiConvNet(nn.Module): method __init__ (line 780) | def __init__(self, mid_dim, inp_dim, out_dim): method forward (line 797) | def forward(self, state): function layer_norm (line 803) | def layer_norm(layer, std=1.0, bias_const=1e-6): class ActorSimplify (line 808) | class ActorSimplify: method __init__ (line 809) | def __init__(self, gpu_id, actor_net): method get_action (line 813) | def get_action(self, state: np.ndarray) -> np.ndarray: function check_actor_network (line 822) | def check_actor_network(): function check_network (line 852) | def check_network(): FILE: elegantrl/replay.py class ReplayBuffer (line 9) | class ReplayBuffer: method __init__ (line 10) | def __init__(self, max_len, state_dim, action_dim, if_use_per, gpu_id=... method append_buffer (line 39) | def append_buffer(self, state, other): # CPU array to CPU array method extend_buffer (line 51) | def extend_buffer(self, state, other): # CPU array to CPU array method sample_batch (line 71) | def sample_batch(self, batch_size) -> tuple: method sample_batch_one_step (line 102) | def sample_batch_one_step(self, batch_size) -> tuple: method update_now_len (line 120) | def update_now_len(self): method print_state_norm (line 125) | def print_state_norm(self, neg_avg=None, div_std=None): # non-essential method td_error_update (line 176) | def td_error_update(self, td_error): method save_or_load_history (line 179) | def save_or_load_history(self, cwd, if_save, buffer_id=0): class ReplayBufferMP (line 221) | class ReplayBufferMP: method __init__ (line 222) | def __init__(self, state_dim, action_dim, max_len, if_use_per, buffer_... method sample_batch (line 237) | def sample_batch(self, batch_size) -> list: method sample_batch_one_step (line 247) | def sample_batch_one_step(self, batch_size) -> list: method update_now_len (line 257) | def update_now_len(self): method print_state_norm (line 263) | def print_state_norm(self, neg_avg=None, div_std=None): # non-essential method td_error_update (line 267) | def td_error_update(self, td_error): method save_or_load_history (line 272) | def save_or_load_history(self, cwd, if_save): class BinarySearchTree (line 277) | class BinarySearchTree: method __init__ (line 285) | def __init__(self, memo_len): method update_id (line 299) | def update_id(self, data_id, prob=10): # 10 is max_prob method update_ids (line 311) | def update_ids(self, data_ids, prob=10): # 10 is max_prob method get_leaf_id (line 328) | def get_leaf_id(self, v): method get_indices_is_weights (line 354) | def get_indices_is_weights(self, batch_size, beg, end): method td_error_update (line 368) | def td_error_update(self, td_error): # td_error = (q-q).detach_().abs() FILE: elegantrl/run.py class Arguments (line 17) | class Arguments: # [ElegantRL.2021.10.21] method __init__ (line 18) | def __init__(self, env, agent): method init_before_training (line 70) | def init_before_training(self): function train_and_evaluate (line 115) | def train_and_evaluate(args, learner_id=0): function get_step_r_exp (line 221) | def get_step_r_exp(ten_reward): function train_and_evaluate_mp (line 228) | def train_and_evaluate_mp(args, agent_id=0): class PipeWorker (line 263) | class PipeWorker: method __init__ (line 264) | def __init__(self, env_num, worker_num): method explore0 (line 270) | def explore0(self, agent): method explore (line 278) | def explore(self, agent): method run (line 292) | def run(self, args, _comm_env, worker_id, learner_id): # not elegant:... class PipeLearner (line 333) | class PipeLearner: method __init__ (line 334) | def __init__(self, learner_num): method comm_data (line 360) | def comm_data(self, data, learner_id, round_id): method comm_network_optim (line 370) | def comm_network_optim(self, agent, learner_id): method run0 (line 387) | def run0(self, args, comm_eva, comm_exp, learner_id=0): method run (line 467) | def run(self, args, comm_eva, comm_exp, learner_id=0): class PipeEvaluator (line 554) | class PipeEvaluator: # [ElegantRL.10.21] method __init__ (line 555) | def __init__(self): method evaluate_and_save_mp (line 559) | def evaluate_and_save_mp(self, agent_act, steps, r_exp, logging_tuple): method run (line 570) | def run(self, args, _learner_id): function get_comm_data (line 689) | def get_comm_data(agent): function get_num_learner (line 708) | def get_num_learner(visible_gpu): function process_safely_terminate (line 715) | def process_safely_terminate(process): function get_optim_parameters (line 724) | def get_optim_parameters(optim): # for avg_update_optim() function avg_update_optim (line 731) | def avg_update_optim(dst_optim, src_optim_param, device): function avg_update_net (line 737) | def avg_update_net(dst_net, src_net_param, device): FILE: envs.py class WtEnv (line 15) | class WtEnv(Env): method __init__ (line 20) | def __init__(self, method _debug_ (line 64) | def _debug_(self): method __step__ (line 67) | def __step__(self): method close (line 76) | def close(self): method reset (line 81) | def reset(self): method step (line 137) | def step(self, action): method assets (line 146) | def assets(self): method analyst (line 149) | def analyst(self, iter: int): method analysts (line 160) | def analysts(self): method _name_ (line 164) | def _name_(self, iter): method __del__ (line 168) | def __del__(self): function __sub_process_worker__ (line 173) | def __sub_process_worker__(pipe: Pipe, _cmd_, _attr_, cli, kwargs): class WtSubProcessEnv (line 194) | class WtSubProcessEnv(Env): method __init__ (line 199) | def __init__(self, cli, **kwargs): method __do__ (line 208) | def __do__(self, cmd, **kwargs): method metadata (line 213) | def metadata(self): method reward_range (line 217) | def reward_range(self): method observation_space (line 221) | def observation_space(self): method action_space (line 225) | def action_space(self): method assets (line 229) | def assets(self): method reset (line 232) | def reset(self): method step (line 235) | def step(self, action): method close (line 239) | def close(self): method __del__ (line 242) | def __del__(self): FILE: envs_simple_cta.py class SimpleCTAEnv (line 8) | class SimpleCTAEnv(WtEnv): method __init__ (line 9) | def __init__(self, method _debug_ (line 73) | def _debug_(self): class SimpleCTASubProcessEnv (line 78) | class SimpleCTASubProcessEnv(WtSubProcessEnv): method __init__ (line 79) | def __init__(self, FILE: features.py class Feature (line 7) | class Feature(): method __init__ (line 17) | def __init__(self, code: str, period: str, roll: int, assets: float = ... method securities (line 37) | def securities(self): method addSecurity (line 40) | def addSecurity(self, code: str): method _subscribe_ (line 45) | def _subscribe_(self, period: str, count: int = 1): method subscribe (line 51) | def subscribe(self, context: CtaContext): method _callback_ (line 67) | def _callback_(self, space: int, period: str, callback, reprocess: REP... method sigmoid (line 75) | def sigmoid(self, value, thresh=30): method observation (line 79) | def observation(self) -> dict: method calculate (line 91) | def calculate(self, context: CtaContext): method obs (line 145) | def obs(self): method price (line 149) | def price(self, period: str, reprocess: REPROCESS = MAXMIN): method volume (line 157) | def volume(self, period: str, reprocess: REPROCESS = MAXMIN): class Indicator (line 166) | class Indicator(Feature): method roc (line 167) | def roc(self, period: str, reprocess: REPROCESS = REPROCESS): method bollinger (line 179) | def bollinger(self, period: str, timeperiod=5, nbdevup=2, nbdevdn=2, r... method sar (line 191) | def sar(self, period: str, acceleration=0, maximum=0, reprocess: REPRO... method trange (line 201) | def trange(self, period: str, reprocess: REPROCESS = MAXMIN): method macd (line 212) | def macd(self, period: str, fastperiod: int = 12, slowperiod: int = 26... method rsi (line 221) | def rsi(self, period: str, fastperiod: int = 6, midperiod: int = 12, s... method dx (line 232) | def dx(self, period: str, timeperiod=14, reprocess: REPROCESS = MAXMIN): method obv (line 243) | def obv(self, period: str, reprocess: REPROCESS = MAXMIN): method kdj (line 253) | def kdj(self, period: str, fastk_period: int = 5, slowk_period: int = ... FILE: reprocess.py class REPROCESS (line 5) | class REPROCESS(): method n (line 7) | def n() -> int: # 定义至少需要多少条数据才能计算 method calculate (line 11) | def calculate(data: np.ndarray) -> np.ndarray: # 计算方法 class ZSCORE (line 15) | class ZSCORE(REPROCESS): method n (line 17) | def n() -> int: method calculate (line 21) | def calculate(data: np.ndarray) -> np.ndarray: class ZFILTER (line 25) | class ZFILTER(REPROCESS): method n (line 30) | def n() -> int: method calculate (line 34) | def calculate(data: np.ndarray) -> np.ndarray: class MAXMIN (line 39) | class MAXMIN(REPROCESS): method n (line 41) | def n() -> int: method calculate (line 45) | def calculate(data: np.ndarray) -> np.ndarray: FILE: run_toy.py class SimpleRunner (line 3) | class SimpleRunner(Runner): method test (line 4) | def test(self): FILE: runner.py class Runner (line 3) | class Runner(): method debug (line 4) | def debug(self): method train (line 6) | def train(self): method test (line 8) | def test(self): function entry (line 14) | def entry(ctx, obj:Runner=Runner()): function debug (line 20) | def debug(ctx): function train (line 25) | def train(ctx): function test (line 30) | def test(ctx): FILE: stoppers.py class Stopper (line 1) | class Stopper(): class SimpleStopper (line 5) | class SimpleStopper(Stopper): FILE: strategies.py class StateTransfer (line 11) | class StateTransfer(): method Name (line 14) | def Name() -> str: method EngineType (line 19) | def EngineType() -> int: method Action (line 24) | def Action(size: int) -> dict: method setAction (line 28) | def setAction(self, action): method __init__ (line 31) | def __init__(self, feature: Feature, assessment: Assessment, stopper: ... class SimpleCTA (line 39) | class SimpleCTA(BaseCtaStrategy, StateTransfer): method Name (line 41) | def Name() -> str: method EngineType (line 45) | def EngineType() -> int: method Action (line 49) | def Action(size: int) -> Space: method setAction (line 55) | def setAction(self, action): method __init__ (line 68) | def __init__(self, name: str, feature: Feature, assessment: Assessment... method on_init (line 75) | def on_init(self, context: CtaContext): method on_session_begin (line 80) | def on_session_begin(self, context: CtaContext, curTDate: int): method on_backtest_end (line 84) | def on_backtest_end(self, context: CtaContext): method on_calculate (line 88) | def on_calculate(self, context: CtaContext): method on_calculate_done (line 94) | def on_calculate_done(self, context: CtaContext): FILE: wtpy/CodeHelper.py class CodeHelper (line 3) | class CodeHelper: method isStdStkCode (line 6) | def isStdStkCode(stdCode:str) -> bool: method stdCodeToStdCommID (line 14) | def stdCodeToStdCommID(stdCode:str) -> str: method stdStkCodeToStdCommID (line 21) | def stdStkCodeToStdCommID(stdCode:str) -> str: method stdFutCodeToStdCommID (line 26) | def stdFutCodeToStdCommID(stdCode:str) -> str: FILE: wtpy/ContractMgr.py class ContractInfo (line 3) | class ContractInfo: method __init__ (line 5) | def __init__(self): class ContractMgr (line 12) | class ContractMgr: method __init__ (line 14) | def __init__(self): method load (line 17) | def load(self, fname:str): method getContractInfo (line 46) | def getContractInfo(self, stdCode:str) -> ContractInfo: method getTotalCodes (line 58) | def getTotalCodes(self) -> list: FILE: wtpy/CtaContext.py class CtaContext (line 9) | class CtaContext: method __init__ (line 19) | def __init__(self, id:int, stra, wrapper: WtWrapper, engine): method id (line 32) | def id(self): method write_indicator (line 35) | def write_indicator(self, tag:str, time:int, data:dict): method on_init (line 44) | def on_init(self): method on_session_begin (line 50) | def on_session_begin(self, curTDate:int): method on_session_end (line 58) | def on_session_end(self, curTDate:int): method on_backtest_end (line 66) | def on_backtest_end(self): method on_getticks (line 72) | def on_getticks(self, stdCode:str, newTicks:list, isLast:bool): method on_getpositions (line 79) | def on_getpositions(self, stdCode:str, qty:float, isLast:bool): method on_getbars (line 84) | def on_getbars(self, stdCode:str, period:str, newBars:list, isLast:bool): method on_tick (line 91) | def on_tick(self, stdCode:str, newTick): method on_bar (line 95) | def on_bar(self, stdCode:str, period:str, newBar:dict): method on_calculate (line 118) | def on_calculate(self): method on_calculate_done (line 121) | def on_calculate_done(self): method stra_log_text (line 124) | def stra_log_text(self, message:str): method stra_get_tdate (line 131) | def stra_get_tdate(self): method stra_get_date (line 138) | def stra_get_date(self): method stra_get_position_avgpx (line 145) | def stra_get_position_avgpx(self, stdCode:str = "") -> float: method stra_get_position_profit (line 153) | def stra_get_position_profit(self, stdCode:str = "") -> float: method stra_get_fund_data (line 161) | def stra_get_fund_data(self, flag:int = 0) -> float: method stra_get_time (line 169) | def stra_get_time(self): method stra_get_price (line 176) | def stra_get_price(self, stdCode:str): method stra_get_all_position (line 183) | def stra_get_all_position(self): method stra_get_bars (line 191) | def stra_get_bars(self, stdCode:str, period:str, count:int, isMain:boo... method stra_get_ticks (line 215) | def stra_get_ticks(self, stdCode:str, count:int) -> WtHftData: method stra_sub_ticks (line 229) | def stra_sub_ticks(self, stdCode:str): method stra_get_position (line 237) | def stra_get_position(self, stdCode:str = "", usertag:str = ""): method stra_set_position (line 246) | def stra_set_position(self, stdCode:str, qty:float, usertag:str = "", ... method stra_enter_long (line 256) | def stra_enter_long(self, stdCode:str, qty:float, usertag:str = "", li... method stra_exit_long (line 266) | def stra_exit_long(self, stdCode:str, qty:float, usertag:str = "", lim... method stra_enter_short (line 276) | def stra_enter_short(self, stdCode:str, qty:float, usertag:str = "", l... method stra_exit_short (line 286) | def stra_exit_short(self, stdCode:str, qty:float, usertag:str = "", li... method stra_get_last_entrytime (line 296) | def stra_get_last_entrytime(self, stdCode:str): method stra_get_last_exittime (line 304) | def stra_get_last_exittime(self, stdCode:str): method stra_get_first_entrytime (line 312) | def stra_get_first_entrytime(self, stdCode:str): method user_save_data (line 321) | def user_save_data(self, key:str, val): method user_load_data (line 329) | def user_load_data(self, key:str, defVal = None, vType = float): method stra_get_detail_profit (line 342) | def stra_get_detail_profit(self, stdCode:str, usertag:str, flag:int = 0): method stra_get_detail_cost (line 352) | def stra_get_detail_cost(self, stdCode:str, usertag:str): method stra_get_detail_entertime (line 361) | def stra_get_detail_entertime(self, stdCode:str, usertag:str): method stra_get_comminfo (line 370) | def stra_get_comminfo(self, stdCode:str): method stra_get_sessinfo (line 380) | def stra_get_sessinfo(self, stdCode:str): FILE: wtpy/ExtModuleDefs.py class BaseExtParser (line 3) | class BaseExtParser: method __init__ (line 7) | def __init__(self, id:str): method id (line 15) | def id(self) -> str: method init (line 18) | def init(self, engine): method connect (line 25) | def connect(self): method disconnect (line 31) | def disconnect(self): method release (line 37) | def release(self): method subscribe (line 43) | def subscribe(self, fullCode:str): method unsubscribe (line 50) | def unsubscribe(self, fullCode:str): class BaseExtExecuter (line 58) | class BaseExtExecuter: method __init__ (line 63) | def __init__(self, id:str, scale:float): method id (line 74) | def id(self): method init (line 77) | def init(self): method set_position (line 80) | def set_position(self, stdCode:str, targetPos:float): FILE: wtpy/ExtToolDefs.py function fileToJson (line 5) | def fileToJson(filename, encoding="utf-8"): class BaseIndexWriter (line 14) | class BaseIndexWriter: method __init__ (line 19) | def __init__(self): method write_indicator (line 22) | def write_indicator(self, id:str, tag:str, time:int, data:dict): class BaseDataReporter (line 33) | class BaseDataReporter: method __init__ (line 41) | def __init__(self, id:str): method init (line 46) | def init(self): method rpt_portfolio_rt_data_impl (line 58) | def rpt_portfolio_rt_data_impl(self, rtData): method rpt_strategy_rt_data_impl (line 61) | def rpt_strategy_rt_data_impl(self, rtData): method rpt_init_data_impl (line 64) | def rpt_init_data_impl(self, initData): method __do_report_rt_data__ (line 67) | def __do_report_rt_data__(self): method __task_loop__ (line 85) | def __task_loop__(self): method __start__ (line 99) | def __start__(self): method __do_report_init_data__ (line 106) | def __do_report_init_data__(self): method __do_report_settle_data__ (line 112) | def __do_report_settle_data__(self): method report_rt_data (line 115) | def report_rt_data(self): method report_settle_data (line 121) | def report_settle_data(self): method report_init_data (line 126) | def report_init_data(self): FILE: wtpy/HftContext.py class HftContext (line 9) | class HftContext: method __init__ (line 19) | def __init__(self, id:int, stra, wrapper: WtWrapper, engine): method id (line 34) | def id(self): method on_init (line 37) | def on_init(self): method on_session_begin (line 43) | def on_session_begin(self, curTDate:int): method on_session_end (line 51) | def on_session_end(self, curTDate:int): method on_backtest_end (line 59) | def on_backtest_end(self): method on_getticks (line 65) | def on_getticks(self, stdCode:str, newTicks:list, isLast:bool): method on_getbars (line 72) | def on_getbars(self, stdCode:str, period:str, newBars:list, isLast:bool): method on_tick (line 79) | def on_tick(self, stdCode:str, newTick:dict): method on_order_queue (line 82) | def on_order_queue(self, stdCode:str, newOrdQue:dict): method on_get_order_queue (line 85) | def on_get_order_queue(self, stdCode:str, newOdrQues:list, isLast:bool): method on_order_detail (line 91) | def on_order_detail(self, stdCode:str, newOrdDtl:dict): method on_get_order_detail (line 94) | def on_get_order_detail(self, stdCode:str, newOrdDtls:list, isLast:bool): method on_transaction (line 100) | def on_transaction(self, stdCode:str, newTrans:dict): method on_get_transaction (line 103) | def on_get_transaction(self, stdCode:str, newTranses:list, isLast:bool): method on_channel_ready (line 109) | def on_channel_ready(self): method on_channel_lost (line 112) | def on_channel_lost(self): method on_entrust (line 115) | def on_entrust(self, localid:int, stdCode:str, bSucc:bool, msg:str, us... method on_order (line 118) | def on_order(self, localid:int, stdCode:str, isBuy:bool, totalQty:floa... method on_trade (line 121) | def on_trade(self, localid:int, stdCode:str, isBuy:bool, qty:float, pr... method on_bar (line 124) | def on_bar(self, code:str, period:str, newBar:dict): method stra_log_text (line 146) | def stra_log_text(self, message:str): method stra_get_date (line 153) | def stra_get_date(self): method stra_get_time (line 160) | def stra_get_time(self): method stra_get_secs (line 167) | def stra_get_secs(self): method stra_get_price (line 174) | def stra_get_price(self, code): method stra_get_bars (line 181) | def stra_get_bars(self, code:str, period:str, count:int) -> WtKlineData: method stra_get_ticks (line 205) | def stra_get_ticks(self, code:str, count:int) -> WtHftData: method stra_get_order_queue (line 219) | def stra_get_order_queue(self, code:str, count:int) -> WtHftData: method stra_get_order_detail (line 233) | def stra_get_order_detail(self, code:str, count:int) -> WtHftData: method stra_get_transaction (line 247) | def stra_get_transaction(self, code:str, count:int) -> WtHftData: method stra_get_position (line 261) | def stra_get_position(self, code:str = ""): method stra_get_position_profit (line 269) | def stra_get_position_profit(self, code:str = ""): method stra_get_undone (line 277) | def stra_get_undone(self, stdCode:str): method user_save_data (line 281) | def user_save_data(self, key:str, val): method user_load_data (line 289) | def user_load_data(self, key:str, defVal = None, vType = float): method stra_get_comminfo (line 302) | def stra_get_comminfo(self, code:str): method stra_sub_ticks (line 312) | def stra_sub_ticks(self, stdCode:str): method stra_cancel (line 320) | def stra_cancel(self, localid:int): method stra_cancel_all (line 328) | def stra_cancel_all(self, stdCode:str, isBuy:bool): method stra_buy (line 345) | def stra_buy(self, stdCode:str, price:float, qty:float, userTag:str): method stra_sell (line 363) | def stra_sell(self, stdCode:str, price:float, qty:float, userTag:str): FILE: wtpy/ProductMgr.py class ProductInfo (line 3) | class ProductInfo: method __init__ (line 8) | def __init__(self): class ProductMgr (line 19) | class ProductMgr: method __init__ (line 23) | def __init__(self): method load (line 27) | def load(self, fname:str): method getProductInfo (line 55) | def getProductInfo(self, pid:str) -> ProductInfo: FILE: wtpy/SelContext.py class SelContext (line 9) | class SelContext: method __init__ (line 19) | def __init__(self, id:int, stra, wrapper: WtWrapper, engine): method write_indicator (line 31) | def write_indicator(self, tag, time, data): method on_init (line 40) | def on_init(self): method on_session_begin (line 46) | def on_session_begin(self, curTDate:int): method on_session_end (line 54) | def on_session_end(self, curTDate:int): method on_backtest_end (line 62) | def on_backtest_end(self): method on_getticks (line 68) | def on_getticks(self, stdCode:str, newTicks:list, isLast:bool): method on_getpositions (line 75) | def on_getpositions(self, stdCode:str, qty:float, isLast:bool): method on_getbars (line 80) | def on_getbars(self, stdCode:str, period:str, newBars:list, isLast:bool): method on_tick (line 87) | def on_tick(self, stdCode:str, newTick): method on_bar (line 90) | def on_bar(self, stdCode:str, period:str, newBar:dict): method on_calculate (line 93) | def on_calculate(self): method on_calculate_done (line 96) | def on_calculate_done(self): method stra_log_text (line 99) | def stra_log_text(self, message:str): method stra_get_date (line 106) | def stra_get_date(self): method stra_get_time (line 113) | def stra_get_time(self): method stra_get_price (line 120) | def stra_get_price(self, stdCode): method stra_get_all_position (line 127) | def stra_get_all_position(self): method stra_get_bars (line 135) | def stra_get_bars(self, stdCode:str, period:str, count:int) -> WtKline... method stra_get_ticks (line 158) | def stra_get_ticks(self, stdCode:str, count:int) -> WtHftData: method stra_sub_ticks (line 172) | def stra_sub_ticks(self, stdCode:str): method stra_get_position (line 179) | def stra_get_position(self, stdCode:str = "", usertag:str = "") -> float: method stra_set_position (line 188) | def stra_set_position(self, stdCode:str, qty:float, usertag:str = ""): method user_save_data (line 197) | def user_save_data(self, key:str, val): method user_load_data (line 205) | def user_load_data(self, key:str, defVal = None, vType = float): method stra_get_comminfo (line 218) | def stra_get_comminfo(self, stdCode:str): method stra_get_sessioninfo (line 228) | def stra_get_sessioninfo(self, stdCode:str): method stra_get_contract (line 238) | def stra_get_contract(self, stdCode:str): method stra_get_all_codes (line 248) | def stra_get_all_codes(self): FILE: wtpy/SessionMgr.py class SectionInfo (line 4) | class SectionInfo: method __init__ (line 6) | def __init__(self): class SessionInfo (line 10) | class SessionInfo: method __init__ (line 12) | def __init__(self): method toString (line 20) | def toString(self): method offsetTime (line 42) | def offsetTime(self, rawTime:int): method originalTime (line 52) | def originalTime(self, offTime:int): method getOpenTime (line 62) | def getOpenTime(self, bOffset:bool = False): method getCloseTime (line 72) | def getCloseTime(self, bOffset:bool = False): method getTradingMins (line 82) | def getTradingMins(self): method getTradingSecs (line 95) | def getTradingSecs(self): method isLastOfSection (line 99) | def isLastOfSection(self, rawTime:int): method isInTradingTime (line 108) | def isInTradingTime(self, rawTime:int, bStrict:bool = False): method isFirstOfSection (line 118) | def isFirstOfSection(self, rawTime:int): method timeToMinutes (line 127) | def timeToMinutes(self, rawTime:int): method minutesToTime (line 152) | def minutesToTime(self, minutes:int, bHeadFirst:bool = False): class SessionMgr (line 184) | class SessionMgr: method __init__ (line 186) | def __init__(self): method load (line 191) | def load(self, fname:int): method getSession (line 220) | def getSession(self, sid:str) -> SessionInfo: FILE: wtpy/StrategyDefs.py class BaseCtaStrategy (line 3) | class BaseCtaStrategy: method __init__ (line 8) | def __init__(self, name:str): method name (line 12) | def name(self) -> str: method on_init (line 16) | def on_init(self, context:CtaContext): method on_session_begin (line 25) | def on_session_begin(self, context:CtaContext, curTDate:int): method on_session_end (line 33) | def on_session_end(self, context:CtaContext, curTDate:int): method on_calculate (line 41) | def on_calculate(self, context:CtaContext): method on_calculate_done (line 49) | def on_calculate_done(self, context:CtaContext): method on_tick (line 58) | def on_tick(self, context:CtaContext, stdCode:str, newTick:dict): method on_bar (line 70) | def on_bar(self, context:CtaContext, stdCode:str, period:str, newBar:d... method on_backtest_end (line 81) | def on_backtest_end(self, context:CtaContext): class BaseHftStrategy (line 89) | class BaseHftStrategy: method __init__ (line 94) | def __init__(self, name:str): method name (line 98) | def name(self) -> str: method on_init (line 102) | def on_init(self, context:HftContext): method on_session_begin (line 111) | def on_session_begin(self, context:HftContext, curTDate:int): method on_session_end (line 119) | def on_session_end(self, context:HftContext, curTDate:int): method on_backtest_end (line 127) | def on_backtest_end(self, context:CtaContext): method on_tick (line 135) | def on_tick(self, context:HftContext, stdCode:str, newTick:dict): method on_order_detail (line 145) | def on_order_detail(self, context:HftContext, stdCode:str, newOrdQue:d... method on_order_queue (line 155) | def on_order_queue(self, context:HftContext, stdCode:str, newOrdQue:di... method on_transaction (line 165) | def on_transaction(self, context:HftContext, stdCode:str, newTrans:dict): method on_bar (line 175) | def on_bar(self, context:HftContext, stdCode:str, period:str, newBar:d... method on_channel_ready (line 186) | def on_channel_ready(self, context:HftContext): method on_channel_lost (line 194) | def on_channel_lost(self, context:HftContext): method on_entrust (line 202) | def on_entrust(self, context:HftContext, localid:int, stdCode:str, bSu... method on_order (line 214) | def on_order(self, context:HftContext, localid:int, stdCode:str, isBuy... method on_trade (line 228) | def on_trade(self, context:HftContext, localid:int, stdCode:str, isBuy... class BaseSelStrategy (line 240) | class BaseSelStrategy: method __init__ (line 245) | def __init__(self, name:str): method name (line 249) | def name(self) -> str: method on_init (line 253) | def on_init(self, context:SelContext): method on_session_begin (line 262) | def on_session_begin(self, context:SelContext, curTDate:int): method on_session_end (line 270) | def on_session_end(self, context:SelContext, curTDate:int): method on_calculate (line 278) | def on_calculate(self, context:SelContext): method on_calculate_done (line 285) | def on_calculate_done(self, context:SelContext): method on_backtest_end (line 292) | def on_backtest_end(self, context:CtaContext): method on_tick (line 300) | def on_tick(self, context:SelContext, stdCode:str, newTick:dict): method on_bar (line 311) | def on_bar(self, context:SelContext, stdCode:str, period:str, newBar:d... FILE: wtpy/WtBtEngine.py class WtBtEngine (line 21) | class WtBtEngine: method __init__ (line 23) | def __init__(self, eType:EngineType = EngineType.ET_CTA, logCfg:str = ... method __check_config__ (line 42) | def __check_config__(self): method set_writer (line 60) | def set_writer(self, writer:BaseIndexWriter): method write_indicator (line 66) | def write_indicator(self, id, tag, time, data): method init (line 73) | def init(self, folder:str, cfgfile:str = "configbt.json", commfile:str... method configMocker (line 101) | def configMocker(self, name:str): method configBacktest (line 107) | def configBacktest(self, stime:int, etime:int): method configBTStorage (line 116) | def configBTStorage(self, mode:str, path:str = None, dbcfg:dict = None): method setExternalCtaStrategy (line 127) | def setExternalCtaStrategy(self, id:str, module:str, typeName:str, par... method setExternalHftStrategy (line 144) | def setExternalHftStrategy(self, id:str, module:str, typeName:str, par... method commitBTConfig (line 161) | def commitBTConfig(self): method getSessionByCode (line 179) | def getSessionByCode(self, code:str) -> SessionInfo: method getSessionByName (line 192) | def getSessionByName(self, sname:str) -> SessionInfo: method getProductInfo (line 199) | def getProductInfo(self, code:str) -> ProductInfo: method getContractInfo (line 206) | def getContractInfo(self, code:str) -> ContractInfo: method getAllCodes (line 213) | def getAllCodes(self) -> list: method set_time_range (line 219) | def set_time_range(self, beginTime:int, endTime:int): method set_cta_strategy (line 227) | def set_cta_strategy(self, strategy:BaseCtaStrategy, slippage:int = 0,... method set_hft_strategy (line 237) | def set_hft_strategy(self, strategy:BaseHftStrategy, hook:bool = False): method set_sel_strategy (line 246) | def set_sel_strategy(self, strategy:BaseSelStrategy, date:int=0, time:... method get_context (line 254) | def get_context(self, id:int): method run_backtest (line 257) | def run_backtest(self, bAsync:bool = False, bNeedDump:bool = True): method cta_step (line 268) | def cta_step(self, remark:str = "") -> bool: method hft_step (line 276) | def hft_step(self): method stop_backtest (line 282) | def stop_backtest(self): method release_backtest (line 288) | def release_backtest(self): method on_init (line 294) | def on_init(self): method on_schedule (line 297) | def on_schedule(self, date:int, time:int, taskid:int = 0): method on_session_begin (line 300) | def on_session_begin(self, date:int): method on_session_end (line 303) | def on_session_end(self, date:int): method on_backtest_end (line 306) | def on_backtest_end(self): method clear_cache (line 312) | def clear_cache(self): FILE: wtpy/WtCoreDefs.py class WTSStruct (line 13) | class WTSStruct(Structure): method fields (line 15) | def fields(self) -> list: method values (line 19) | def values(self) -> tuple: method to_dict (line 23) | def to_dict(self) -> dict: class WTSTickStruct (line 26) | class WTSTickStruct(WTSStruct): method fields (line 63) | def fields(self) -> list: class WTSBarStruct (line 74) | class WTSBarStruct(WTSStruct): class WTSTransStruct (line 91) | class WTSTransStruct(WTSStruct): class WTSOrdQueStruct (line 112) | class WTSOrdQueStruct(WTSStruct): class WTSOrdDtlStruct (line 130) | class WTSOrdDtlStruct(WTSStruct): class CacheList (line 149) | class CacheList(list): method to_record (line 150) | def to_record(self) -> np.recarray: method to_pandas (line 156) | def to_pandas(self) -> pd.DataFrame: class BarList (line 159) | class BarList(CacheList): method on_read_bar (line 160) | def on_read_bar(self, curBar:POINTER(WTSBarStruct), count:int, isLast:... method on_data_count (line 168) | def on_data_count(self, count:int): class TickList (line 171) | class TickList(CacheList): method on_read_tick (line 172) | def on_read_tick(self, curTick:POINTER(WTSTickStruct), count:int, isLa... method on_data_count (line 180) | def on_data_count(self, count:int): class EngineType (line 237) | class EngineType(Enum): FILE: wtpy/WtDataDefs.py class WtKlineData (line 4) | class WtKlineData: method __init__ (line 5) | def __init__(self, size:int, bAlloc:bool = True): method append_bar (line 24) | def append_bar(self, newBar:dict): method is_empty (line 45) | def is_empty(self) -> bool: method clear (line 48) | def clear(self): method get_bar (line 58) | def get_bar(self, iLoc:int = -1) -> dict: method slice (line 72) | def slice(self, iStart:int = 0, iEnd:int = -1, bCopy:bool = False): method to_df (line 98) | def to_df(self) -> DataFrame: class WtHftData (line 110) | class WtHftData: method __init__ (line 111) | def __init__(self, capacity:int): method append_item (line 117) | def append_item(self, newItem:dict): method is_empty (line 127) | def is_empty(self) -> bool: method clear (line 130) | def clear(self): method get_item (line 134) | def get_item(self, iLoc:int=-1) -> dict: method to_df (line 140) | def to_df(self) -> DataFrame: FILE: wtpy/WtDtEngine.py class WtDtEngine (line 6) | class WtDtEngine: method __init__ (line 8) | def __init__(self): method initialize (line 12) | def initialize(self, cfgfile:str = "dtcfg.json", logprofile:str = "log... method run (line 20) | def run(self): method add_exetended_parser (line 26) | def add_exetended_parser(self, parser:BaseExtParser): method get_extended_parser (line 36) | def get_extended_parser(self, id:str)->BaseExtParser: method push_quote_from_extended_parser (line 44) | def push_quote_from_extended_parser(self, id:str, newTick, bNeedSlice:... FILE: wtpy/WtDtServo.py function pack_rsp (line 14) | def pack_rsp(obj): function parse_data (line 19) | def parse_data(): function get_param (line 30) | def get_param(json_data, key:str, type=str, defVal = ""): function httpPost (line 36) | def httpPost(url, datas:dict, encoding='utf-8') -> dict: class WtDtServo (line 58) | class WtDtServo: method __init__ (line 61) | def __init__(self): method __check_config__ (line 68) | def __check_config__(self): method setRemoteUrl (line 89) | def setRemoteUrl(self, url:str="http://127.0.0.1:8081"): method setBasefiles (line 97) | def setBasefiles(self, commfile:str="./common/commodities.json", contr... method setStorage (line 110) | def setStorage(self, path:str = "./storage/"): method commitConfig (line 113) | def commitConfig(self): method __server_impl__ (line 128) | def __server_impl__(self, port:int, host:str): method runServer (line 131) | def runServer(self, port:int = 8081, host="0.0.0.0", bSync:bool = True): method get_bars (line 232) | def get_bars(self, stdCode:str, period:str, fromTime:int = None, dataC... method get_ticks (line 250) | def get_ticks(self, stdCode:str, fromTime:int = None, dataCount:int = ... class WtDtRemoteServo (line 267) | class WtDtRemoteServo: method __init__ (line 269) | def __init__(self, url:str="http://127.0.0.1:8081"): method get_bars (line 272) | def get_bars(self, stdCode:str, period:str, fromTime:int = None, dataC... method get_ticks (line 319) | def get_ticks(self, stdCode:str, fromTime:int = None, dataCount:int = ... FILE: wtpy/WtEngine.py class WtEngine (line 19) | class WtEngine: method __init__ (line 24) | def __init__(self, eType:EngineType, logCfg:str = "logcfg.json", genDi... method __check_config__ (line 57) | def __check_config__(self): method getEngineType (line 73) | def getEngineType(self): method add_exetended_parser (line 76) | def add_exetended_parser(self, parser:BaseExtParser): method add_exetended_executer (line 83) | def add_exetended_executer(self, executer:BaseExtExecuter): method get_extended_parser (line 90) | def get_extended_parser(self, id:str)->BaseExtParser: method get_extended_executer (line 95) | def get_extended_executer(self, id:str)->BaseExtExecuter: method push_quote_from_extended_parser (line 100) | def push_quote_from_extended_parser(self, id:str, newTick, bNeedSlice:... method set_writer (line 103) | def set_writer(self, writer:BaseIndexWriter): method write_indicator (line 109) | def write_indicator(self, id:str, tag:str, time:int, data:dict): method set_data_reporter (line 116) | def set_data_reporter(self, reporter:BaseDataReporter): method init (line 122) | def init(self, folder:str, cfgfile:str = "config.json", commfile:str="... method configEngine (line 150) | def configEngine(self, name:str, mode:str = "product"): method addExternalCtaStrategy (line 157) | def addExternalCtaStrategy(self, id:str, params:dict): method addExternalHftStrategy (line 170) | def addExternalHftStrategy(self, id:str, params:dict): method configStorage (line 183) | def configStorage(self, path:str, module:str=""): method commitConfig (line 191) | def commitConfig(self): method regCtaStraFactories (line 209) | def regCtaStraFactories(self, factFolder:str): method regHftStraFactories (line 217) | def regHftStraFactories(self, factFolder:str): method regExecuterFactories (line 225) | def regExecuterFactories(self, factFolder:str): method addExecuter (line 233) | def addExecuter(self, id:str, trader:str, policies:dict, scale:int = 1): method addTrader (line 247) | def addTrader(self, id:str, params:dict): method getSessionByCode (line 257) | def getSessionByCode(self, stdCode:str) -> SessionInfo: method getSessionByName (line 269) | def getSessionByName(self, sname:str) -> SessionInfo: method getProductInfo (line 276) | def getProductInfo(self, stdCode:str) -> ProductInfo: method getContractInfo (line 283) | def getContractInfo(self, stdCode:str) -> ContractInfo: method getAllCodes (line 290) | def getAllCodes(self) -> list: method add_cta_strategy (line 296) | def add_cta_strategy(self, strategy:BaseCtaStrategy): method add_hft_strategy (line 304) | def add_hft_strategy(self, strategy:BaseHftStrategy, trader:str, agent... method add_sel_strategy (line 312) | def add_sel_strategy(self, strategy:BaseSelStrategy, date:int, time:in... method get_context (line 316) | def get_context(self, id:int): method run (line 337) | def run(self): method release (line 346) | def release(self): method on_init (line 352) | def on_init(self): method on_schedule (line 357) | def on_schedule(self, date:int, time:int, taskid:int = 0): method on_session_begin (line 362) | def on_session_begin(self, date:int): method on_session_end (line 366) | def on_session_end(self, date:int): FILE: wtpy/WtMsgQue.py class WtMQServer (line 4) | class WtMQServer: method __init__ (line 6) | def __init__(self): method init (line 9) | def init(self, wrapper:WtMQWrapper, id:int): method publish_message (line 13) | def publish_message(self, topic:str, message:str): class WtMQClient (line 19) | class WtMQClient: method __init__ (line 21) | def __init__(self): method init (line 24) | def init(self, wrapper:WtMQWrapper, id:int): method start (line 28) | def start(self): method subscribe (line 34) | def subscribe(self, topic:str): method on_mq_message (line 39) | def on_mq_message(self, topic:str, message:str, dataLen:int): class WtMsgQue (line 43) | class WtMsgQue: method __init__ (line 45) | def __init__(self) -> None: method get_client (line 52) | def get_client(self, client_id:int) -> WtMQClient: method on_mq_message (line 58) | def on_mq_message(self, client_id:int, topic:str, message:str, dataLen... method add_mq_server (line 65) | def add_mq_server(self, url:str, server:WtMQServer = None) -> WtMQServer: method destroy_mq_server (line 74) | def destroy_mq_server(self, server:WtMQServer): method add_mq_client (line 82) | def add_mq_client(self, url:str, client:WtMQClient = None) -> WtMQClient: method destroy_mq_client (line 90) | def destroy_mq_client(self, client:WtMQClient): FILE: wtpy/WtUtilDefs.py function singleton (line 1) | def singleton(cls): FILE: wtpy/apps/WtBtAnalyst.py class Calculate (line 13) | class Calculate(): method __init__ (line 17) | def __init__(self, ret, mar, rf, period, trade): method calculate_upside_ratio (line 32) | def calculate_upside_ratio(self): method sharp_ratio (line 39) | def sharp_ratio(self): method sortion_ratio (line 46) | def sortion_ratio(self): method maxDrawdown (line 53) | def maxDrawdown(self): method maxDrawdown_time (line 61) | def maxDrawdown_time(self): method calmar_ratio (line 70) | def calmar_ratio(self): method sterling_a_ratio (line 77) | def sterling_a_ratio(self): method single_largest_maxdrawdown (line 84) | def single_largest_maxdrawdown(self): method single_maxdrawdown_time (line 93) | def single_maxdrawdown_time(self): method get_annual_return (line 98) | def get_annual_return(self): method monthly_return (line 103) | def monthly_return(self): method monthly_average_return (line 109) | def monthly_average_return(self): method decay_time (line 114) | def decay_time(self): function fmtNAN (line 132) | def fmtNAN(val, defVal = 0): function continue_trading_analysis (line 138) | def continue_trading_analysis(data, x_value) -> dict: function nomalize_val (line 185) | def nomalize_val(val): function extreme_trading (line 191) | def extreme_trading(data, time_of_std=1): function average_profit (line 225) | def average_profit(data): function stat_closes_by_day (line 282) | def stat_closes_by_day(df_closes:df, capital) -> df: function stat_closes_by_month (line 297) | def stat_closes_by_month(df_closes:df, capital) -> df: function stat_closes_by_year (line 312) | def stat_closes_by_year(df_closes:df, capital) -> df: function time_analysis (line 327) | def time_analysis(df_closes:df) -> dict: function ratio_calculate (line 391) | def ratio_calculate(data, after_merge, capital = 500000, rf = 0, period ... function performance_summary (line 437) | def performance_summary(input_data, input_data1, capital = 500000, rf = ... function do_trading_analyze (line 510) | def do_trading_analyze(df_closes, df_funds): function trading_analyze (line 602) | def trading_analyze(workbook:Workbook, df_closes, df_funds, capital = 50... function strategy_analyze (line 821) | def strategy_analyze(workbook:Workbook, df_closes, df_trades, capital, r... function output_closes (line 973) | def output_closes(workbook:Workbook, df_closes:df, capital = 500000): function summary_analyze (line 1034) | def summary_analyze(df_funds:df, capital = 5000000, rf = 0, period = 240... function funds_analyze (line 1114) | def funds_analyze(workbook:Workbook, df_funds:df, capital = 5000000, rf ... class WtBtAnalyst (line 1334) | class WtBtAnalyst: method __init__ (line 1336) | def __init__(self): method add_strategy (line 1340) | def add_strategy(self, sname:str, folder:str, init_capital:float, rf:... method run_new (line 1348) | def run_new(self, outFileName:str = ''): method run (line 1378) | def run(self, outFileName:str = ''): method run_simple (line 1402) | def run_simple(self): FILE: wtpy/apps/WtCtaOptimizer.py function fmtNAN (line 16) | def fmtNAN(val, defVal = 0): class ParamInfo (line 22) | class ParamInfo: method __init__ (line 26) | def __init__(self, name:str, start_val = None, end_val = None, step_va... method gen_array (line 34) | def gen_array(self): class WtCtaOptimizer (line 51) | class WtCtaOptimizer: method __init__ (line 56) | def __init__(self, worker_num:int = 8): method add_mutable_param (line 71) | def add_mutable_param(self, name:str, start_val, end_val, step_val, nd... method add_listed_param (line 83) | def add_listed_param(self, name:str, val_list:list): method add_fixed_param (line 92) | def add_fixed_param(self, name:str, val): method set_strategy (line 102) | def set_strategy(self, typeName:type, name_prefix:str): method set_cpp_strategy (line 113) | def set_cpp_strategy(self, module:str, type_name:type, name_prefix:str): method config_backtest_env (line 126) | def config_backtest_env(self, deps_dir:str, cfgfile:str="configbt.json... method config_backtest_time (line 148) | def config_backtest_time(self, start_time:int, end_time:int): method __gen_tasks__ (line 160) | def __gen_tasks__(self, markerfile:str = "strategies.json"): method __ayalyze_result__ (line 225) | def __ayalyze_result__(self, strName:str, time_range:tuple, params:dict): method __execute_task__ (line 300) | def __execute_task__(self, params:dict): method __start_task__ (line 335) | def __start_task__(self, params:dict): method go (line 350) | def go(self, interval:float = 0.2, out_marker_file:str = "strategies.j... method analyze (line 405) | def analyze(self, out_marker_file:str = "strategies.json", out_summary... method analyzer (line 433) | def analyzer(self, out_marker_file:str = "strategies.json", init_capit... FILE: wtpy/apps/WtHotPicker.py class DayData (line 16) | class DayData: method __init__ (line 21) | def __init__(self): function extractPID (line 29) | def extractPID(code): function readFileContent (line 38) | def readFileContent(filename): function cmp_alg_01 (line 46) | def cmp_alg_01(left:DayData, right:DayData): function countFridays (line 58) | def countFridays(curDate:datetime.datetime): function httpGet (line 76) | def httpGet(url, encoding='utf-8'): function httpPost (line 93) | def httpPost(url, datas, encoding='utf-8'): class WtCacheMon (line 112) | class WtCacheMon: method __init__ (line 116) | def __init__(self): method get_cache (line 119) | def get_cache(self, exchg, curDT:datetime.datetime): class WtCacheMonExchg (line 122) | class WtCacheMonExchg(WtCacheMon): method getCffexData (line 129) | def getCffexData(curDT:datetime.datetime) -> dict: method getShfeData (line 177) | def getShfeData(curDT:datetime.datetime) -> dict: method getCzceData (line 211) | def getCzceData(curDT:datetime.datetime) -> dict: method getDceData (line 275) | def getDceData(curDT:datetime.datetime) -> dict: method getIneData (line 353) | def getIneData(curDT:datetime.datetime) -> dict: method cache_by_date (line 382) | def cache_by_date(self, exchg:str, curDT:datetime.datetime): method get_cache (line 408) | def get_cache(self, exchg:str, curDT:datetime.datetime): class WtCacheMonSS (line 426) | class WtCacheMonSS(WtCacheMon): method __init__ (line 433) | def __init__(self, snapshot_path:str): method cache_snapshot (line 437) | def cache_snapshot(self, curDT:datetime): method get_cache (line 480) | def get_cache(self, exchg, curDT:datetime): class WtMailNotifier (line 499) | class WtMailNotifier: method __init__ (line 503) | def __init__(self, user:str, pwd:str, sender:str=None, host:str="smtp.... method add_receiver (line 513) | def add_receiver(self, name:str, addr:str): method notify (line 525) | def notify(self, hot_changes:dict, sec_changes:dict, nextDT:datetime.d... class WtHotPicker (line 608) | class WtHotPicker: method __init__ (line 612) | def __init__(self, markerFile:str = "./marker.json", hotFile:str = "..... method set_cacher (line 623) | def set_cacher(self, cacher:WtCacheMon): method set_mail_notifier (line 629) | def set_mail_notifier(self, notifier:WtMailNotifier): method pick_exchg_hots (line 635) | def pick_exchg_hots(self, exchg:str, beginDT:datetime.datetime, endDT:... method merge_switch_list (line 790) | def merge_switch_list(self, total, exchg, switch_list): method execute_rebuild (line 815) | def execute_rebuild(self, beginDate:datetime.datetime = None, endDate:... method execute_increment (line 898) | def execute_increment(self, endDate:datetime.datetime = None, exchange... FILE: wtpy/apps/datahelper/DHBaostock.py function transCodes (line 7) | def transCodes(codes:list) -> list: class DHBaostock (line 19) | class DHBaostock(BaseDataHelper): method __init__ (line 21) | def __init__(self): method auth (line 26) | def auth(self, **kwargs): method dmpCodeListToFile (line 34) | def dmpCodeListToFile(self, filename:str, hasIndex:bool=True, hasStock... method dmpAdjFactorsToFile (line 37) | def dmpAdjFactorsToFile(self, codes:list, filename:str): method dmpBarsToFile (line 75) | def dmpBarsToFile(self, folder:str, codes:list, start_date:datetime=No... method dmpAdjFactorsToDB (line 136) | def dmpAdjFactorsToDB(self, dbHelper:DBHelper, codes:list): method dmpBarsToDB (line 173) | def dmpBarsToDB(self, dbHelper:DBHelper, codes:list, start_date:dateti... FILE: wtpy/apps/datahelper/DHDefs.py class DBHelper (line 3) | class DBHelper: method __init__ (line 5) | def __init__(self): method initDB (line 8) | def initDB(self): method writeBars (line 14) | def writeBars(self, bars:list, period="day"): method writeFactors (line 22) | def writeFactors(self, factors:dict): class BaseDataHelper (line 30) | class BaseDataHelper: method __init__ (line 32) | def __init__(self): method __check__ (line 36) | def __check__(self): method auth (line 40) | def auth(self, **kwargs): method dmpCodeListToFile (line 46) | def dmpCodeListToFile(self, filename:str, hasIndex:bool=True, hasStock... method dmpAdjFactorsToFile (line 55) | def dmpAdjFactorsToFile(self, codes:list, filename:str): method dmpBarsToFile (line 63) | def dmpBarsToFile(self, folder:str, codes:list, start_date:datetime=No... method dmpAdjFactorsToDB (line 74) | def dmpAdjFactorsToDB(self, dbHelper:DBHelper, codes:list): method dmpBarsToDB (line 82) | def dmpBarsToDB(self, dbHelper:DBHelper, codes:list, start_date:dateti... FILE: wtpy/apps/datahelper/DHFactory.py class DHFactory (line 6) | class DHFactory: method createHelper (line 9) | def createHelper(name:str) -> BaseDataHelper: FILE: wtpy/apps/datahelper/DHRqData.py function exchgStdToRQ (line 7) | def exchgStdToRQ(exchg:str) -> str: function exchgRQToStd (line 15) | def exchgRQToStd(exchg:str) -> str: function stdCodeToRQ (line 23) | def stdCodeToRQ(stdCode:str): class DHRqData (line 43) | class DHRqData(BaseDataHelper): method __init__ (line 45) | def __init__(self): method auth (line 50) | def auth(self, **kwargs): method dmpCodeListToFile (line 58) | def dmpCodeListToFile(self, filename:str, hasIndex:bool=True, hasStock... method dmpAdjFactorsToFile (line 107) | def dmpAdjFactorsToFile(self, codes:list, filename:str): method dmpBarsToFile (line 139) | def dmpBarsToFile(self, folder:str, codes:list, start_date:datetime=No... method dmpAdjFactorsToDB (line 203) | def dmpAdjFactorsToDB(self, dbHelper:DBHelper, codes:list): method dmpBarsToDB (line 233) | def dmpBarsToDB(self, dbHelper:DBHelper, codes:list, start_date:dateti... FILE: wtpy/apps/datahelper/DHTushare.py function transCode (line 7) | def transCode(stdCode:str) -> str: class DHTushare (line 32) | class DHTushare(BaseDataHelper): method __init__ (line 34) | def __init__(self): method auth (line 42) | def auth(self, **kwargs): method dmpCodeListToFile (line 54) | def dmpCodeListToFile(self, filename:str, hasIndex:bool=True, hasStock... method dmpAdjFactorsToFile (line 123) | def dmpAdjFactorsToFile(self, codes:list, filename:str): method __dmp_bars_to_file_from_pro__ (line 162) | def __dmp_bars_to_file_from_pro__(self, folder:str, codes:list, start_... method __dmp_bars_to_file_from_old__ (line 235) | def __dmp_bars_to_file_from_old__(self, folder:str, codes:list, start_... method dmpBarsToFile (line 294) | def dmpBarsToFile(self, folder:str, codes:list, start_date:datetime=No... method dmpAdjFactorsToDB (line 300) | def dmpAdjFactorsToDB(self, dbHelper:DBHelper, codes:list): method __dmp_bars_to_db_from_pro__ (line 337) | def __dmp_bars_to_db_from_pro__(self, dbHelper:DBHelper, codes:list, s... method __dmp_bars_to_db_from_old__ (line 418) | def __dmp_bars_to_db_from_old__(self, dbHelper:DBHelper, codes:list, s... method dmpBarsToDB (line 483) | def dmpBarsToDB(self, dbHelper:DBHelper, codes:list, start_date:dateti... FILE: wtpy/apps/datahelper/db/MysqlHelper.py class MysqlHelper (line 6) | class MysqlHelper(DBHelper): method __init__ (line 7) | def __init__(self, host:str, user:str, pwd:str, dbname:str, port:int=3... method __get_conn__ (line 17) | def __get_conn__(self): method initDB (line 28) | def initDB(self): method writeBars (line 46) | def writeBars(self, bars:list, period="day"): method writeFactors (line 124) | def writeFactors(self, factors:dict): FILE: wtpy/apps/datahelper/db/initdb_mysql.sql type `tb_adj_factors` (line 1) | CREATE TABLE IF NOT EXISTS `tb_adj_factors` ( type `tb_kline_day` (line 13) | CREATE TABLE IF NOT EXISTS `tb_kline_day` ( type `tb_kline_min1` (line 34) | CREATE TABLE IF NOT EXISTS `tb_kline_min1` ( type `tb_kline_min5` (line 56) | CREATE TABLE IF NOT EXISTS `tb_kline_min5` ( FILE: wtpy/monitor/DataMgr.py function backup_file (line 8) | def backup_file(filename): class DataMgr (line 22) | class DataMgr: method __init__ (line 24) | def __init__(self, datafile:str="mondata.db", logger:WtLogger=None): method get_db (line 64) | def get_db(self): method __check_db__ (line 67) | def __check_db__(self): method __check_cache__ (line 149) | def __check_cache__(self, grpid, grpInfo): method get_groups (line 201) | def get_groups(self, tpfilter:str=''): method has_group (line 212) | def has_group(self, grpid:str): method get_group (line 215) | def get_group(self, grpid:str): method get_group_cfg (line 221) | def get_group_cfg(self, grpid:str): method set_group_cfg (line 233) | def set_group_cfg(self, grpid:str, config:dict): method get_group_entry (line 246) | def get_group_entry(self, grpid:str): method set_group_entry (line 258) | def set_group_entry(self, grpid:str, content:str): method add_group (line 271) | def add_group(self, grpInfo:dict): method del_group (line 296) | def del_group(self, grpid:str): method get_users (line 304) | def get_users(self): method add_user (line 312) | def add_user(self, usrInfo, admin): method mod_user_pwd (line 336) | def mod_user_pwd(self, loginid:str, newpwd:str, admin:str): method del_user (line 344) | def del_user(self, loginid, admin): method log_action (line 355) | def log_action(self, adminInfo, atype, remark): method get_user (line 362) | def get_user(self, loginid:str): method get_strategies (line 378) | def get_strategies(self, grpid:str): method get_channels (line 387) | def get_channels(self, grpid:str): method get_trades (line 396) | def get_trades(self, grpid:str, straid:str, limit:int = 200): method get_funds (line 453) | def get_funds(self, grpid:str, straid:str): method get_signals (line 536) | def get_signals(self, grpid:str, straid:str, limit:int = 200): method get_rounds (line 586) | def get_rounds(self, grpid:str, straid:str, limit:int = 200): method get_positions (line 640) | def get_positions(self, grpid:str, straid:str): method get_channel_orders (line 710) | def get_channel_orders(self, grpid:str, chnlid:str, limit:int = 200): method get_channel_trades (line 764) | def get_channel_trades(self, grpid:str, chnlid:str, limit:int = 200): method get_channel_positions (line 816) | def get_channel_positions(self, grpid:str, chnlid:str): method get_channel_funds (line 860) | def get_channel_funds(self, grpid:str, chnlid:str): method get_actions (line 904) | def get_actions(self, sdate, edate): method get_group_trades (line 921) | def get_group_trades(self, grpid:str): method get_group_rounds (line 970) | def get_group_rounds(self, grpid:str): method get_group_funds (line 1019) | def get_group_funds(self, grpid:str): method get_group_positions (line 1110) | def get_group_positions(self, grpid:str): method get_group_performances (line 1142) | def get_group_performances(self, grpid:str): method get_group_filters (line 1186) | def get_group_filters(self, grpid:str): method set_group_filters (line 1233) | def set_group_filters(self, grpid:str, filters:dict): FILE: wtpy/monitor/EventReceiver.py class EventSink (line 15) | class EventSink: method __init__ (line 16) | def __init__(self): method on_order (line 19) | def on_order(self, chnl:str, ordInfo:dict): method on_trade (line 22) | def on_trade(self, chnl:str, trdInfo:dict): method on_notify (line 25) | def on_notify(self, chnl:str, message:str): method on_log (line 28) | def on_log(self, tag:str, time:int, message:str): function decode_bytes (line 31) | def decode_bytes(data:bytes): class EventReceiver (line 42) | class EventReceiver(WtMQClient): method __init__ (line 44) | def __init__(self, url:str, topics:list = [], sink:EventSink = None, l... method on_mq_message (line 55) | def on_mq_message(self, topic:str, message:str, dataLen:int): method run (line 76) | def run(self): method release (line 79) | def release(self): class BtEventSink (line 86) | class BtEventSink: method __init__ (line 87) | def __init__(self): method on_begin (line 90) | def on_begin(self): method on_finish (line 93) | def on_finish(self): method on_fund (line 96) | def on_fund(self, fundInfo:dict): method on_state (line 99) | def on_state(self, statInfo:float): class BtEventReceiver (line 102) | class BtEventReceiver(WtMQClient): method __init__ (line 104) | def __init__(self, url:str, topics:list = [], sink:BtEventSink = None,... method on_mq_message (line 115) | def on_mq_message(self, topic:str, message:str, dataLen:int): method run (line 131) | def run(self): method release (line 134) | def release(self): FILE: wtpy/monitor/PushSvr.py function get_param (line 6) | def get_param(json_data, key:str, type=str, defVal = ""): class PushServer (line 12) | class PushServer: method __init__ (line 14) | def __init__(self, app, dataMgr, logger:WtLogger = None): method run (line 41) | def run(self, port:int, host:str): method notifyGrpLog (line 44) | def notifyGrpLog(self, groupid, tag:str, time:int, message): method notifyGrpEvt (line 47) | def notifyGrpEvt(self, groupid, evttype): method notifyGrpChnlEvt (line 50) | def notifyGrpChnlEvt(self, groupid, chnlid, evttype, data): FILE: wtpy/monitor/WatchDog.py function isWindows (line 16) | def isWindows(): class WatcherSink (line 22) | class WatcherSink: method __init__ (line 24) | def __init__(self): method on_start (line 27) | def on_start(self, appid:str): method on_stop (line 30) | def on_stop(self, appid:str): method on_output (line 33) | def on_output(self, appid:str, tag:str, time:int, message:str): method on_order (line 36) | def on_order(self, appid:str, chnl:str, ordInfo:dict): method on_trade (line 39) | def on_trade(self, appid:str, chnl:str, trdInfo:dict): method on_notify (line 42) | def on_notify(self, appid:str, chnl:str, message:str): class ActionType (line 46) | class ActionType(Enum): class AppState (line 55) | class AppState(Enum): class AppInfo (line 65) | class AppInfo(EventSink): method __init__ (line 66) | def __init__(self, appConf:dict, sink:WatcherSink = None, logger:WtLog... method applyConf (line 92) | def applyConf(self, appConf:dict): method getConf (line 115) | def getConf(self): method cmd_line (line 122) | def cmd_line(self) -> str: method is_running (line 128) | def is_running(self, pids) -> bool: method run (line 158) | def run(self): method stop (line 189) | def stop(self): method restart (line 207) | def restart(self): method update_state (line 213) | def update_state(self, pids): method tick (line 224) | def tick(self, pids): method __schedule__ (line 237) | def __schedule__(self): method isRunning (line 287) | def isRunning(self): method on_order (line 291) | def on_order(self, chnl:str, ordInfo:dict): method on_trade (line 296) | def on_trade(self, chnl:str, trdInfo:dict): method on_notify (line 301) | def on_notify(self, chnl:str, message:str): method on_log (line 306) | def on_log(self, tag:str, time:int, message:str): class WatchDog (line 311) | class WatchDog: method __init__ (line 313) | def __init__(self, db, sink:WatcherSink = None, logger:WtLogger=None): method __watch_impl__ (line 349) | def __watch_impl__(self): method get_apps (line 358) | def get_apps(self): method run (line 367) | def run(self): method start (line 373) | def start(self, appid:str): method stop (line 381) | def stop(self, appid:str): method has_app (line 389) | def has_app(self, appid:str): method restart (line 392) | def restart(self, appid:str): method isRunning (line 399) | def isRunning(self, appid:str): method getAppConf (line 406) | def getAppConf(self, appid:str): method delApp (line 413) | def delApp(self, appid:str): method updateMQURL (line 424) | def updateMQURL(self, appid:str, mqurl:str): method applyAppConf (line 439) | def applyAppConf(self, appConf:dict, isGroup:bool = False): FILE: wtpy/monitor/WtBtMon.py function isWindows (line 26) | def isWindows(): function md5_str (line 32) | def md5_str(v:str) -> str: function gen_btid (line 35) | def gen_btid(user:str, straid:str) -> str: function gen_straid (line 40) | def gen_straid(user:str) -> str: class BtTaskSink (line 45) | class BtTaskSink: method __init__ (line 47) | def __init__(self): method on_start (line 50) | def on_start(self, user:str, straid:str, btid:str): method on_stop (line 53) | def on_stop(self, user:str, straid:str, btid:str): method on_state (line 56) | def on_state(self, user:str, straid:str, btid:str, statInfo:dict): method on_fund (line 59) | def on_fund(self, user:str, straid:str, btid:str, fundInfo:dict): class WtBtTask (line 62) | class WtBtTask(BtEventSink): method __init__ (line 66) | def __init__(self, user:str, straid:str, btid:str, folder:str, logger:... method __check__ (line 81) | def __check__(self): method run (line 93) | def run(self): method cmd_line (line 122) | def cmd_line(self) -> str: method is_running (line 128) | def is_running(self, pids) -> bool: method on_begin (line 156) | def on_begin(self): method on_finish (line 160) | def on_finish(self): method on_state (line 163) | def on_state(self, statInfo:dict): method on_fund (line 168) | def on_fund(self, fundInfo:dict): class WtBtMon (line 174) | class WtBtMon(BtTaskSink): method __init__ (line 178) | def __init__(self, deploy_folder:str, dtServo:WtDtServo = None, logger... method __load_user_data__ (line 190) | def __load_user_data__(self, user:str): method __save_user_data__ (line 208) | def __save_user_data__(self, user): method get_strategies (line 230) | def get_strategies(self, user:str) -> list: method add_strategy (line 242) | def add_strategy(self, user:str, name:str) -> dict: method del_strategy (line 280) | def del_strategy(self, user:str, straid:str): method has_strategy (line 302) | def has_strategy(self, user:str, straid:str, btid:str = None) -> bool: method get_strategy_code (line 314) | def get_strategy_code(self, user:str, straid:str, btid:str = None) -> ... method set_strategy_code (line 341) | def set_strategy_code(self, user:str, straid:str, content:str) -> bool: method get_backtests (line 357) | def get_backtests(self, user:str, straid:str) -> list: method del_backtest (line 373) | def del_backtest(self, user:str, btid:str): method get_bt_funds (line 389) | def get_bt_funds(self, user:str, straid:str, btid:str) -> list: method get_bt_trades (line 431) | def get_bt_trades(self, user:str, straid:str, btid:str) -> list: method get_bt_rounds (line 479) | def get_bt_rounds(self, user:str, straid:str, btid:str) -> list: method get_bt_signals (line 523) | def get_bt_signals(self, user:str, straid:str, btid:str) -> list: method get_bt_summary (line 562) | def get_bt_summary(self, user:str, straid:str, btid:str) -> list: method get_bt_state (line 585) | def get_bt_state(self, user:str, straid:str, btid:str) -> list: method get_bt_state (line 608) | def get_bt_state(self, user:str, straid:str, btid:str) -> dict: method update_bt_state (line 632) | def update_bt_state(self, user:str, straid:str, btid:str, stateObj:dict): method get_bt_kline (line 645) | def get_bt_kline(self, user:str, straid:str, btid:str) -> list: method run_backtest (line 687) | def run_backtest(self, user:str, straid:str, fromTime:int, endTime:int... method __update_bt_result__ (line 794) | def __update_bt_result__(self, user:str, straid:str, btid:str): method __save_tasks__ (line 812) | def __save_tasks__(self): method __load_tasks__ (line 820) | def __load_tasks__(self): method on_start (line 847) | def on_start(self, user:str, straid:str, btid:str): method on_stop (line 850) | def on_stop(self, user:str, straid:str, btid:str): method on_state (line 853) | def on_state(self, user:str, straid:str, btid:str, statInfo:dict): method on_fund (line 856) | def on_fund(self, user:str, straid:str, btid:str, fundInfo:dict): FILE: wtpy/monitor/WtLogger.py class WtLogger (line 4) | class WtLogger: method __init__ (line 6) | def __init__(self, catName:str='', filename:str="out.log"): method info (line 31) | def info(self, message:str): method warn (line 34) | def warn(self, message:str): method error (line 37) | def error(self, message:str): method fatal (line 40) | def fatal(self, message:str): FILE: wtpy/monitor/WtMonSvr.py function pack_rsp (line 20) | def pack_rsp(obj): function parse_data (line 25) | def parse_data(): function get_param (line 36) | def get_param(json_data, key:str, type=str, defVal = ""): function get_tail (line 43) | def get_tail(filename, N:int = 100, encoding="GBK") : function check_auth (line 59) | def check_auth(): function get_cfg_tree (line 80) | def get_cfg_tree(root:str, name:str): function get_path_tree (line 169) | def get_path_tree(root:str, name:str, hasFile:bool = True): class WtMonSvr (line 225) | class WtMonSvr(WatcherSink): method __init__ (line 227) | def __init__(self, static_folder:str="", static_url_path="/", deploy_d... method set_bt_mon (line 255) | def set_bt_mon(self, btMon:WtBtMon): method set_dt_servo (line 259) | def set_dt_servo(self, dtServo:WtDtServo): method init_bt_apis (line 262) | def init_bt_apis(self, app:Flask): method init_mgr_apis (line 891) | def init_mgr_apis(self, app:Flask): method __run_impl__ (line 2272) | def __run_impl__(self, port:int, host:str): method run (line 2276) | def run(self, port:int = 8080, host="0.0.0.0", bSync:bool = True): method init_logging (line 2285) | def init_logging(self): method on_start (line 2288) | def on_start(self, grpid:str): method on_stop (line 2292) | def on_stop(self, grpid:str): method on_output (line 2296) | def on_output(self, grpid:str, tag:str, time:int, message:str): method on_order (line 2300) | def on_order(self, grpid:str, chnl:str, ordInfo:dict): method on_trade (line 2303) | def on_trade(self, grpid:str, chnl:str, trdInfo:dict): method on_notify (line 2306) | def on_notify(self, grpid:str, chnl:str, message:str): FILE: wtpy/monitor/static/console/static/js/manifest.3ad1d5771e9b13dbdad2.js function t (line 1) | function t(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{... FILE: wtpy/monitor/static/console/static/js/vendor.cd39a6c53a9d7599c08c.js function y (line 1) | function y(){if(!v){v=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+)... function m (line 1) | function m(o,u){var c,m=g[o],v=g[u],y=f[m],b=new l(y,e,e.ecModel);if(i&&... function r (line 1) | function r(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__c... function o (line 1) | function o(e){return e&&e.width&&e.height} function h (line 1) | function h(e){return e.isHorizontal()?0:1} function d (line 1) | function d(e,t){var n=e.getRect();return[n[s[t]],n[s[t]]+n[l[t]]]} function u (line 1) | function u(e,t){this.root,this.data,this._nodes=[],this.hostModel=e,this... function r (line 1) | function r(e){this._setting=e||{},this._extent=[1/0,-1/0],this._interval... function s (line 1) | function s(e){return e>a||e<-a} function d (line 1) | function d(e){if(null==e||"object"!=typeof e)return e;var t=e,o=r.call(e... function f (line 1) | function f(e,t,n){if(!x(t)||!x(e))return n?d(t):e;for(var i in t)if(t.ha... function p (line 1) | function p(e,t,n){for(var i in t)t.hasOwnProperty(i)&&(n?null!=t[i]:null... function v (line 1) | function v(e,t,n){if(e&&t)if(e.forEach&&e.forEach===a)e.forEach(t,n);els... function y (line 1) | function y(e,t){var n=l.call(arguments,2);return function(){return e.app... function b (line 1) | function b(e){return"[object Array]"===r.call(e)} function x (line 1) | function x(e){var t=typeof e;return"function"===t||!!e&&"object"===t} function _ (line 1) | function _(e){return!!n[r.call(e)]} function w (line 1) | function w(e){return"object"==typeof e&&"number"==typeof e.nodeType&&"ob... function S (line 1) | function S(e){return e[C]} function k (line 1) | function k(e){var t=b(e);this.data={};var n=this;function i(e,i){t?n.set... function i (line 1) | function i(){} function y (line 1) | function y(e,t,n){if(n||null!=t.get(e)){for(var i=0;null!=t.get(e+i);)i+... function D (line 1) | function D(e,t,n){null!=m.get(t)?e.otherDims[t]=n:(e.coordDim=t,e.coordD... function i (line 6) | function i(e,t){0} function r (line 6) | function r(e){return Object.prototype.toString.call(e).indexOf("Error")>-1} function o (line 6) | function o(e,t){return r(e)&&e._isRouter&&(null==t||e.type===t)} function a (line 6) | function a(e,t){for(var n in t)e[n]=t[n];return e} function l (line 6) | function l(e,t,n,i){var r=t.props=function(e,t){switch(typeof t){case"un... function p (line 6) | function p(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.spl... function g (line 6) | function g(e){var t=e?Object.keys(e).map(function(t){var n=e[t];if(void ... function v (line 6) | function v(e,t,n,i){var r=i&&i.options.stringifyQuery,o=t.query||{};try{... function y (line 6) | function y(e){if(Array.isArray(e))return e.map(y);if(e&&"object"==typeof... function x (line 6) | function x(e,t){var n=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;r... function _ (line 6) | function _(e,t){return t===b?e===t:!!t&&(e.path&&t.path?e.path.replace(m... function w (line 6) | function w(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e... function C (line 6) | function C(e,t,n){var i=e.charAt(0);if("/"===i)return e;if("?"===i||"#"=... function S (line 6) | function S(e){return e.replace(/\/\//g,"/")} function E (line 6) | function E(e,t){for(var n,i=[],r=0,o=0,a="",s=t&&t.delimiter||"/";null!=... function L (line 6) | function L(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%... function P (line 6) | function P(e,t){for(var n=new Array(e.length),i=0;i=e.length?n():e[r]?t(e[r],functio... function _e (line 6) | function _e(e){return function(t,n,i){var o=!1,a=0,s=null;we(e,function(... function we (line 6) | function we(e,t){return Ce(e.map(function(e){return Object.keys(e.compon... function Ce (line 6) | function Ce(e){return Array.prototype.concat.apply([],e)} function ke (line 6) | function ke(e){var t=!1;return function(){for(var n=[],i=arguments.lengt... function Me (line 6) | function Me(e,t){return Ae(e,t,Te.redirected,'Redirected when going from... function De (line 6) | function De(e,t){return Ae(e,t,Te.cancelled,'Navigation cancelled from "... function Ae (line 6) | function Ae(e,t,n,i){var r=new Error(i);return r._isRouter=!0,r.from=e,r... function Ee (line 6) | function Ee(e,t,n,i){var r=we(e,function(e,i,r,o){var a=function(e,t){"f... function Le (line 6) | function Le(e,t){if(t)return function(){return e.apply(t,arguments)}} function t (line 6) | function t(t,n){e.call(this,t,n),this._startLocation=Ne(this.base)} function Ne (line 6) | function Ne(e){var t=decodeURI(window.location.pathname);return e&&0===t... function t (line 6) | function t(t,n,i){e.call(this,t,n),i&&function(e){var t=Ne(e);if(!/^\/#/... function Be (line 6) | function Be(){var e=ze();return"/"===e.charAt(0)||(Ve("/"+e),!1)} function ze (line 6) | function ze(){var e=window.location.href,t=e.indexOf("#");if(t<0)return"... function Fe (line 6) | function Fe(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t... function $e (line 6) | function $e(e){ve?ye(Fe(e)):window.location.hash=e} function Ve (line 6) | function Ve(e){ve?be(Fe(e)):window.location.replace(Fe(e))} function t (line 6) | function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1} function qe (line 6) | function qe(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.... function u (line 6) | function u(e,t,n){t[1]>t[0]&&(t=t.slice().reverse());var i=e.coordToPoin... function c (line 6) | function c(e){return e.getRadiusAxis().inverse?0:1} function h (line 6) | function h(e){var t=e[0],n=e[e.length-1];t&&n&&Math.abs(Math.abs(t.coord... function s (line 6) | function s(e,t,n){this._model=e} function l (line 6) | function l(e,t,n,i){var r=n.calendarModel,o=n.seriesModel,a=r?r.coordina... function h (line 6) | function h(e,t){return null!=e[t]&&"auto"!==e[t]} function n (line 6) | function n(){} function i (line 6) | function i(e,t,n,i){for(var r=0,o=t.length,a=0,s=0;r0?"P":"N",o=i.getVisual("borderColor"+r)||i.... function c (line 6) | function c(e,t,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var ... function p (line 6) | function p(e,t,n){n=a.normalizeCssArray(n||0);var i=t.width,s=t.height,l... function g (line 6) | function g(e,t){return t&&e&&s(l,function(n){t.hasOwnProperty(n)&&(e[n]=... function l (line 6) | function l(n,i){var o={},a=0,l={},u=0;if(s(n,function(t){l[t]=e[t]}),s(n... function c (line 6) | function c(e,t){return e.hasOwnProperty(t)} function h (line 6) | function h(e,t){return null!=e[t]&&"auto"!==e[t]} function d (line 6) | function d(e,t,n){s(e,function(e){t[e]=n[e]})} function l (line 6) | function l(e,t,n){o.Group.call(this),this.updateData(e,t,n)} function h (line 6) | function h(e){return[e[0]/2,e[1]/2]} function d (line 6) | function d(e,t){this.parent.drift(e,t)} function v (line 6) | function v(e,t){if(!this.incremental&&!this.useHoverLayer)if("emphasis"=... function o (line 6) | function o(e){return"_EC_"+e} function l (line 6) | function l(e,t){this.id=null==e?"":e,this.inEdges=[],this.outEdges=[],th... function u (line 6) | function u(e,t,n){this.node1=e,this.node2=t,this.dataIndex=null==n?-1:n} function m (line 6) | function m(e,t){var n=(e[1]-e[0])/t/2;e[0]+=n,e[1]-=n} function p (line 6) | function p(e,t){return e=u(e),t=u(t),f?e>t:et&&c>i&&c>o&&c>s||ct&&s>i&&s>o||sn||s<-n)return 0;var u=Math.sqrt(n... function b (line 6) | function b(e,t,n,i,l){for(var u,d,p=0,g=0,b=0,x=0,_=0,w=0;w-b} function w (line 6) | function w(e,t){t&&C(e,"transform","matrix("+h.call(t,",")+")")} function C (line 6) | function C(e,t,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&e.setAttri... function S (line 6) | function S(e,t,n,i){if(function(e,t){var n=t?e.textFill:e.fill;return nu... function L (line 6) | function L(e,t,n,i){C(e,"dominant-baseline","middle"),C(e,"text-anchor",... function P (line 6) | function P(e){e&&e.__textSvgEl&&(e.__textSvgEl.parentNode&&e.__textSvgEl... function d (line 6) | function d(e){var t=o.getTransform(n.handles[e].parent,this.group),s=o.t... function x (line 6) | function x(e){return"vertical"===e?"ns-resize":"ew-resize"} function e (line 6) | function e(e){return{type:e,style:"keyword"}} function p (line 6) | function p(e,t,n){return i=e,r=n,t} function g (line 6) | function g(e,t){var n,i=e.next();if('"'==i||"'"==i)return t.tokenize=(n=... function m (line 6) | function m(e,t){for(var n,i=!1;n=e.next();){if("/"==n&&i){t.tokenize=g;b... function v (line 6) | function v(e,t){for(var n,i=!1;null!=(n=e.next());){if(!i&&("`"==n||"$"=... function b (line 6) | function b(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf... function _ (line 6) | function _(e,t,n,i,r,o){this.indented=e,this.column=t,this.type=n,this.p... function w (line 6) | function w(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;f... function S (line 6) | function S(){for(var e=arguments.length-1;e>=0;e--)C.cc.push(arguments[e])} function k (line 6) | function k(){return S.apply(null,arguments),!0} function T (line 6) | function T(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1} function M (line 6) | function M(e){var t=C.state;if(C.marked="def",t.context)if("var"==t.lexi... function D (line 6) | function D(e){return"public"==e||"private"==e||"protected"==e||"abstract... function A (line 6) | function A(e,t,n){this.prev=e,this.vars=t,this.block=n} function I (line 6) | function I(e,t){this.name=e,this.next=t} function E (line 6) | function E(){C.state.context=new A(C.state.context,C.state.localVars,!1)... function L (line 6) | function L(){C.state.context=new A(C.state.context,C.state.localVars,!0)... function P (line 6) | function P(){C.state.localVars=C.state.context.vars,C.state.context=C.st... function N (line 6) | function N(e,t){var n=function(){var n=C.state,i=n.indented;if("stat"==n... function R (line 6) | function R(){var e=C.state;e.lexical.prev&&(")"==e.lexical.type&&(e.inde... function B (line 6) | function B(e){return function t(n){return n==e?k():";"==e||"}"==n||")"==... function z (line 6) | function z(e,t){return"var"==e?k(N("vardef",t),xe,B(";"),R):"keyword a"=... function F (line 6) | function F(e){if("("==e)return k(Le,B(")"))} function $ (line 6) | function $(e,t){return H(e,t,!1)} function V (line 6) | function V(e,t){return H(e,t,!0)} function j (line 6) | function j(e){return"("!=e?S():k(N(")"),W,B(")"),R)} function H (line 6) | function H(e,t,n){if(C.state.fatArrowAt==C.stream.start){var i=n?K:X;if(... function W (line 6) | function W(e){return e.match(/[;\}\)\],]/)?S():S($)} function q (line 6) | function q(e,t){return","==e?k(W):G(e,t,!1)} function G (line 6) | function G(e,t,n){var i=0==n?q:G,r=0==n?$:V;return"=>"==e?k(E,n?K:X,P):"... function U (line 6) | function U(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?k(U):k($,Y)} function Y (line 6) | function Y(e){if("}"==e)return C.marked="string-2",C.state.tokenize=v,k(U)} function X (line 6) | function X(e){return b(C.stream,C.state),S("{"==e?z:$)} function K (line 6) | function K(e){return b(C.stream,C.state),S("{"==e?z:V)} function Z (line 6) | function Z(e,t){if("target"==t)return C.marked="keyword",k(q)} function J (line 6) | function J(e,t){if("target"==t)return C.marked="keyword",k(G)} function Q (line 6) | function Q(e){return":"==e?k(R,z):S(q,B(";"),R)} function ee (line 6) | function ee(e){if("variable"==e)return C.marked="property",k()} function te (line 6) | function te(e,t){if("async"==e)return C.marked="property",k(te);if("vari... function ne (line 6) | function ne(e){return"variable"!=e?S(ie):(C.marked="property",k(Ie))} function ie (line 6) | function ie(e){return":"==e?k(V):"("==e?S(Ie):void 0} function re (line 6) | function re(e,t,n){function i(r,o){if(n?n.indexOf(r)>-1:","==r){var a=C.... function oe (line 6) | function oe(e,t,n){for(var i=3;i"==e)return k(he)} function fe (line 6) | function fe(e){return e.match(/[\}\)\]]/)?k():","==e||";"==e?k(fe):S(pe,... function pe (line 6) | function pe(e,t){return"variable"==e||"keyword"==C.style?(C.marked="prop... function ge (line 6) | function ge(e,t){return"variable"==e&&C.stream.match(/^\s*[?:]/,!1)||"?"... function me (line 6) | function me(e,t){return"<"==t?k(N(">"),re(he,">"),R,me):"|"==t||"."==e||... function ve (line 6) | function ve(e,t){if("<"==t)return k(N(">"),re(he,">"),R,me)} function ye (line 6) | function ye(){return S(he,be)} function be (line 6) | function be(e,t){if("="==t)return k(he)} function xe (line 6) | function xe(e,t){return"enum"==t?(C.marked="keyword",k(Ue)):S(_e,se,Se,ke)} function _e (line 6) | function _e(e,t){return u&&D(t)?(C.marked="keyword",k(_e)):"variable"==e... function we (line 6) | function we(e,t){return"variable"!=e||C.stream.match(/^\s*:/,!1)?("varia... function Ce (line 6) | function Ce(){return S(_e,Se)} function Se (line 6) | function Se(e,t){if("="==t)return k(V)} function ke (line 6) | function ke(e){if(","==e)return k(xe)} function Te (line 6) | function Te(e,t){if("keyword b"==e&&"else"==t)return k(N("form","else"),... function Me (line 6) | function Me(e,t){return"await"==t?k(Me):"("==e?k(N(")"),De,R):void 0} function De (line 6) | function De(e){return"var"==e?k(xe,Ae):"variable"==e?k(Ae):S(Ae)} function Ae (line 6) | function Ae(e,t){return")"==e?k():";"==e?k(Ae):"in"==t||"of"==t?(C.marke... function Ie (line 6) | function Ie(e,t){return"*"==t?(C.marked="keyword",k(Ie)):"variable"==e?(... function Oe (line 6) | function Oe(e,t){return"*"==t?(C.marked="keyword",k(Oe)):"variable"==e?(... function Ee (line 6) | function Ee(e,t){return"keyword"==e||"variable"==e?(C.marked="type",k(Ee... function Le (line 6) | function Le(e,t){return"@"==t&&k($,Le),"spread"==e?k(Le):u&&D(t)?(C.mark... function Pe (line 6) | function Pe(e,t){return"variable"==e?Ne(e,t):Re(e,t)} function Ne (line 6) | function Ne(e,t){if("variable"==e)return M(t),k(Re)} function Re (line 6) | function Re(e,t){return"<"==t?k(N(">"),re(ye,">"),R,Re):"extends"==t||"i... function Be (line 6) | function Be(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t... function ze (line 6) | function ze(e,t){if("?"==t)return k(ze);if(":"==e)return k(he,Se);if("="... function Fe (line 6) | function Fe(e,t){return"*"==t?(C.marked="keyword",k(qe,B(";"))):"default... function $e (line 6) | function $e(e,t){return"as"==t?(C.marked="keyword",k(B("variable"))):"va... function Ve (line 6) | function Ve(e){return"string"==e?k():"("==e?S($):S(je,He,qe)} function je (line 6) | function je(e,t){return"{"==e?oe(je,"}"):("variable"==e&&M(t),"*"==t&&(C... function He (line 6) | function He(e){if(","==e)return k(je,He)} function We (line 6) | function We(e,t){if("as"==t)return C.marked="keyword",k(je)} function qe (line 6) | function qe(e,t){if("from"==t)return C.marked="keyword",k($)} function Ge (line 6) | function Ge(e){return"]"==e?k():S(re(V,"]"))} function Ue (line 6) | function Ue(){return S(N("form"),_e,B("{"),N("}"),re(Ye,"}"),R,R)} function Ye (line 6) | function Ye(){return S(_e,Se)} function Xe (line 6) | function Xe(e,t,n){return t.tokenize==g&&/^(?:operator|sof|keyword [bcd]... function v (line 6) | function v(e,t){h.isInstance(e)||(e=h.seriesDataToSource(e)),this._sourc... function x (line 6) | function x(){return this._data.length} function _ (line 6) | function _(e){return this._data[e]} function w (line 6) | function w(e){for(var t=0;t=0&&Math.floor(t)===t... function d (line 12) | function d(e){return r(e)&&"function"==typeof e.then&&"function"==typeof... function f (line 12) | function f(e){return null==e?"":Array.isArray(e)||u(e)&&e.toString===l?J... function p (line 12) | function p(e){var t=parseFloat(e);return isNaN(t)?e:t} function g (line 12) | function g(e,t){for(var n=Object.create(null),i=e.split(","),r=0;r-1)return e.splice(... function x (line 12) | function x(e,t){return b.call(e,t)} function _ (line 12) | function _(e){var t=Object.create(null);return function(n){return t[n]||... function n (line 12) | function n(n){var i=arguments.length;return i?i>1?e.apply(t,arguments):e... function D (line 12) | function D(e,t){t=t||0;for(var n=e.length-t,i=new Array(n);n--;)i[n]=e[n... function A (line 12) | function A(e,t){for(var n in t)e[n]=t[n];return e} function I (line 12) | function I(e){for(var t={},n=0;n0,a=e?!!e.$stable:!o,s=... function mt (line 12) | function mt(e,t,n){var i=function(){var e=arguments.length?n.apply(null,... function vt (line 12) | function vt(e,t){return function(){return e[t]}} function yt (line 12) | function yt(e,t){var n,i,o,a,l;if(Array.isArray(e)||"string"==typeof e)f... function bt (line 12) | function bt(e,t,n,i){var r,o=this.$scopedSlots[e];o?(n=n||{},i&&(n=A(A({... function xt (line 12) | function xt(e){return ze(this.$options,"filters",e)||L} function _t (line 12) | function _t(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t} function wt (line 12) | function wt(e,t,n,i,r){var o=$.keyCodes[t]||n;return r&&i&&!$.keyCodes[t... function Ct (line 12) | function Ct(e,t,n,i,r){if(n)if(s(n)){var o;Array.isArray(n)&&(n=I(n));va... function St (line 12) | function St(e,t){var n=this._staticTrees||(this._staticTrees=[]),i=n[e];... function kt (line 12) | function kt(e,t,n){return Tt(e,"__once__"+t+(n?"_"+n:""),!0),e} function Tt (line 12) | function Tt(e,t,n){if(Array.isArray(e))for(var i=0;i-1:"string"==typeo... function In (line 12) | function In(e,t){var n=e.cache,i=e.keys,r=e._vnode;for(var o in n){var a... function On (line 12) | function On(e,t,n,i){var r=e[t];!r||i&&r.tag===i.tag||r.componentInstanc... function i (line 12) | function i(){n.$off(e,i),t.apply(n,arguments)} function qn (line 12) | function qn(e){for(var t=e.data,n=e,i=e;r(i.componentInstance);)(i=i.com... function Gn (line 12) | function Gn(e,t){return{staticClass:Un(e.staticClass,t.staticClass),clas... function Un (line 12) | function Un(e,t){return e?t?e+" "+t:e:t||""} function Yn (line 12) | function Yn(e){return Array.isArray(e)?function(e){for(var t,n="",i=0,o=... function Qn (line 12) | function Qn(e){return Zn(e)?"svg":"math"===e?"math":void 0} function ni (line 12) | function ni(e){if("string"==typeof e){var t=document.querySelector(e);re... function oi (line 12) | function oi(e,t){var n=e.data.ref;if(r(n)){var i=e.context,o=e.component... function li (line 12) | function li(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.i... function ui (line 12) | function ui(e,t,n){var i,o,a={};for(i=t;i<=n;++i)r(o=e[i].key)&&(a[o]=i)... function hi (line 12) | function hi(e,t){(e.data.directives||t.data.directives)&&function(e,t){v... function fi (line 12) | function fi(e,t){var n,i,r=Object.create(null);if(!e)return r;for(n=0;n<... function pi (line 12) | function pi(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{})... function gi (line 12) | function gi(e,t,n,i,r){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,i,r)}c... function vi (line 12) | function vi(e,t){var n=t.componentOptions;if(!(r(n)&&!1===n.Ctor.options... function yi (line 12) | function yi(e,t,n){e.tagName.indexOf("-")>-1?bi(e,t,n):$n(t)?Wn(n)?e.rem... function bi (line 12) | function bi(e,t,n){if(Wn(n))e.removeAttribute(t);else{if(Z&&!J&&"TEXTARE... function _i (line 12) | function _i(e,t){var n=t.elm,o=t.data,a=e.data;if(!(i(o.staticClass)&&i(... function Ii (line 12) | function Ii(e){var t,n,i,r,o,a=!1,s=!1,l=!1,u=!1,c=0,h=0,d=0,f=0;for(i=0... function Oi (line 12) | function Oi(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";... function Ei (line 12) | function Ei(e,t){console.error("[Vue compiler]: "+e)} function Li (line 12) | function Li(e,t){return e?e.map(function(e){return e[t]}).filter(functio... function Pi (line 12) | function Pi(e,t,n,i,r){(e.props||(e.props=[])).push(Wi({name:t,value:n,d... function Ni (line 12) | function Ni(e,t,n,i,r){(r?e.dynamicAttrs||(e.dynamicAttrs=[]):e.attrs||(... function Ri (line 12) | function Ri(e,t,n,i){e.attrsMap[t]=n,e.attrsList.push(Wi({name:t,value:n... function Bi (line 12) | function Bi(e,t,n,i,r,o,a,s){(e.directives||(e.directives=[])).push(Wi({... function zi (line 12) | function zi(e,t,n){return n?"_p("+t+',"'+e+'")':e+t} function Fi (line 12) | function Fi(e,t,i,r,o,a,s,l){var u;(r=r||n).right?l?t="("+t+")==='click'... function $i (line 12) | function $i(e,t){return e.rawAttrsMap[":"+t]||e.rawAttrsMap["v-bind:"+t]... function Vi (line 12) | function Vi(e,t,n){var i=ji(e,":"+t)||ji(e,"v-bind:"+t);if(null!=i)retur... function ji (line 12) | function ji(e,t,n){var i;if(null!=(i=e.attrsMap[t]))for(var r=e.attrsLis... function Hi (line 12) | function Hi(e,t){for(var n=e.attrsList,i=0,r=n.length;i=wi} function Xi (line 12) | function Xi(e){return 34===e||39===e} function Ki (line 12) | function Ki(e){var t=1;for(Ti=ki;!Yi();)if(Xi(e=Ui()))Zi(e);else if(91==... function Zi (line 12) | function Zi(e){for(var t=e;!Yi()&&(e=Ui())!==t;);} function tr (line 12) | function tr(e,t,n){var i=Ji;return function r(){null!==t.apply(null,argu... function ir (line 12) | function ir(e,t,n,i){if(nr){var r=cn,o=t;t=o._wrapper=function(e){if(e.t... function rr (line 12) | function rr(e,t,n,i){(i||Ji).removeEventListener(e,t._wrapper||t,n)} function or (line 12) | function or(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},o=... function lr (line 12) | function lr(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,o,a=... function ur (line 12) | function ur(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t... function dr (line 12) | function dr(e){var t=fr(e.style);return e.staticStyle?A(e.staticStyle,t):t} function fr (line 12) | function fr(e){return Array.isArray(e)?I(e):"string"==typeof e?hr(e):e} function xr (line 12) | function xr(e,t){var n=t.data,o=e.data;if(!(i(n.staticStyle)&&i(n.style)... function Cr (line 12) | function Cr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.s... function Sr (line 12) | function Sr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.s... function kr (line 12) | function kr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A... function Nr (line 12) | function Nr(e){Pr(function(){Pr(e)})} function Rr (line 12) | function Rr(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n... function Br (line 12) | function Br(e,t){e._transitionClasses&&y(e._transitionClasses,t),Sr(e,t)} function zr (line 12) | function zr(e,t,n){var i=$r(e,t),r=i.type,o=i.timeout,a=i.propCount;if(!... function $r (line 12) | function $r(e,t){var n,i=window.getComputedStyle(e),r=(i[Ir+"Delay"]||""... function Vr (line 12) | function Vr(e,t){for(;e.lengthi.cac... function ue (line 50) | function ue(e){return e[x]=!0,e} function ce (line 50) | function ce(e){var t=f.createElement("fieldset");try{return!!e(t)}catch(... function he (line 50) | function he(e,t){for(var n=e.split("|"),r=n.length;r--;)i.attrHandle[n[r... function de (line 50) | function de(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&e.sourc... function fe (line 50) | function fe(e){return function(t){return"input"===t.nodeName.toLowerCase... function pe (line 50) | function pe(e){return function(t){var n=t.nodeName.toLowerCase();return(... function ge (line 50) | function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.... function me (line 50) | function me(e){return ue(function(t){return t=+t,ue(function(n,i){for(va... function ve (line 50) | function ve(e){return e&&void 0!==e.getElementsByTagName&&e} function ye (line 50) | function ye(){} function be (line 50) | function be(e){for(var t=0,n=e.length,i="";t1?function(t,n,i){for(var r=e.length;r--;... function we (line 50) | function we(e,t,n,i,r){for(var o,a=[],s=0,l=e.length,u=null!=t;s0;--t)e.removeChild(e.firs... function D (line 50) | function D(e,t){return M(e).appendChild(t)} function A (line 50) | function A(e,t,n,i){var r=document.createElement(e);if(n&&(r.className=n... function I (line 50) | function I(e,t,n,i){var r=A(e,t,n,i);return r.setAttribute("role","prese... function O (line 50) | function O(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.c... function E (line 50) | function E(){var e;try{e=document.activeElement}catch(t){e=document.body... function L (line 50) | function L(e,t){var n=e.className;S(t).test(n)||(e.className+=(n?" ":"")... function P (line 50) | function P(e,t){for(var n=e.split(" "),i=0;i"€"&&(e.toUpperCase()!=e.toLowerCas... function te (line 50) | function te(e,t){return t?!!(t.source.indexOf("\\w")>-1&&ee(e))||t.test(... function ne (line 50) | function ne(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;retu... function re (line 50) | function re(e){return e.charCodeAt(0)>=768&&ie.test(e)} function oe (line 50) | function oe(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var r=(t+n)/2,... function le (line 50) | function le(e,t,n){var i;se=null;for(var r=0;r0} function be (line 50) | function be(e){e.prototype.on=function(e,t){de(this,e,t)},e.prototype.of... function xe (line 50) | function xe(e){e.preventDefault?e.preventDefault():e.returnValue=!1} function _e (line 50) | function _e(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0} function we (line 50) | function we(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.r... function Ce (line 50) | function Ce(e){xe(e),_e(e)} function Se (line 50) | function Se(e){return e.target||e.srcElement} function ke (line 50) | function ke(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?... function Ae (line 50) | function Ae(e){if(null==Te){var t=A("span","​");D(e,A("span",[t,document... function Ie (line 50) | function Ie(e){if(null!=Me)return Me;var t=D(e,document.createTextNode("... function ze (line 50) | function ze(e){if("string"==typeof e&&Be.hasOwnProperty(e))e=Be[e];else ... function Fe (line 50) | function Fe(e,t){t=ze(t);var n=Re[t.name];if(!n)return Fe(e,"text/plain"... function Ve (line 50) | function Ve(e,t){B(t,$e.hasOwnProperty(e)?$e[e]:$e[e]={})} function je (line 50) | function je(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t)... function He (line 50) | function He(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t... function We (line 50) | function We(e,t,n){return!e.startState||e.startState(t,n)} function Ge (line 50) | function Ge(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is ... function Ue (line 50) | function Ue(e,t,n){var i=[],r=t.line;return e.iter(t.line,n.line+1,funct... function Ye (line 50) | function Ye(e,t,n){var i=[];return e.iter(t,n,function(e){i.push(e.text)... function Xe (line 50) | function Xe(e,t){var n=t-e.height;if(n)for(var i=e;i;i=i.parent)i.height... function Ke (line 50) | function Ke(e){if(null==e.parent)return null;for(var t=e.parent,n=$(t.li... function Ze (line 50) | function Ze(e,t){var n=e.first;e:do{for(var i=0;i=e.first&&te.lastLine())return t;var n,i=Ge(e,t);if(!Vt(e,i))... function Vt (line 50) | function Vt(e,t){var n=wt&&t.markedSpans;if(n)for(var i=void 0,r=0;r=e.display.viewFrom&&tn||(i?e.left:e.right)>t)} function ei (line 50) | function ei(e,t,n,i,r){r-=Ht(t);var o=En(e,t),a=Hn(t),s=0,l=t.text.lengt... function ti (line 50) | function ti(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(... function ni (line 50) | function ni(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t... function ii (line 50) | function ii(e){for(var t=e.display,n={},i={},r=t.gutters.clientLeft,o=t.... function ri (line 50) | function ri(e){return e.scroller.getBoundingClientRect().left-e.sizer.ge... function oi (line 50) | function oi(e){var t=ti(e.display),n=e.options.lineWrapping,i=n&&Math.ma... function ai (line 50) | function ai(e){var t=e.doc,n=oi(e);t.iter(function(e){var t=n(e);t!=e.he... function si (line 50) | function si(e,t,n,i){var r=e.display;if(!n&&"true"==Se(t).getAttribute("... function li (line 50) | function li(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.vie... function ui (line 50) | function ui(e,t,n,i){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.... function ci (line 50) | function ci(e,t,n){e.curOp.viewChanged=!0;var i=e.display,r=e.display.ex... function hi (line 50) | function hi(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display... function di (line 50) | function di(e,t,n,i){var r,o=li(e,t),a=e.display.view;if(!wt||n==e.doc.f... function fi (line 50) | function fi(e){for(var t=e.display.view,n=0,i=0;i=e.display.viewTo)){... function ir (line 50) | function ir(e,t){var n=e.display,i=e.doc;if(t.editorIsHidden)return hi(e... function rr (line 50) | function rr(e,t){for(var n=t.viewport,i=!0;;i=!1){if(i&&e.options.lineWr... function or (line 50) | function or(e,t){var n=new nr(e,t);if(ir(e,n)){Si(e),rr(e,n);var i=Ri(e)... function ar (line 50) | function ar(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px"} function sr (line 50) | function sr(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.disp... function lr (line 50) | function lr(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.fir... function ur (line 50) | function ur(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=Qe(e.opt... function cr (line 50) | function cr(e,t){for(var n=[],i=!1,r=0;re.first?st(e,et(t.line-1... function io (line 50) | function io(e){e.setSelection(et(e.firstLine(),0),et(e.lastLine()),H)} function ro (line 50) | function ro(e,t,n){var i={canceled:!1,from:t.from,to:t.to,text:t.text,or... function oo (line 50) | function oo(e,t,n){if(e.cm){if(!e.cm.curOp)return Zi(e.cm,oo)(e,t,n);if(... function ao (line 50) | function ao(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to))... function so (line 50) | function so(e,t,n){var i=e.cm&&e.cm.state.suppressEdits;if(!i||n){for(va... function lo (line 50) | function lo(e,t){if(0!=t&&(e.first+=t,e.sel=new yr(K(e.sel.ranges,functi... function uo (line 50) | function uo(e,t,n,i){if(e.cm&&!e.cm.curOp)return Zi(e.cm,uo)(e,t,n,i);if... function co (line 50) | function co(e,t,n,i,r){var o;i||(i=n),tt(i,n)<0&&(n=(o=[i,n])[0],i=o[1])... function ho (line 50) | function ho(e,t,n,i){ne.text.length?nu... function Xo (line 50) | function Xo(e,t,n){var i=Yo(e,t.ch,n);return null==i?null:new et(t.line,... function Ko (line 50) | function Ko(e,t,n,i,r){if(e){"rtl"==t.doc.direction&&(r=-r);var o=ce(n,t... function Jo (line 50) | function Jo(e,t){var n=Ge(e.doc,t),i=zt(n);return i!=n&&(t=Ke(i)),Ko(!0,... function Qo (line 50) | function Qo(e,t){var n=Jo(e,t.line),i=Ge(e.doc,n.line),r=ce(i,e.doc.dire... function ea (line 50) | function ea(e,t,n){if("string"==typeof t&&!(t=Zo[t]))return!1;e.display.... function na (line 50) | function na(e,t,n,i){var r=e.state.keySeq;if(r){if(Ho(t))return"handled"... function ia (line 50) | function ia(e,t,n,i){var r=function(e,t,n){for(var i=0;i-l&&el||e<-l} function v (line 50) | function v(e,t,n,i,r){var o=1-r;return o*o*(o*e+3*r*t)+r*r*(r*i+3*o*n)} function y (line 50) | function y(e,t,n,i){var r=1-i;return r*(r*e+2*i*t)+i*i*n} function g (line 50) | function g(e,t,n,i){for(var r=t;r.5?t:e} function h (line 50) | function h(e,t,n,i,r){var o=e.length;if(1===r)for(var a=0;ar)e.length=r;e... function f (line 50) | function f(e,t,n){if(e===t)return!0;var i=e.length;if(i!==t.length)retur... function p (line 50) | function p(e,t,n,i,r,o,a,s,l){var u=e.length;if(1===l)for(var c=0;c'+e.phrase("S... function d (line 50) | function d(e,t,n){e.operation(function(){for(var r=i(e,t);r.findNext();)... function f (line 50) | function f(e,n){if(!e.getOption("readOnly")){var s=e.getSelection()||t(e... function m (line 50) | function m(e,t){var n=e.getItemLayout(t);return n&&!isNaN(n.x)&&!isNaN(n... function v (line 50) | function v(e,t,n){return n.itemModel=t,n.itemStyle=t.getModel("itemStyle... function y (line 50) | function y(e,t,n,a,s,l){var u=!n,c=e.tree.getNodeByDataIndex(t),h=(l=v(c... function b (line 50) | function b(e,t,n,i,o,a){for(var s,l=e.tree.getNodeByDataIndex(t),u=e.tre... function x (line 50) | function x(e,t,n){var i,r,o,s,l,u,c,h,d=e.orient;if("radial"===e.layout)... function c (line 50) | function c(e,t){return e.getVisual("opacity")||e.getModel().get(t)} function h (line 50) | function h(e,t,n){var i=e.getGraphicEl(),r=c(e,t);null!=n&&(null==r&&(r=... function d (line 50) | function d(e,t){var n=c(e,t),i=e.getGraphicEl();i.traverse(function(e){"... function l (line 50) | function l(e,t){var n={};return n[t.dim+"AxisIndex"]=t.index,e.getCartes... function c (line 50) | function c(e){return"x"===e.dim?0:1} function o (line 50) | function o(e,t,n){var r=e.getArea(),o=e.getBaseAxis().isHorizontal(),a=r... function a (line 50) | function a(e,t,n){var o=e.getArea(),a=new i.Sector({shape:{cx:r(e.cx,1),... function r (line 50) | function r(e){return(e=Math.round(e))<0?0:e>255?255:e} function o (line 50) | function o(e){return e<0?0:e>1?1:e} function a (line 50) | function a(e){return e.length&&"%"===e.charAt(e.length-1)?r(parseFloat(e... function s (line 50) | function s(e){return e.length&&"%"===e.charAt(e.length-1)?o(parseFloat(e... function l (line 50) | function l(e,t,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?e+(t-e)*n*6:2*n<1?t:... function u (line 50) | function u(e,t,n){return e+(t-e)*n} function c (line 50) | function c(e,t,n,i,r){return e[0]=t,e[1]=n,e[2]=i,e[3]=r,e} function h (line 50) | function h(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e} function p (line 50) | function p(e,t){f&&h(f,t),f=d.put(e,f||t.slice())} function g (line 50) | function g(e,t){if(e){t=t||[];var n=d.get(e);if(n)return h(t,n);var r,o=... function m (line 50) | function m(e,t){var n=(parseFloat(e[0])%360+360)%360/360,i=s(e[1]),o=s(e... function v (line 50) | function v(e,t,n){if(t&&t.length&&e>=0&&e<=1){n=n||[];var i=e*(t.length-... function b (line 50) | function b(e,t,n){if(t&&t.length&&e>=0&&e<=1){var i=e*(t.length-1),a=Mat... function _ (line 50) | function _(e,t){if(e&&e.length){var n=e[0]+","+e[1]+","+e[2];return"rgba... function o (line 50) | function o(e,t){return e&&e.hasOwnProperty&&e.hasOwnProperty(t)} function p (line 50) | function p(e,t,n){(this._brushController=new o(n.getZr())).on("brush",r.... function v (line 50) | function v(e){var t={};return r.each(["xAxisIndex","yAxisIndex"],functio... function r (line 50) | function r(e,t,r){var o=t.getAxis(e),a=o.model,s=function(e,t,n){var i;r... function o (line 50) | function o(n,i){if(i){var o=n+"Index",a=i[o];null==a||"all"===a||r.isArr... function s (line 50) | function s(e){return e.getId()} function c (line 50) | function c(i,a){var s=null==i?null:n[i],c=null==a?null:r[a];!function(n,... function s (line 50) | function s(e,t,n){e.handler("leave",null,n)} function l (line 50) | function l(e,t,n,i){t.handler(e,n,i)} function n (line 50) | function n(n,i){e.on(n,function(n){var r=function(e){var t={showTip:[],h... function t (line 50) | function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{... function i (line 50) | function i(e){return e&&e.__esModule?e:{default:e}} function s (line 50) | function s(e){var t=e.getZr();return t[a]||(t[a]={})} function l (line 50) | function l(e){i.each(e,function(t,n){t.count||(t.controller.dispose(),de... function u (line 50) | function u(e,t){e.dispatchAction({type:"dataZoom",batch:t})} function g (line 50) | function g(e){return{renderMode:r,content:s(l(e)),style:f}} function g (line 50) | function g(e,n){var i=m.getDimensionInfo(n);if(i&&!1!==i.otherDims.toolt... function S (line 50) | function S(e){var t=e.name;c.isNameSpecified(e)||(e.name=function(e){var... function k (line 50) | function k(e){return e.model.getRawData().count()} function T (line 50) | function T(e){var t=e.model;return t.setData(t.getRawData().cloneShallow... function M (line 50) | function M(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRaw... function D (line 50) | function D(e,t){i.each(e.CHANGABLE_METHODS,function(n){e.wrapMethod(n,i.... function A (line 50) | function A(e){var t=I(e);t&&t.setOutputEnd(this.count())} function I (line 50) | function I(e){var t=(e.ecModel||{}).scheduler,n=t&&t.getPipeline(e.uid);... function n (line 50) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 50) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function r (line 50) | function r(e){var t=e.children;return t.length&&e.isExpand?t[t.length-1]... function o (line 50) | function o(e){var t=e.children;return t.length&&e.isExpand?t[0]:e.hierNo... function a (line 50) | function a(e,t,n){return e.hierNode.ancestor.parentNode===t.parentNode?e... function s (line 50) | function s(e,t,n){var i=n/(t.hierNode.i-e.hierNode.i);t.hierNode.change-... function l (line 50) | function l(e,t){return e.parentNode===t.parentNode?1:2} function c (line 50) | function c(e){return!isNaN(e)&&!isFinite(e)} function h (line 50) | function h(e,t,n,i){var r=1-e;return c(t[r])&&c(n[r])} function d (line 50) | function d(e,t){var n=t.coord[0],i=t.coord[1];return!("cartesian2d"!==e.... function f (line 50) | function f(e,t,n,i,r){var o,s=i.coordinateSystem,l=e.getItemModel(t),u=a... function l (line 50) | function l(e,t){var n=e._model;return n.get("axisExpandable")&&n.get("ax... function r (line 50) | function r(e){var t=e.itemStyle||(e.itemStyle={}),n=t.emphasis||(t.empha... function o (line 50) | function o(e,t){return e.hasOwnProperty(t)} function c (line 50) | function c(e,t){var n=e.getAxisModel(),i=e._percentWindow,o=e._valueWind... function f (line 50) | function f(e,t,n,o,s){var l=s?"Span":"ValueSpan";a(0,e,n,"all",d["min"+l... function n (line 50) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 50) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function l (line 50) | function l(e,t){var n=t.rippleEffectColor||t.color;e.eachChild(function(... function u (line 50) | function u(e,t){o.call(this);var n=new s(e,t),i=new o;this.add(n),this.a... function d (line 50) | function d(e,t,n){for(var i,r=e[0],o=e[1],d=e[2],f=1/0,p=n*n,g=.1,m=.1;m... function c (line 50) | function c(e){i.call(this,e),this.path=null} function u (line 50) | function u(){s.call(this)} function c (line 50) | function c(e){this.name=e,this.zoomLimit,s.call(this),this._roamTransfor... function h (line 50) | function h(e,t,n,i){var r=n.seriesModel,o=r?r.coordinateSystem:null;retu... function h (line 50) | function h(e,t){var n=e.visual,r=[];i.isObject(n)?a(n,function(e){r.push... function d (line 50) | function d(e){return{applyVisual:function(t,n,i){t=this.mapValueToVisual... function f (line 50) | function f(e){var t=this.option.visual;return t[Math.round(o(e,[0,1],[0,... function p (line 50) | function p(e){return function(t,n,i){i(e,this.mapValueToVisual(t))}} function g (line 50) | function g(e){var t=this.option.visual;return t[this.option.loop&&e!==l?... function m (line 50) | function m(){return this.option.visual[0]} function v (line 50) | function v(e){return{linear:function(t){return o(t,e,this.option.visual,... function y (line 50) | function y(e){var t=this.option,n=t.pieceList;if(t.hasSpecialVisual){var... function b (line 50) | function b(e,t){return e.visual=t,"color"===e.type&&(e.parsedVisual=i.ma... function _ (line 50) | function _(e,t,n){return e?t<=n:t=a())throw new RangeError("Attempt to allocate Buffer... function p (line 57) | function p(e,t){if(l.isBuffer(e))return e.length;if("undefined"!=typeof ... function g (line 57) | function g(e,t,n){var i=e[t];e[t]=e[n],e[n]=i} function m (line 57) | function m(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=... function v (line 57) | function v(e,t,n,i,r){var o,a=1,s=e.length,l=t.length;if(void 0!==i&&("u... function y (line 57) | function y(e,t,n,i){n=Number(n)||0;var r=e.length-n;i?(i=Number(i))>r&&(... function b (line 57) | function b(e,t,n,i){return j($(t,e.length-n),e,n,i)} function x (line 57) | function x(e,t,n,i){return j(function(e){for(var t=[],n=0;ni)&&(n=i);... function I (line 57) | function I(e,t,n){for(var i=e.slice(t,n),r="",o=0;oe.length)throw new RangeError("Index out ... function R (line 57) | function R(e,t,n,i,o){return o||N(e,0,n,4),r.write(e,t,n,i,23,4),n+4} function B (line 57) | function B(e,t,n,i,o){return o||N(e,0,n,8),r.write(e,t,n,i,52,8),n+8} function F (line 57) | function F(e){return e<16?"0"+e.toString(16):e.toString(16)} function $ (line 57) | function $(e,t){var n;t=t||1/0;for(var i=e.length,r=null,o=[],a=0;a=t.length||r>=e.length);++r)t... function o (line 57) | function o(e){this.path=e.path,this.hostname=e.hostname,this.port=e.port... function f (line 57) | function f(e,t){if(!(this instanceof f))return new f(e,t);e&&"object"==t... function o (line 57) | function o(){~c(i.connecting,n)||i.connecting.push(n)} function c (line 57) | function c(e){var t=e&&e.forceBase64;u&&!t||(this.supportsBinary=!1),i.c... function n (line 57) | function n(){l("paused"),t.readyState="paused",e()} function t (line 57) | function t(){l("writing close packet"),e.write([{type:"close"}])} function u (line 57) | function u(e){var t="";do{t=r[e%o]+t,e=Math.floor(e/o)}while(e>0);return t} function c (line 57) | function c(){var e=u(+new Date);return e!==i?(s=0,i=e):e+"."+u(s++)} function f (line 57) | function f(e,t,n){this.io=e,this.nsp=t,this.json=this,this.ids=0,this.ac... function l (line 57) | function l(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r=i(e),... function o (line 57) | function o(){throw new Error("setTimeout has not been defined")} function a (line 57) | function a(){throw new Error("clearTimeout has not been defined")} function s (line 57) | function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&s... function d (line 57) | function d(){c&&l&&(c=!1,l.length?u=l.concat(u):h=-1,u.length&&f())} function f (line 57) | function f(){if(!c){var e=s(d);c=!0;for(var t=u.length;t;){for(l=u,u=[];... function p (line 57) | function p(e,t){this.fun=e,this.array=t} function g (line 57) | function g(){} function i (line 57) | function i(e){var n;function i(){if(i.enabled){var e=i,r=+new Date,o=r-(... function r (line 57) | function r(){var e=t.instances.indexOf(this);return-1!==e&&(t.instances.... function a (line 57) | function a(e,t,n){if(!(e0)throw new Error("Invalid string. L... function c (line 57) | function c(e,t,n){for(var r,o,a=[],s=t;s=55296&&e<=57343){if(t)throw Error("Lone surrogate ... function l (line 59) | function l(e,t){return o(e>>t&63|128)} function u (line 59) | function u(e,t){if(0==(4294967168&e))return o(e);var n="";return 0==(429... function c (line 59) | function c(){if(r>=i)throw Error("Invalid byte index");var e=255&n[r];if... function h (line 59) | function h(e){var t,o;if(r>i)throw Error("Invalid byte index");if(r==i)r... function a (line 59) | function a(e){return e.map(function(e){if(e.buffer instanceof ArrayBuffe... function s (line 59) | function s(e,t){t=t||{};var i=new n;return a(e).forEach(function(e){i.ap... function l (line 59) | function l(e,t){return new Blob(a(e),t||{})} function l (line 59) | function l(){} function u (line 59) | function u(){return"undefined"!=typeof self?self:"undefined"!=typeof win... function c (line 59) | function c(e){if(i.call(this,e),this.query=this.query||{},!o){var t=u();... function u (line 59) | function u(){c(),t()} function c (line 59) | function c(){if(n.iframe)try{n.form.removeChild(n.iframe)}catch(e){n.onE... function d (line 59) | function d(e){e&&e.forceBase64&&(this.supportsBinary=!1),this.perMessage... function n (line 59) | function n(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor... method beforeCreate (line 59) | beforeCreate(){this.sockets||(this.sockets={}),this.sockets.subscribe=((... method mounted (line 59) | mounted(){this.$options.sockets&&Object.keys(this.$options.sockets).forE... method beforeDestroy (line 59) | beforeDestroy(){this.$options.sockets&&Object.keys(this.$options.sockets... function r (line 59) | function r(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[... function r (line 59) | function r(e,t,n,i){var r=t+1;if(r===n)return 1;if(i(e[r++],e[t])<0){for... function o (line 59) | function o(e,t,n,i,r){for(i===t&&i++;i0){for(s=i-r;l0&&void 0!==a... function V (line 59) | function V(e,t){return function(n,i,r){t||!this._disposed?(n=n&&n.toLowe... function j (line 59) | function j(){l.call(this)} function H (line 59) | function H(e,t,n){n=n||{},"string"==typeof t&&(t=fe[t]),this.id,this.gro... function q (line 59) | function q(e,t,n){if(this._disposed)this.id;else{var i,r=this._model,o=t... function U (line 59) | function U(e){var t=e._model,n=e._scheduler;n.restorePipelines(t),n.prep... function Y (line 59) | function Y(e,t,n,i,o){var a=e._model;if(i){var s={};s[i+"Id"]=n[i+"Id"],... function X (line 59) | function X(e,t){var n=e._chartsMap,i=e._scheduler;t.eachSeries(function(... function K (line 59) | function K(e,t){var n=e.type,i=e.escapeConnect,o=se[n],a=o.actionInfo,s=... function Z (line 59) | function Z(e){for(var t=this._pendingActions;t.length;){var n=t.shift();... function J (line 59) | function J(e){!e&&this.trigger("updated")} function Q (line 59) | function Q(e,t,n,i){for(var r="component"===t,o=r?e._componentsViews:e._... function ee (line 59) | function ee(e){e.clearColorPalette(),e.eachSeries(function(e){e.clearCol... function te (line 59) | function te(e,t,n,i){!function(e,t,n,i,r){I(r||e._componentsViews,functi... function ne (line 59) | function ne(e,t,n,i,r){var o,s=e._scheduler;t.eachSeries(function(t){var... function ie (line 59) | function ie(e,t){I(he,function(n){n(e,t)})} function oe (line 59) | function oe(e,t){var n=e.get("z"),i=e.get("zlevel");t.group.traverse(fun... function ae (line 59) | function ae(){this.eventInfo} function c (line 59) | function c(e,t,n,i){return null==e[n]||t[i||n]===e[n]} function xe (line 59) | function xe(e){me[e]=!1} function we (line 59) | function we(e){return ge[x.getAttribute(e,be)]} function Ce (line 59) | function Ce(e,t){fe[e]=t} function Se (line 59) | function Se(e){ce.push(e)} function ke (line 59) | function ke(e,t){De(ue,e,t,P)} function Te (line 59) | function Te(e,t,n){"function"==typeof t&&(n=t,t="");var i=E(e)?e.type:[e... function Me (line 59) | function Me(e,t){De(de,e,t,R,"visual")} function De (line 59) | function De(e,t,n,i,r){(O(t)||E(t))&&(n=t,t=i);var o=k.wrapStageHandler(... function Ae (line 59) | function Ae(e,t){pe[e]=t} function n (line 59) | function n(e,n){for(var i=0;i=n.from&&i... function h (line 59) | function h(e){var t=e.getItemStyle(),n=e.get("areaColor");return null!=n... function d (line 59) | function d(e,t){t.eachChild(function(t){i.each(t.__regions,function(n){t... function f (line 59) | function f(e,t){var n=new s.Group;this.uid=u("ec_map_draw"),this._contro... function c (line 59) | function c(){var t={type:"geoRoam",componentType:u};return t[u+"Id"]=e.i... function r (line 59) | function r(){var e=i.createCanvas();this.canvas=e,this.blurSize=30,this.... function u (line 59) | function u(e){var t=c(e,"color");if(t){var n=c(e,"colorAlpha"),i=c(e,"co... function c (line 59) | function c(e,t){var n=e[t];if(null!=n&&"none"!==n)return n} function h (line 59) | function h(e,t){var n=e.get(t);return a(n)&&n.length?{name:t,range:n}:null} function s (line 59) | function s(e){i.call(this,e)} function k (line 59) | function k(e,t,n,i,r){null==n[e]||r||(t[e]=n[e],n[e]=i[e])} function T (line 59) | function T(e,t,n,a){var l=e.get("renderItem"),u=e.coordinateSystem,c={};... function M (line 59) | function M(e,t,n,i,r,o){return(e=D(e,t,n,i,r,o,!0))&&o.setItemGraphicEl(... function D (line 59) | function D(e,t,n,o,a,s,u){var c,h=!n,d=(n=n||{}).type,f=n.shape,p=n.styl... function A (line 59) | function A(e,t){var n=e&&e.name;return null!=n?n:C+t} function I (line 59) | function I(e,t){var n=this.context,i=null!=e?n.newChildren[e]:null;D(nul... function O (line 59) | function O(e,t){var n=new c({},t);return i.each(y,function(t,i){e.hasOwn... function E (line 59) | function E(e,t){for(var n in t)!t.hasOwnProperty(n)&&y.hasOwnProperty(n)... function L (line 59) | function L(e){var t=this.context,n=t.oldChildren[e];n&&t.group.remove(n)} function P (line 59) | function P(e){return e&&(e.pathData||e.d)} function N (line 59) | function N(e,t){return e&&e.hasOwnProperty(t)} function s (line 59) | function s(e){e.isGroup||(e.incremental=!0,e.useHoverLayer=!0)} function f (line 59) | function f(e){return isNaN(e[0])||isNaN(e[1])} function p (line 59) | function p(e,t,n,i,o,p,g,m,v,y,b){return"none"!==y&&y?function(e,t,n,i,r... function g (line 59) | function g(e,t){var n=[1/0,1/0],i=[-1/0,-1/0];if(t)for(var r=0;r=0||e===t} function l (line 84) | function l(e){var t=(e.ecModel.getComponent("axisPointer")||{}).coordSys... function u (line 84) | function u(e){return!!e.get("handle.show")} function c (line 84) | function c(e){return e.type+"||"+e.id} function _ (line 84) | function _(a,l,p){var m=p.model.getModel("axisPointer",h),y=m.get("show"... function o (line 84) | function o(e,t,n){var i,r,o,a,s,l=0,u=0,c=null;function h(){u=(new Date)... function f (line 84) | function f(e,t){if("string"!=typeof e)return e;var n=e;return i.each(t,f... function p (line 84) | function p(e){var t=n.get(e);if(null==t){for(var i=e.split("."),o=r.aria... function n (line 84) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 84) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function l (line 84) | function l(e){this.model=e} function b (line 84) | function b(e){return e._rawCount>65535?m:y} function w (line 84) | function w(e,t){i.each(x.concat(t.__wrappedMethods||[]),function(n){t.ha... function k (line 84) | function k(e,t,n,i,r){var o=g[t.type],a=i-1,s=t.name,l=e[s][a];if(l&&l.l... function T (line 84) | function T(e){var t=e._invertedIndicesMap;i.each(t,function(n,i){var r=e... function M (line 84) | function M(e,t,n){var i;if(null!=t){var r=e._chunkSize,o=Math.floor(n/r)... function D (line 84) | function D(e){return e} function A (line 84) | function A(e){return e=0?this._indices[e]:-1} function I (line 84) | function I(e,t){var n=e._idList[t];return null==n&&(n=M(e,e._idDimIdx,t)... function O (line 84) | function O(e){return i.isArray(e)||(e=[e]),e} function E (line 84) | function E(e,t){var n=e.dimensions,r=new C(i.map(n,e.getDimensionInfo,e)... function L (line 84) | function L(e){for(var t,n,i=new Array(e.length),r=0;re[1]&&e.reverse(),e} function g (line 84) | function g(e,t){return o.parseFinder(e,t,{includeMainTypes:h})} function x (line 84) | function x(e,t,n,r){var o=n.getAxis(["x","y"][e]),a=p(i.map([0,1],functi... function w (line 84) | function w(e,t,n,i){return[t[0]-i[e]*n[0],t[1]-i[e]*n[1]]} function C (line 84) | function C(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]} function a (line 84) | function a(e,t,n,i,r,o,a,s,l,u){function c(t,n,i,r){for(var o=t;o=... function u (line 98) | function u(e,t,n,i){if(e.length==t.length)return n;for(var r=0,o=n+Math.... function c (line 98) | function c(e,c,h,d){var f;this.atOccurrence=!1,this.doc=e,h=h?e.clipPos(... function x (line 98) | function x(e,t){if(e.length===t.length){for(var n=0;n0?o:a)} function s (line 98) | function s(e,t){return t.get(e>0?i:r)} function n (line 98) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function a (line 98) | function a(e){o(e,function(t,n){var i=[],r=[NaN,NaN],o=[t.stackResultDim... function b (line 98) | function b(e,t,n){for(var i,r=0,o=1/0,a=0,s=e.length;at.lastLine())return null;var i=t.get... function i (line 98) | function i(n){if(nt.lastLine())return null;var i=t.get... function r (line 98) | function r(e){for(var t=[];e;)(e=e.parentNode)&&t.push(e);return t.rever... function o (line 98) | function o(e){e=e||{},this._reset=e.reset,this._plan=e.plan,this._count=... function d (line 98) | function d(e){return!(e>=1)&&(e=1),e} function a (line 98) | function a(){return t=e?null:o0&&void 0!==arguments[0]?arguments[0... function g (line 98) | function g(e,t){if("image"!==this.type){var n=this.style,i=this.shape;i&... function n (line 98) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 98) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function e (line 98) | function e(e,t){for(var n=0;ni.getWidth()||n<0||n>i.g... function r (line 98) | function r(e){return!isNaN(e[0])&&!isNaN(e[1])} function o (line 98) | function o(e){return[e.cx,e.cy]} function u (line 98) | function u(e){return e.get("stack")||s+e.seriesIndex} function c (line 98) | function c(e){return e.dim+e.index} function h (line 98) | function h(e,t){var n=[];return t.eachSeriesByType(e,function(e){m(e)&&!... function d (line 98) | function d(e){var t=function(e){var t={};i.each(e,function(e){var n=e.co... function f (line 98) | function f(e){var t={};i.each(e,function(e,n){var i=e.axisKey,r=e.bandWi... function p (line 98) | function p(e,t,n){if(e&&t){var i=e[c(t)];return null!=i&&null!=n&&(i=i[u... function m (line 98) | function m(e){return e.coordinateSystem&&"cartesian2d"===e.coordinateSys... function v (line 98) | function v(e){return e.pipelineContext&&e.pipelineContext.large} function y (line 98) | function y(e,t,n){return t.toGlobalCoord(t.dataToCoord("log"===t.type?1:... function p (line 98) | function p(e,t,n,i){var o=e.getItemLayout(t),a=n.get("symbolRepeat"),s=n... function g (line 98) | function g(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))} function m (line 98) | function m(e){var t=e.symbolPatternSize,n=a(e.symbolType,-t/2,-t/2,t,t,e... function v (line 98) | function v(e,t,n,i){var r=e.__pictorialBundle,o=n.symbolSize,a=n.valueLi... function y (line 98) | function y(e,t,n,i){var r=e.__pictorialBundle,o=e.__pictorialMainPath;o?... function b (line 98) | function b(e,t,n){var i=r.extend({},t.barRectShape),a=e.__pictorialBarRe... function x (line 98) | function x(e,t,n,i){if(n.symbolClip){var a=e.__pictorialClipPath,s=r.ext... function _ (line 98) | function _(e,t){var n=e.getItemModel(t);return n.getAnimationDelayParams... function w (line 98) | function w(e){return{index:e.__pictorialAnimationIndex,count:e.__pictori... function C (line 98) | function C(){return this.parentModel.isAnimationEnabled()&&!!this.getSha... function S (line 98) | function S(e,t){e.off("emphasis").off("normal");var n=t.symbolScale.slic... function k (line 98) | function k(e,t,n,i){var r=new o.Group,a=new o.Group;return r.add(a),r.__... function T (line 98) | function T(e,t,n,i){var a=i.__pictorialBarRect;a&&(a.style.text=null);va... function M (line 98) | function M(e,t){return[e.getItemVisual(t.dataIndex,"symbol")||"none",!!t... function D (line 98) | function D(e,t,n){r.each(e.__pictorialBundle.children(),function(i){i!==... function A (line 98) | function A(e,t,n,i,r,a){t&&e.attr(t),i.symbolClip&&!r?n&&e.attr(n):n&&o[... function I (line 98) | function I(e,t,n){var i=n.color,a=n.dataIndex,s=n.itemModel,l=s.getModel... function O (line 98) | function O(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)} function a (line 98) | function a(e){return e.get("stack")||"__ec_stack_"+e.seriesIndex} function s (line 98) | function s(e,t){return t.dim+e.model.componentIndex} function r (line 98) | function r(e){return e[i]||(e[i]={})} function l (line 98) | function l(e,t,n){return e&&e[t]&&(i.isObject(e[t])?e[t].hasOwnProperty(... function l (line 98) | function l(i,o){var a=r.getRepresentValue({interval:i});o||(o=r.getValue... function c (line 98) | function c(e,t){var n=e.inverse;("vertical"===e.orient?!n:n)&&t.reverse()} function n (line 98) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 98) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function s (line 98) | function s(e,t){return e.hasOwnProperty(t)||(e[t]=[]),e[t]} function p (line 98) | function p(e,t){var n,i,l=e.svgXML;try{i=(n=l&&r(l,{ignoreViewBox:!0,ign... function r (line 98) | function r(e,t){return t=t||[0,0],i.map(["x","y"],function(n,i){var r=th... function p (line 98) | function p(e){e.eachComponent({mainType:"brush"},function(t){(t.brushTar... function g (line 98) | function g(e,t){if(!e.isDisposed()){var n=e.getZr();n[d]=!0,e.dispatchAc... function m (line 98) | function m(e,t,n,i){for(var r=0,o=t.length;r0?-1:n<... function i (line 98) | function i(e,t){return Math.min(null!=t[1]?t[1]:1/0,Math.max(null!=t[0]?... function n (line 98) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 98) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function a (line 98) | function a(e){return e&&e.__esModule?e:{default:e}} function l (line 98) | function l(e,t,n){r.Group.call(this);var i=new r.Sector({z2:a});i.series... function k (line 98) | function k(e){var t=s.get(e);return null==t?a.get(e):t} function a (line 98) | function a(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")} function C (line 98) | function C(e){if(e){e.font=c.makeFont(e);var t=e.textAlign;"middle"===t&... function S (line 98) | function S(e,t,n,i,r){if(n&&t.textRotation){var o=t.textOrigin;"center"=... function k (line 98) | function k(e,t,n,i,a,s,l,u){var c=i.rich[n.styleName]||{};c.text=n.text;... function T (line 98) | function T(e){return!!(e.textBackgroundColor||e.textBorderWidth&&e.textB... function M (line 98) | function M(e,t,n,i,r,o,a){var s=n.textBackgroundColor,c=n.textBorderWidt... function D (line 98) | function D(e,t){t.image=e} function A (line 98) | function A(e,t,n,i){var r=n.x||0,o=n.y||0,a=n.textAlign,s=n.textVertical... function I (line 98) | function I(e,t,n){return e[t]=f(e,t,n),e[t]} function O (line 98) | function O(e,t){return null==e||t<=0||"transparent"===e||"none"===e?null... function E (line 98) | function E(e){return null==e||"none"===e?null:e.image||e.colorStops?"#00... function L (line 98) | function L(e,t){return"string"==typeof e?e.lastIndexOf("%")>=0?parseFloa... function P (line 98) | function P(e,t,n){return"right"===t?e-n[1]:"center"===t?e+n[3]/2-n[1]/2:... function r (line 98) | function r(e,t,n,i,r,o){var a=e._$handlers;if("function"==typeof n&&(r=i... function r (line 98) | function r(e){e.eachEdge(function(e){var t=e.getModel().get("lineStyle.c... function o (line 98) | function o(){this._coordinateSystems=[]} function f (line 98) | function f(e){this.fromDataset=e.fromDataset,this.data=e.data||(e.source... function a (line 98) | function a(e,t){e=e.slice();var n=i.map(e,r.capitalFirst);t=(t||[]).slic... function l (line 98) | function l(e){!function(e,t){return i.indexOf(t.nodes,e)>=0}(e,s)&&funct... function r (line 98) | function r(e,r){r.nodes.push(e),t(function(t){i.each(n(e,t)||[],function... function n (line 98) | function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{... function i (line 98) | function i(e,t,n,i,r,o,a,s){var l,u="function"==typeof e?e.options:e;if(... function h (line 98) | function h(e){var t={};return u(["start","end","startValue","endValue","... function d (line 98) | function d(e,t){var n=e._rangePropMode,i=e.get("rangeMode");u([["start",... function s (line 98) | function s(e){return isNaN(+e.cpx1)||isNaN(+e.cpy1)} function c (line 98) | function c(e,t){return t&&("string"==typeof t?e=t.replace("{value}",null... function y (line 98) | function y(e,t,n){this._axesMap=i.createHashMap(),this._axesLayout={},th... function b (line 98) | function b(e,t){return d(f(e,t[0]),t[1])} function c (line 98) | function c(e,t){var n=e.get("boundingCoords");if(null!=n){var i=n[0],r=n... function h (line 98) | function h(e,t){r.each(t.get("geoCoord"),function(t,n){e.addGeoCoord(n,t... function t (line 98) | function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b")} function o (line 98) | function o(e){return e.scopes[e.scopes.length-1]} function x (line 98) | function x(e,t){var n=e.sol()&&"\\"!=t.lastToken;if(n&&(t.indent=e.inden... function _ (line 98) | function _(e,t,i){if(e.eatSpace())return null;if(!i&&e.match(/^#.*/))ret... function w (line 98) | function w(e){for(;"py"!=o(e).type;)e.scopes.pop();e.scopes.push({offset... function C (line 98) | function C(e,t){for(var n=e.indentation();t.scopes.length>1&&o(t).offset... function S (line 98) | function S(e,t){e.sol()&&(t.beginningOfLine=!0);var n=t.tokenize(e,t),i=... function a (line 98) | function a(e){r.call(this,e),this._displayables=[],this._temporaryDispla... function h (line 98) | function h(e){var t,n,i=function(e){var t={},n=[],i=[];return e.eachRawS... function d (line 98) | function d(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")} function p (line 98) | function p(e,t){var n=e.split(new RegExp("\n*"+u+"\n*","g")),i={series:[... function g (line 98) | function g(e){this._dom=null,this.model=e} function C (line 98) | function C(){n.removeChild(a),w._dom=null} function u (line 98) | function u(e,t,n){i.Group.call(this),this.add(this.createLine(e,t,n)),th... function u (line 98) | function u(){o=Number(new Date),n.apply(a,l)} function a (line 98) | function a(e){return e&&e.__esModule?e:{default:e}} function s (line 98) | function s(){this.group=new i.Group} function l (line 98) | function l(e,t,n){var i=t.coordinateSystem;e.each(function(r){var a,s=e.... function u (line 98) | function u(e){return e instanceof Array?e:null==e?[]:[e]} function c (line 98) | function c(e){return a(e)&&e.id&&0===(e.id+"").indexOf("\0_ec_\0")} function d (line 98) | function d(e,t){return e&&e.hasOwnProperty(t)} function r (line 98) | function r(e,t,n){for(var i=0,r=e.length;ii?-1:n0?e.get(r,t-1)<=i?1:-1:1} function l (line 98) | function l(e,t,n,i){for(var r=t.targetVisuals[i],o=a.prepareVisualTypes(... function d (line 98) | function d(t){r._firstDayOfMonth.push(o.getDateInfo(t)),r._firstDayPoint... function c (line 98) | function c(e){return e===l[0]?"min":e===l[1]?"max":(+e).toFixed(Math.min... function u (line 98) | function u(n){f(t.color)&&!n.inRange&&(n.inRange={color:t.color.slice().... function p (line 98) | function p(e,n){var a=e+"DataIndex",s=r.createIcon(t.get("pageIcons",!0)... function x (line 98) | function x(e){if(e){var t=e.getBoundingRect(),n=t[a]+e.position[r];retur... function _ (line 98) | function _(e,t){return e.e>=t&&e.s<=t+i} function a (line 98) | function a(e){var t=e.hostGraph.data.getRawDataItem(e.dataIndex);return ... function s (line 98) | function s(e,t,n,i,o){var a="vertical"===o?"x":"y";r.each(e,function(e){... function l (line 98) | function l(e,t,n){r.each(e.slice().reverse(),function(e){r.each(e,functi... function u (line 98) | function u(e,t){return f(e.node2,t)*e.getValue()} function c (line 98) | function c(e,t){return f(e.node2,t)} function h (line 98) | function h(e,t){return f(e.node1,t)*e.getValue()} function d (line 98) | function d(e,t){return f(e.node1,t)} function f (line 98) | function f(e,t){return"vertical"===t?e.getLayout().x+e.getLayout().dx/2:... function p (line 98) | function p(e){return e.getValue()} function g (line 98) | function g(e,t,n){for(var i=0,r=e.length,o=-1;++o1&&void 0!==arguments[1]?arguments... function wn (line 98) | function wn(e,t){return Object.prototype.hasOwnProperty.call(e,t)} function Cn (line 98) | function Cn(e){return void 0!==e&&(e=parseInt(e,10),isNaN(e)&&(e=null)),e} function Sn (line 98) | function Sn(e){return"number"==typeof e?e:"string"==typeof e?/^\d+(?:px)... function kn (line 98) | function kn(e,t,n){var i=!1,r=e.indexOf(t),o=-1!==r,a=function(){e.push(... function Tn (line 98) | function Tn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?argumen... function Pn (line 98) | function Pn(e){var t={};return Object.keys(e).forEach(function(n){var i=... function e (line 98) | function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new ... function li (line 98) | function li(e,t){var n=t.row,i=t.column,r=t.$index,o=i.property,a=o&&Obj... function wo (line 98) | function wo(){} function e (line 98) | function e(e,t){for(var n=0;nstr: class ContractLoader (line 40) | class ContractLoader: method __init__ (line 42) | def __init__(self, lType:LoaderType = LoaderType.LT_CTP): method start (line 47) | def start(self, cfgfile:str = 'config.ini'): FILE: wtpy/wrapper/PlatformHelper.py class PlatformHelper (line 11) | class PlatformHelper: method isPythonX64 (line 14) | def isPythonX64() -> bool: method isWindows (line 19) | def isWindows() -> bool: method getModule (line 26) | def getModule(moduleName:str, subdir:str="") -> str: FILE: wtpy/wrapper/WtBtWrapper.py class WtBtWrapper (line 14) | class WtBtWrapper: method __init__ (line 26) | def __init__(self, engine): method on_engine_event (line 79) | def on_engine_event(self, evtid:int, evtDate:int, evtTime:int): method on_stra_init (line 93) | def on_stra_init(self, id:int): method on_session_event (line 100) | def on_session_event(self, id:int, udate:int, isBegin:bool): method on_stra_tick (line 110) | def on_stra_tick(self, id:int, stdCode:str, newTick:POINTER(WTSTickStr... method on_stra_calc (line 150) | def on_stra_calc(self, id:int, curDate:int, curTime:int): method on_stra_calc_done (line 157) | def on_stra_calc_done(self, id:int, curDate:int, curTime:int): method on_stra_bar (line 164) | def on_stra_bar(self, id:int, stdCode:str, period:str, newBar:POINTER(... method on_stra_get_bar (line 185) | def on_stra_get_bar(self, id:int, stdCode:str, period:str, curBar:POIN... method on_stra_get_tick (line 220) | def on_stra_get_tick(self, id:int, stdCode:str, curTick:POINTER(WTSTic... method on_stra_get_position (line 271) | def on_stra_get_position(self, id:int, stdCode:str, qty:float, isLast:... method on_hftstra_channel_evt (line 277) | def on_hftstra_channel_evt(self, id:int, trader:str, evtid:int): method on_hftstra_order (line 286) | def on_hftstra_order(self, id:int, localid:int, stdCode:str, isBuy:boo... method on_hftstra_trade (line 293) | def on_hftstra_trade(self, id:int, localid:int, stdCode:str, isBuy:boo... method on_hftstra_entrust (line 300) | def on_hftstra_entrust(self, id:int, localid:int, stdCode:str, bSucc:b... method on_hftstra_order_queue (line 308) | def on_hftstra_order_queue(self, id:int, stdCode:str, newOrdQue:POINTE... method on_hftstra_get_order_queue (line 330) | def on_hftstra_get_order_queue(self, id:int, stdCode:str, newOrdQue:PO... method on_hftstra_order_detail (line 358) | def on_hftstra_order_detail(self, id:int, stdCode:str, newOrdDtl:POINT... method on_hftstra_get_order_detail (line 374) | def on_hftstra_get_order_detail(self, id:int, stdCode:str, newOrdDtl:P... method on_hftstra_transaction (line 396) | def on_hftstra_transaction(self, id:int, stdCode:str, newTrans:POINTER... method on_hftstra_get_transaction (line 414) | def on_hftstra_get_transaction(self, id:int, stdCode:str, newTrans:POI... method write_log (line 437) | def write_log(self, level, message:str, catName:str = ""): method set_time_range (line 440) | def set_time_range(self, beginTime:int, endTime:int): method enable_tick (line 448) | def enable_tick(self, bEnabled:bool = True): method run_backtest (line 456) | def run_backtest(self, bNeedDump:bool = False, bAsync:bool = False): method stop_backtest (line 459) | def stop_backtest(self): method release_backtest (line 462) | def release_backtest(self): method clear_cache (line 465) | def clear_cache(self): method config_backtest (line 468) | def config_backtest(self, cfgfile:str = 'config.json', isFile:bool = T... method initialize_cta (line 472) | def initialize_cta(self, logCfg:str = "logcfgbt.json", isFile:bool = T... method initialize_hft (line 494) | def initialize_hft(self, logCfg:str = "logcfgbt.json", isFile:bool = T... method initialize_sel (line 525) | def initialize_sel(self, logCfg:str = "logcfgbt.json", isFile:bool = T... method cta_enter_long (line 548) | def cta_enter_long(self, id:int, stdCode:str, qty:float, usertag:str, ... method cta_exit_long (line 557) | def cta_exit_long(self, id:int, stdCode:str, qty:float, usertag:str, l... method cta_enter_short (line 566) | def cta_enter_short(self, id:int, stdCode:str, qty:float, usertag:str,... method cta_exit_short (line 575) | def cta_exit_short(self, id:int, stdCode:str, qty:float, usertag:str, ... method cta_get_bars (line 584) | def cta_get_bars(self, id:int, stdCode:str, period:str, count:int, isM... method cta_get_ticks (line 595) | def cta_get_ticks(self, id:int, stdCode:str, count:int): method cta_get_position_profit (line 604) | def cta_get_position_profit(self, id:int, stdCode:str): method cta_get_position_avgpx (line 613) | def cta_get_position_avgpx(self, id:int, stdCode:str): method cta_get_all_position (line 622) | def cta_get_all_position(self, id:int): method cta_get_position (line 629) | def cta_get_position(self, id:int, stdCode:str, usertag:str = ""): method cta_get_fund_data (line 639) | def cta_get_fund_data(self, id:int, flag:int) -> float: method cta_get_price (line 648) | def cta_get_price(self, stdCode:str) -> float: method cta_set_position (line 655) | def cta_set_position(self, id:int, stdCode:str, qty:float, usertag:str... method cta_get_tdate (line 664) | def cta_get_tdate(self) -> int: method cta_get_date (line 671) | def cta_get_date(self) -> int: method cta_get_time (line 678) | def cta_get_time(self) -> int: method cta_get_first_entertime (line 685) | def cta_get_first_entertime(self, id:int, stdCode:str) -> int: method cta_get_last_entertime (line 693) | def cta_get_last_entertime(self, id:int, stdCode:str) -> int: method cta_get_last_exittime (line 701) | def cta_get_last_exittime(self, id:int, stdCode:str) -> int: method cta_log_text (line 709) | def cta_log_text(self, id:int, message:str): method cta_get_detail_entertime (line 717) | def cta_get_detail_entertime(self, id:int, stdCode:str, usertag:str) -... method cta_get_detail_cost (line 727) | def cta_get_detail_cost(self, id:int, stdCode:str, usertag:str) -> float: method cta_get_detail_profit (line 737) | def cta_get_detail_profit(self, id:int, stdCode:str, usertag:str, flag... method cta_save_user_data (line 748) | def cta_save_user_data(self, id:int, key:str, val:str): method cta_load_user_data (line 757) | def cta_load_user_data(self, id:int, key:str, defVal:str = ""): method cta_sub_ticks (line 767) | def cta_sub_ticks(self, id:int, stdCode:str): method cta_step (line 775) | def cta_step(self, id:int) -> bool: method sel_get_bars (line 785) | def sel_get_bars(self, id:int, stdCode:str, period:str, count:int): method sel_get_ticks (line 795) | def sel_get_ticks(self, id:int, stdCode:str, count:int): method sel_save_user_data (line 804) | def sel_save_user_data(self, id:int, key:str, val:str): method sel_load_user_data (line 813) | def sel_load_user_data(self, id:int, key:str, defVal:str = ""): method sel_get_all_position (line 823) | def sel_get_all_position(self, id:int): method sel_get_position (line 830) | def sel_get_position(self, id:int, stdCode:str, usertag:str = ""): method sel_get_price (line 840) | def sel_get_price(self, stdCode:str): method sel_set_position (line 847) | def sel_set_position(self, id:int, stdCode:str, qty:float, usertag:str... method sel_get_date (line 856) | def sel_get_date(self): method sel_get_time (line 863) | def sel_get_time(self): method sel_log_text (line 870) | def sel_log_text(self, id:int, message:str): method sel_sub_ticks (line 878) | def sel_sub_ticks(self, id:int, stdCode:str): method hft_get_bars (line 888) | def hft_get_bars(self, id:int, stdCode:str, period:str, count:int): method hft_get_ticks (line 898) | def hft_get_ticks(self, id:int, stdCode:str, count:int): method hft_get_ordque (line 907) | def hft_get_ordque(self, id:int, stdCode:str, count:int): method hft_get_orddtl (line 916) | def hft_get_orddtl(self, id:int, stdCode:str, count:int): method hft_get_trans (line 925) | def hft_get_trans(self, id:int, stdCode:str, count:int): method hft_save_user_data (line 934) | def hft_save_user_data(self, id:int, key:str, val:str): method hft_load_user_data (line 943) | def hft_load_user_data(self, id:int, key:str, defVal:str = ""): method hft_get_position (line 953) | def hft_get_position(self, id:int, stdCode:str): method hft_get_position_profit (line 962) | def hft_get_position_profit(self, id:int, stdCode:str): method hft_get_undone (line 971) | def hft_get_undone(self, id:int, stdCode:str): method hft_get_price (line 980) | def hft_get_price(self, stdCode:str): method hft_get_date (line 987) | def hft_get_date(self): method hft_get_time (line 994) | def hft_get_time(self): method hft_get_secs (line 1001) | def hft_get_secs(self): method hft_log_text (line 1008) | def hft_log_text(self, id:int, message:str): method hft_sub_ticks (line 1016) | def hft_sub_ticks(self, id:int, stdCode:str): method hft_sub_order_queue (line 1024) | def hft_sub_order_queue(self, id:int, stdCode:str): method hft_sub_order_detail (line 1032) | def hft_sub_order_detail(self, id:int, stdCode:str): method hft_sub_transaction (line 1040) | def hft_sub_transaction(self, id:int, stdCode:str): method hft_cancel (line 1048) | def hft_cancel(self, id:int, localid:int): method hft_cancel_all (line 1056) | def hft_cancel_all(self, id:int, stdCode:str, isBuy:bool): method hft_buy (line 1066) | def hft_buy(self, id:int, stdCode:str, price:float, qty:float, userTag... method hft_sell (line 1077) | def hft_sell(self, id:int, stdCode:str, price:float, qty:float, userTa... method hft_step (line 1088) | def hft_step(self, id:int): method init_cta_mocker (line 1098) | def init_cta_mocker(self, name:str, slippage:int = 0, hook:bool = Fals... method init_hft_mocker (line 1106) | def init_hft_mocker(self, name:str, hook:bool = False) -> int: method init_sel_mocker (line 1114) | def init_sel_mocker(self, name:str, date:int, time:int, period:str, tr... FILE: wtpy/wrapper/WtDtHelper.py function on_log_output (line 17) | def on_log_output(message:str): class WtDataHelper (line 24) | class WtDataHelper: method __init__ (line 34) | def __init__(self): method on_log_output (line 44) | def on_log_output(message:str): method dump_bars (line 48) | def dump_bars(self, binFolder:str, csvFolder:str, strFilter:str=""): method dump_ticks (line 57) | def dump_ticks(self, binFolder: str, csvFolder: str, strFilter: str=""): method trans_csv_bars (line 66) | def trans_csv_bars(self, csvFolder: str, binFolder: str, period: str): method read_dsb_ticks (line 75) | def read_dsb_ticks(self, tickFile: str) -> TickList: method read_dsb_bars (line 88) | def read_dsb_bars(self, barFile: str) -> BarList: method read_dmb_ticks (line 100) | def read_dmb_ticks(self, tickFile: str) -> TickList: method read_dmb_bars (line 112) | def read_dmb_bars(self, barFile: str) -> BarList: method trans_bars (line 124) | def trans_bars(self, barFile:str, getter, count:int, period:str) -> bool: method trans_ticks (line 135) | def trans_ticks(self, tickFile:str, getter, count:int) -> bool: method resample_bars (line 145) | def resample_bars(self, barFile:str, period:str, times:int, fromTime:i... FILE: wtpy/wrapper/WtDtServoApi.py class WtDtServoApi (line 20) | class WtDtServoApi: method __init__ (line 30) | def __init__(self): method initialize (line 46) | def initialize(self, cfgfile:str, isFile:bool): method get_bars (line 49) | def get_bars(self, stdCode:str, period:str, fromTime:int = None, dataC... method get_ticks (line 68) | def get_ticks(self, stdCode:str, fromTime:int = None, dataCount:int = ... FILE: wtpy/wrapper/WtDtWrapper.py class WtDtWrapper (line 18) | class WtDtWrapper: method __init__ (line 28) | def __init__(self): method run_datakit (line 40) | def run_datakit(self): method write_log (line 46) | def write_log(self, level, message:str, catName:str = ""): method initialize (line 52) | def initialize(self, cfgfile:str = "dtcfg.json", logprofile:str = "log... method create_extended_parser (line 63) | def create_extended_parser(self, id:str) -> bool: method push_quote_from_exetended_parser (line 66) | def push_quote_from_exetended_parser(self, id:str, newTick:POINTER(WTS... method register_extended_module_callbacks (line 69) | def register_extended_module_callbacks(self,): method on_parser_event (line 76) | def on_parser_event(self, evtId:int, id:str): method on_parser_sub (line 92) | def on_parser_sub(self, id:str, fullCode:str, isForSub:bool): FILE: wtpy/wrapper/WtExecApi.py class WtExecApi (line 15) | class WtExecApi: method __init__ (line 21) | def __init__(self): method run (line 31) | def run(self): method release (line 34) | def release(self): method write_log (line 37) | def write_log(self, level:int, message:str, catName:str = ""): method config (line 40) | def config(self, cfgfile:str = 'cfgexec.json', isFile:bool = True): method initialize (line 43) | def initialize(self, logCfg:str = "logcfgexec.json", isFile:bool = True): method set_position (line 50) | def set_position(self, stdCode:str, target:float): FILE: wtpy/wrapper/WtMQWrapper.py class WtMQWrapper (line 19) | class WtMQWrapper: method __init__ (line 29) | def __init__(self, mgr): method on_mq_log (line 43) | def on_mq_log(self, id:int, message:str, bServer:bool): method create_server (line 46) | def create_server(self, url:str): method destroy_server (line 49) | def destroy_server(self, id:int): method publish_message (line 52) | def publish_message(self, id:int, topic:str, message:str): method create_client (line 56) | def create_client(self, url:str, cbMsg:CB_ON_MSG): method destroy_client (line 59) | def destroy_client(self, id:int): method subcribe_topic (line 62) | def subcribe_topic(self, id:int, topic:str): method start_client (line 65) | def start_client(self, id:int): FILE: wtpy/wrapper/WtWrapper.py class WtWrapper (line 16) | class WtWrapper: method __init__ (line 26) | def __init__(self, engine): method on_engine_event (line 81) | def on_engine_event(self, evtid:int, evtDate:int, evtTime:int): method on_stra_init (line 94) | def on_stra_init(self, id:int): method on_session_event (line 101) | def on_session_event(self, id:int, udate:int, isBegin:bool): method on_stra_tick (line 111) | def on_stra_tick(self, id:int, stdCode:str, newTick:POINTER(WTSTickStr... method on_stra_calc (line 151) | def on_stra_calc(self, id:int, curDate:int, curTime:int): method on_stra_bar (line 158) | def on_stra_bar(self, id:int, stdCode:str, period:str, newBar:POINTER(... method on_stra_get_bar (line 179) | def on_stra_get_bar(self, id:int, stdCode:str, period:str, curBar:POIN... method on_stra_get_tick (line 215) | def on_stra_get_tick(self, id:int, stdCode:str, curTick:POINTER(WTSTic... method on_stra_get_position (line 265) | def on_stra_get_position(self, id:int, stdCode:str, qty:float, isLast:... method on_hftstra_channel_evt (line 271) | def on_hftstra_channel_evt(self, id:int, trader:str, evtid:int): method on_hftstra_order (line 280) | def on_hftstra_order(self, id:int, localid:int, stdCode:str, isBuy:boo... method on_hftstra_trade (line 287) | def on_hftstra_trade(self, id:int, localid:int, stdCode:str, isBuy:boo... method on_hftstra_entrust (line 294) | def on_hftstra_entrust(self, id:int, localid:int, stdCode:str, bSucc:b... method on_hftstra_order_queue (line 302) | def on_hftstra_order_queue(self, id:int, stdCode:str, newOrdQue:POINTE... method on_hftstra_get_order_queue (line 324) | def on_hftstra_get_order_queue(self, id:int, stdCode:str, newOrdQue:PO... method on_hftstra_order_detail (line 352) | def on_hftstra_order_detail(self, id:int, stdCode:str, newOrdDtl:POINT... method on_hftstra_get_order_detail (line 368) | def on_hftstra_get_order_detail(self, id:int, stdCode:str, newOrdDtl:P... method on_hftstra_transaction (line 390) | def on_hftstra_transaction(self, id:int, stdCode:str, newTrans:POINTER... method on_hftstra_get_transaction (line 408) | def on_hftstra_get_transaction(self, d:int, stdCode:str, newTrans:POIN... method on_parser_event (line 431) | def on_parser_event(self, evtId:int, id:str): method on_parser_sub (line 447) | def on_parser_sub(self, id:str, fullCode:str, isForSub:bool): method on_executer_init (line 459) | def on_executer_init(self, id:str): method on_executer_cmd (line 467) | def on_executer_cmd(self, id:str, stdCode:str, targetPos:float): method write_log (line 475) | def write_log(self, level, message:str, catName:str = ""): method run (line 479) | def run(self): method release (line 482) | def release(self): method config (line 485) | def config(self, cfgfile:str = 'config.json', isFile:bool = True): method create_extended_parser (line 488) | def create_extended_parser(self, id:str) -> bool: method create_extended_executer (line 491) | def create_extended_executer(self, id:str) -> bool: method push_quote_from_exetended_parser (line 494) | def push_quote_from_exetended_parser(self, id:str, newTick:POINTER(WTS... method register_extended_module_callbacks (line 497) | def register_extended_module_callbacks(self,): method initialize_cta (line 507) | def initialize_cta(self, logCfg:str = "logcfg.json", isFile:bool = Tru... method initialize_hft (line 528) | def initialize_hft(self, logCfg:str = "logcfg.json", isFile:bool = Tru... method initialize_sel (line 557) | def initialize_sel(self, logCfg:str = "logcfg.json", isFile:bool = Tru... method cta_enter_long (line 579) | def cta_enter_long(self, id:int, stdCode:str, qty:float, usertag:str, ... method cta_exit_long (line 588) | def cta_exit_long(self, id:int, stdCode:str, qty:float, usertag:str, l... method cta_enter_short (line 597) | def cta_enter_short(self, id:int, stdCode:str, qty:float, usertag:str,... method cta_exit_short (line 606) | def cta_exit_short(self, id:int, stdCode:str, qty:float, usertag:str, ... method cta_get_bars (line 615) | def cta_get_bars(self, id:int, stdCode:str, period:str, count:int, isM... method cta_get_ticks (line 626) | def cta_get_ticks(self, id:int, stdCode:str, count:int): method cta_get_position_profit (line 635) | def cta_get_position_profit(self, id:int, stdCode:str): method cta_get_position_avgpx (line 644) | def cta_get_position_avgpx(self, id:int, stdCode:str): method cta_get_all_position (line 653) | def cta_get_all_position(self, id:int): method cta_get_position (line 660) | def cta_get_position(self, id:int, stdCode:str, usertag:str = ""): method cta_get_fund_data (line 670) | def cta_get_fund_data(self, id:int, flag:int) -> float: method cta_get_price (line 679) | def cta_get_price(self, stdCode:str) -> float: method cta_set_position (line 686) | def cta_set_position(self, id:int, stdCode:str, qty:float, usertag:str... method cta_get_tdate (line 695) | def cta_get_tdate(self) -> int: method cta_get_date (line 702) | def cta_get_date(self) -> int: method cta_get_time (line 709) | def cta_get_time(self) -> int: method cta_get_first_entertime (line 716) | def cta_get_first_entertime(self, id:int, stdCode:str) -> int: method cta_get_last_entertime (line 724) | def cta_get_last_entertime(self, id:int, stdCode:str) -> int: method cta_get_last_exittime (line 732) | def cta_get_last_exittime(self, id:int, stdCode:str) -> int: method cta_log_text (line 740) | def cta_log_text(self, id:int, message:str): method cta_get_detail_entertime (line 748) | def cta_get_detail_entertime(self, id:int, stdCode:str, usertag:str) -... method cta_get_detail_cost (line 758) | def cta_get_detail_cost(self, id:int, stdCode:str, usertag:str) -> float: method cta_get_detail_profit (line 768) | def cta_get_detail_profit(self, id:int, stdCode:str, usertag:str, flag... method cta_save_user_data (line 779) | def cta_save_user_data(self, id:int, key:str, val:str): method cta_load_user_data (line 788) | def cta_load_user_data(self, id:int, key:str, defVal:str = ""): method cta_sub_ticks (line 798) | def cta_sub_ticks(self, id:int, stdCode:str): method sel_get_bars (line 808) | def sel_get_bars(self, id:int, stdCode:str, period:str, count:int): method sel_get_ticks (line 818) | def sel_get_ticks(self, id:int, stdCode:str, count:int): method sel_save_user_data (line 827) | def sel_save_user_data(self, id:int, key:str, val:str): method sel_load_user_data (line 836) | def sel_load_user_data(self, id:int, key:str, defVal:str = ""): method sel_get_all_position (line 846) | def sel_get_all_position(self, id:int): method sel_get_position (line 853) | def sel_get_position(self, id:int, stdCode:str, usertag:str = ""): method sel_get_price (line 863) | def sel_get_price(self, stdCode:str): method sel_set_position (line 870) | def sel_set_position(self, id:int, stdCode:str, qty:float, usertag:str... method sel_get_date (line 879) | def sel_get_date(self): method sel_get_time (line 886) | def sel_get_time(self): method sel_log_text (line 893) | def sel_log_text(self, id:int, message:str): method sel_sub_ticks (line 901) | def sel_sub_ticks(self, id:int, stdCode:str): method hft_get_bars (line 911) | def hft_get_bars(self, id:int, stdCode:str, period:str, count:int): method hft_get_ticks (line 921) | def hft_get_ticks(self, id:int, stdCode:str, count:int): method hft_get_ordque (line 930) | def hft_get_ordque(self, id:int, stdCode:str, count:int): method hft_get_orddtl (line 939) | def hft_get_orddtl(self, id:int, stdCode:str, count:int): method hft_get_trans (line 948) | def hft_get_trans(self, id:int, stdCode:str, count:int): method hft_save_user_data (line 957) | def hft_save_user_data(self, id:int, key:str, val:str): method hft_load_user_data (line 966) | def hft_load_user_data(self, id:int, key:str, defVal:str = ""): method hft_get_position (line 976) | def hft_get_position(self, id:int, stdCode:str): method hft_get_position_profit (line 985) | def hft_get_position_profit(self, id:int, stdCode:str): method hft_get_undone (line 994) | def hft_get_undone(self, id:int, stdCode:str): method hft_get_price (line 1003) | def hft_get_price(self, stdCode:str): method hft_get_date (line 1010) | def hft_get_date(self): method hft_get_time (line 1017) | def hft_get_time(self): method hft_get_secs (line 1024) | def hft_get_secs(self): method hft_log_text (line 1031) | def hft_log_text(self, id:int, message:str): method hft_sub_ticks (line 1039) | def hft_sub_ticks(self, id:int, stdCode:str): method hft_sub_order_queue (line 1047) | def hft_sub_order_queue(self, id:int, stdCode:str): method hft_sub_order_detail (line 1055) | def hft_sub_order_detail(self, id:int, stdCode:str): method hft_sub_transaction (line 1063) | def hft_sub_transaction(self, id:int, stdCode:str): method hft_cancel (line 1071) | def hft_cancel(self, id:int, localid:int): method hft_cancel_all (line 1079) | def hft_cancel_all(self, id:int, stdCode:str, isBuy:bool): method hft_buy (line 1089) | def hft_buy(self, id:int, stdCode:str, price:float, qty:float, userTag... method hft_sell (line 1100) | def hft_sell(self, id:int, stdCode:str, price:float, qty:float, userTa... method create_cta_context (line 1113) | def create_cta_context(self, name:str) -> int: method create_hft_context (line 1121) | def create_hft_context(self, name:str, trader:str, agent:bool) -> int: method create_sel_context (line 1131) | def create_sel_context(self, name:str, date:int, time:int, period:str,... method reg_cta_factories (line 1140) | def reg_cta_factories(self, factFolder:str): method reg_hft_factories (line 1143) | def reg_hft_factories(self, factFolder:str): method reg_sel_factories (line 1146) | def reg_sel_factories(self, factFolder:str): method reg_exe_factories (line 1149) | def reg_exe_factories(self, factFolder:str):