Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save danielhamelberg/0a27a6a7b0a76c3182d4253f507f2379 to your computer and use it in GitHub Desktop.

Select an option

Save danielhamelberg/0a27a6a7b0a76c3182d4253f507f2379 to your computer and use it in GitHub Desktop.
{
"Advanced_Risk_Management_Techniques": {
"Cross-Validation_and_Backtesting": {
"Ensures_Data_Integrity_and_Prevents_Overfitting": "Cross-validation divides data into subsets to validate model performance, while backtesting tests strategies on historical data to ensure robustness."
},
"Dynamic_Hedging_and_Adaptation": {
"Adjusts_Positions_Continuously_for_Desired_Risk_Levels_Enhancing_Adaptability": "Dynamic hedging involves continuously adjusting positions to manage risk effectively."
},
"Ensemble_Methods": {
"Bagging_Boosting_Stacking_to_Improve_Robustness_and_Reduce_Overfitting": "Ensemble methods combine multiple models to enhance prediction accuracy and robustness."
},
"Regular_Updates_and_Retraining": {
"Keeps_Models_Relevant_to_Current_Market_Conditions_Preventing_Overfitting_to_Outdated_Data": "Regularly updating and retraining models ensures they remain effective under changing market conditions."
},
"Regularization_Techniques": {
"L1_L2_Regularization_to_Simplify_Models_Enhancing_Generalization": "Regularization techniques prevent overfitting by penalizing complex models, promoting simplicity and better generalization."
},
"Risk_Parity_and_Diversification": {
"Allocates_Risk_Equally_Promoting_Diversification_and_Reducing_Specific_Asset_Risk": "This technique aims for a balanced risk distribution across the portfolio."
},
"Stress_Testing_and_Scenario_Analysis": {
"Simulates_Extreme_Conditions_to_Evaluate_Strategy_Resilience": "These techniques test the robustness of trading strategies under extreme market conditions."
}
},
"Data_Preprocessing": {
"Cleaning_Techniques": {
"Accuracy": "Ensuring that the data is free from errors, which is crucial for making reliable predictions. Techniques include removing or correcting erroneous values and outliers.",
"Completeness": "Making sure that the dataset contains all necessary information without missing values. Methods include filling missing values using statistical methods like mean, median, or mode imputation."
},
"Feature_Encoding": {
"Interpretability": "Transforming categorical data into a numerical format that is understandable by machine learning models. Techniques include one-hot encoding and label encoding.",
"Representation": "Ensuring that the encoded data maintains the original meaning and relationships of the categories."
},
"Feature_Scaling": {
"Consistency": "Standardizing the range of independent variables to ensure that each feature contributes equally to the analysis. Techniques like min-max scaling and standardization are commonly used.",
"Normalization": "Adjusting the data to a common scale without distorting differences in the ranges of values. This helps in speeding up the convergence of learning algorithms."
}
},
"Dependency_Mapping": {
"Adaptability_and_Learning_Efficiency": {
"Supported_by_Ensemble_Methods_Dynamic_Hedging_and_Adaptation_and_Regular_Updates_and_Retraining": "These methods enhance the adaptability and robustness of models, ensuring they remain effective."
},
"Data_Accuracy_and_Completeness": {
"Supported_by_Cross-Validation_and_Backtesting": "These techniques ensure the integrity and validation of data used in models."
},
"Reward_Optimization": {
"Supported_by_Risk_Parity_and_Diversification": "Balancing risk across the portfolio helps in optimizing rewards by minimizing potential losses and ensuring steady gains."
},
"Robustness_and_Generalization": {
"Supported_by_Cross-Validation_and_Backtesting_Regularization_Techniques_Ensemble_Methods_and_Stress_Testing_and_Scenario_Analysis": "These techniques collectively ensure that models perform well and generalize to new data without overfitting."
},
"Trend_Identification_and_Signal_Strength": {
"Indirectly_Benefits_from_Techniques_Ensuring_Robust_Model_Performance": "Robust models help in accurately identifying trends and signals."
}
},
"Feature_Engineering": {
"Advanced_Feature_Generation": {
"Dimensionality_Reduction": "Techniques like PCA (Principal Component Analysis) and t-SNE (t-distributed Stochastic Neighbor Embedding) are used to reduce the number of features while retaining essential information.",
"Latent_Features": "Extracting hidden features using methods like autoencoders to uncover underlying patterns in the data."
},
"Statistical_Features": {
"Predictive_Power": "Identifying features that have a strong correlation with the target variable and are likely to improve model predictions.",
"Variability": "Creating features that capture the variability within the data, such as standard deviation, variance, and range."
},
"Technical_Indicators": {
"Signal_Strength": "Measuring the strength of signals provided by technical indicators to make informed trading decisions.",
"Trend_Identification": "Utilizing indicators like moving averages, MACD, and Bollinger Bands to identify market trends."
}
},
"Machine_Learning_Models": {
"LSTM/GRU": {
"Memory_Retention": "These models retain information over long sequences, making them suitable for time series prediction.",
"Temporal_Dynamics": "Long Short-Term Memory (LSTM) and Gated Recurrent Units (GRU) are designed to capture temporal dependencies in sequential data."
},
"Neural_Networks": {
"Adaptability": "Neural networks can learn complex patterns and adapt to different types of data.",
"Learning_Efficiency": "Advanced architectures and training techniques enhance the efficiency of learning from data."
},
"Random_Forest": {
"Feature_Importance": "Providing insights into the importance of different features through the aggregated decision trees.",
"Robustness": "Combining multiple decision trees to improve model stability and reduce overfitting."
},
"SVM": {
"Generalization": "SVMs are effective in generalizing well to unseen data by finding an optimal hyperplane.",
"Margin_Maximization": "Support Vector Machines aim to maximize the margin between different classes for better separation."
},
"XGBoost": {
"Boosting": "An ensemble technique that combines the predictions of several weak learners to form a strong learner.",
"Precision": "XGBoost is known for its high precision and efficiency in handling large datasets."
}
},
"Risk_Management_Techniques": {
"Conditional_Value_at_Risk_(CVaR)": {
"Average_Loss_Beyond_VaR": "CVaR provides an average loss measure for losses that exceed the VaR threshold."
},
"Dynamic_Hedging": {
"Continuous_Risk_Protection_Adjustment": "Adjusting hedge positions dynamically to maintain desired risk levels in response to market changes."
},
"Machine_Learning-Based_Models": {
"Predictive_Risk_Analysis": "Using machine learning models to predict potential risks and adjust strategies accordingly."
},
"Risk_Parity": {
"Equal_Risk_Distribution_Across_Assets": "Risk parity focuses on distributing risk equally across various assets to achieve a balanced portfolio."
},
"Stress_Testing": {
"Evaluating_Extreme_Market_Conditions": "Stress testing involves simulating extreme scenarios to assess the resilience of trading strategies."
},
"Value_at_Risk_(VaR)": {
"Max_Potential_Loss_Estimation": "VaR estimates the maximum potential loss over a specified time period with a given confidence level."
}
},
"Trade_Execution_and_RL_Environment": {
"Integration_Points": [
{
"Signal_Generation_to_Environment_Setup": {
"Subcomponents": [
{
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": 0.9,
"Simple_Moving_Average": 20
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30
}
}
},
{
"State_Space": {
"Price_Data": {
"Adjustments": true,
"Frequency": "1min",
"Time_Frame": 60
},
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Smoothing_Factor": 0.9
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30
}
}
}
}
]
}
}
]
},
"Training_Algorithms": {
"DQN": {
"Exploration_vs_Exploitation": "Balancing the trade-off between exploring new actions and exploiting known ones to maximize rewards.",
"Reward_Optimization": "Deep Q-Networks (DQN) optimize the expected cumulative reward through reinforcement learning."
}
},
"latent_dependency_map_trading_ml": {
"RL_Gym_MTSim": {
"Environment_Setup": {
"Action_Space": {
"Buy": {
"Execution_Price": 100.0,
"Signal_Strength": 0.8
},
"Sell": {
"Execution_Price": 95.0,
"Signal_Strength": -0.6
}
},
"Reward_Function": {
"Profit_and_Loss": {
"Calculation_Method": "mean",
"Time_Frame": 60
},
"Risk_Adjusted_Returns": {
"Sharpe_Ratio_Adjusted": 1.5,
"Sortino_Ratio": 2.0
}
},
"State_Space": {
"Advanced_Feature_Generation": {
"Autoencoders": {
"Encoded_Features": {
"Encoder_Architecture": {
"Hidden_Layers": [
128,
64
],
"Input_Layer": 256,
"Latent_Space": 32
},
"Training_Parameters": {
"Epochs": 100,
"Learning_Rate": 0.01
}
}
},
"Fourier_Transforms": {
"FFT_Coefficients": {
"Amplitude": [
0.4,
0.3,
0.2,
0.1
],
"Frequency_Bands": [
0,
5,
10,
20
],
"Phase": [
0.1,
0.2,
0.3,
0.4
]
}
},
"Principal_Component_Analysis": {
"PCA_Components": {
"Explained_Variance_Ratio": [
0.5,
0.3,
0.2
],
"Number_of_Components": 3
}
},
"Wavelet_Transforms": {
"Wavelet_Coefficients": {
"Approximation_Coefficients": [
0.6,
0.4
],
"Decomposition_Level": 2,
"Detail_Coefficients": [
0.2,
0.3
],
"Wavelet_Type": "db4"
}
}
},
"Feature_Generation": {
"Statistical_Features": {
"Kurtosis": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Median": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Skewness": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Standard_Deviation": {
"Calculation_Method": "mean",
"Window_Size": 14
}
},
"Technical_Indicator_Features": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
},
"Time_Series_Features": {
"Lagged_Values": {
"Include_Current": true,
"Lags": [
1,
5,
10,
20
]
},
"Rolling_Window_Statistics": {
"Rolling_Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Rolling_Std": {
"Calculation_Method": "mean",
"Window_Size": 14
}
}
}
},
"Price_Data": {
"Adjustments": true,
"Frequency": "1min",
"Time_Frame": 60
},
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
}
}
},
"Simulation_Data": {
"Historical_Price_Data": {
"Data_Cleaning": {
"Data_Normalization": {
"Method": "min-max",
"Parameters": [
0,
1
]
},
"Missing_Data_Handling": {
"Method": "interpolation",
"Parameters": "linear"
},
"Outlier_Removal": {
"Method": "z-score",
"Parameters": 3
}
},
"Data_Sources": {
"Source_1": {
"Format": "csv",
"Frequency": "1min",
"Type": "price"
},
"Source_2": {
"Format": "json",
"Frequency": "1day",
"Type": "fundamental"
}
}
},
"Synthetic_Data": {
"Data_Generation_Methods": {
"GAN": {
"Architecture": {
"Discriminator": {
"Hidden_Layers": [
128,
64
],
"Input_Layer": 256,
"Output_Layer": 1
},
"Generator": {
"Hidden_Layers": [
128,
256
],
"Input_Layer": 100,
"Output_Layer": 256
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01
}
},
"Monte_Carlo_Simulation": {
"Drift": 0.01,
"Number_of_Simulations": 1000,
"Time_Step": 1,
"Volatility": 0.02
}
}
}
},
"Training_Algorithm": {
"A2C": {
"Network_Architecture": {
"Actor_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "softmax",
"Number_of_Neurons": 3
}
},
"Critic_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 1
}
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Discount_Factor": 0.99,
"Entropy_Coefficient": 0.01,
"Learning_Rate": 0.01,
"Value_Loss_Coefficient": 0.5
}
},
"DQN": {
"Network_Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 3
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Discount_Factor": 0.95,
"Exploration_Rate": 0.1,
"Learning_Rate": 0.01,
"Replay_Buffer_Size": 100000
}
},
"PPO": {
"Policy_Architecture": {
"Actor_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "softmax",
"Number_of_Neurons": 3
}
},
"Critic_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 1
}
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Clip_Range": 0.2,
"Entropy_Coefficient": 0.0,
"Epochs": 100,
"Learning_Rate": 0.01,
"Value_Loss_Coefficient": 0.5
}
}
}
},
"Trade_Execution": {
"Signal_Generation": {
"Advanced_Feature_Generation": {
"Autoencoders": {
"Encoded_Features": {
"Encoder_Architecture": {
"Hidden_Layers": [
128,
64
],
"Input_Layer": 256,
"Latent_Space": 32
},
"Training_Parameters": {
"Epochs": 100,
"Learning_Rate": 0.01
}
}
},
"Fourier_Transforms": {
"FFT_Coefficients": {
"Amplitude": [
0.4,
0.3,
0.2,
0.1
],
"Frequency_Bands": [
0,
5,
10,
20
],
"Phase": [
0.1,
0.2,
0.3,
0.4
]
}
},
"Principal_Component_Analysis": {
"PCA_Components": {
"Explained_Variance_Ratio": [
0.5,
0.3,
0.2
],
"Number_of_Components": 3
}
},
"Wavelet_Transforms": {
"Wavelet_Coefficients": {
"Approximation_Coefficients": [
0.6,
0.4
],
"Decomposition_Level": 2,
"Detail_Coefficients": [
0.2,
0.3
],
"Wavelet_Type": "db4"
}
}
},
"Feature_Generation": {
"Statistical_Features": {
"Kurtosis": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Median": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Skewness": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Standard_Deviation": {
"Calculation_Method": "mean",
"Window_Size": 14
}
},
"Technical_Indicator_Features": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
},
"Time_Series_Features": {
"Lagged_Values": {
"Include_Current": true,
"Lags": [
1,
5,
10,
20
]
},
"Rolling_Window_Statistics": {
"Rolling_Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Rolling_Std": {
"Calculation_Method": "mean",
"Window_Size": 14
}
}
}
},
"Machine_Learning_Models": {
"GRU": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "sigmoid",
"Number_of_Neurons": 1
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01,
"Optimizer": "adam"
}
},
"LSTM": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "sigmoid",
"Number_of_Neurons": 1
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01,
"Optimizer": "adam"
}
},
"Neural_Networks": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "sigmoid",
"Number_of_Neurons": 1
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01,
"Optimizer": "adam"
}
},
"Random_Forest": {
"Feature_Importance": [
0.3,
0.2,
0.15,
0.1,
0.05
],
"Max_Depth": {
"Max_Depth": 10,
"Min_Depth": 2
},
"Number_of_Trees": {
"Max_Trees": 500,
"Min_Trees": 50
}
},
"SVM": {
"Kernel": {
"Parameters": [
0.1,
1,
10
],
"Type": "rbf"
},
"Regularization": {
"C_Value": 1.0,
"Kernel_Coefficient": 0.1
}
},
"XGBoost": {
"Parameters": {
"Colsample_Bytree": 0.8,
"Gamma": 0.0,
"Learning_Rate": 0.01,
"Max_Depth": 6,
"Min_Child_Weight": 1,
"Number_of_Trees": 100,
"Scale_Pos_Weight": 1,
"Subsample": 0.8
}
}
},
"Signal_Validation": {
"Backtesting": {
"Historical_Data_Period": {
"End_Date": "2023-01-01",
"Start_Date": "2020-01-01"
},
"Performance_Metrics": {
"Max_Drawdown": {
"Calculation_Method": "mean"
},
"Return_on_Investment": {
"Calculation_Method": "mean"
},
"Sharpe_Ratio": {
"Calculation_Method": "mean"
},
"Volatility": {
"Calculation_Method": "mean"
}
}
},
"Paper_Trading": {
"Execution_Speed": {
"Real_Time": true,
"Simulated_Time": false
},
"Virtual_Capital": {
"Currency": "USD",
"Initial_Capital": 10000
}
}
},
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
}
}
},
"Trade_Execution_and_RL_Environment": {
"Integration_Points": [
{
"Signal_Generation_to_Environment_Setup": {
"Components": [
"Technical_Indicators",
"State_Space"
],
"Description": "Using signal generation methods to define the state and action space in the RL environment.",
"Subcomponents": [
{
"Technical_Indicators": [
{
"Moving_Averages": {
"Exponential_Moving_Average": {},
"Simple_Moving_Average": {}
}
},
{
"RSI": {
"Overbought_Level": {},
"Oversold_Level": {},
"Period": {}
}
},
{
"MACD": {
"Fast_Period": {},
"Histogram": {
"Negative": {},
"Positive": {}
},
"Signal_Line": {},
"Slow_Period": {}
}
},
{
"Bollinger_Bands": {
"Lower_Band": {},
"Middle_Band": {},
"Period": {},
"Standard_Deviation_Multiplier": {},
"Upper_Band": {}
}
}
]
},
{
"State_Space": [
{
"Price_Data": {
"Adjustments": {},
"Frequency": {},
"Time_Frame": {}
}
},
{
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": {},
"Middle_Band": {},
"Period": {},
"Standard_Deviation_Multiplier": {},
"Upper_Band": {}
},
"MACD": {
"Fast_Period": {},
"Histogram": {
"Negative": {},
"Positive": {}
},
"Signal_Line": {},
"Slow_Period": {}
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": {},
"Smoothing_Factor": {}
},
"Simple_Moving_Average": {
"Calculation_Method": {},
"Period": {}
}
},
"RSI": {
"Overbought_Level": {},
"Oversold_Level": {},
"Period": {}
}
}
}
]
}
]
}
},
{
"Feature_Generation_and_Advanced_Feature_Generation_to_Training_Algorithm": {
"Components": [
"Feature_Generation",
"Advanced_Feature_Generation",
"Training_Algorithm"
],
"Description": "Enhancing training algorithms with advanced feature generation techniques.",
"Subcomponents": [
{
"Feature_Generation": [
{
"Statistical_Features": {
"Kurtosis": {
"Calculation_Method": {},
"Window_Size": {}
},
"Mean": {
"Calculation_Method": {},
"Window_Size": {}
},
"Median": {
"Calculation_Method": {},
"Window_Size": {}
},
"Skewness": {
"Calculation_Method": {},
"Window_Size": {}
},
"Standard_Deviation": {
"Calculation_Method": {},
"Window_Size": {}
}
}
},
{
"Time_Series_Features": {
"Lagged_Values": {
"Include_Current": {},
"Lags": {}
},
"Rolling_Window_Statistics": {
"Rolling_Mean": {
"Calculation_Method": {},
"Window_Size": {}
},
"Rolling_Std": {
"Calculation_Method": {},
"Window_Size": {}
}
}
}
},
{
"Technical_Indicator_Features": {
"Bollinger_Bands": {
"Lower_Band": {},
"Middle_Band": {},
"Period": {},
"Standard_Deviation_Multiplier": {},
"Upper_Band": {}
},
"MACD": {
"Fast_Period": {},
"Histogram": {
"Negative": {},
"Positive": {}
},
"Signal_Line": {},
"Slow_Period": {}
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": {},
"Smoothing_Factor": {}
},
"Simple_Moving_Average": {
"Calculation_Method": {},
"Period": {}
}
},
"RSI": {
"Overbought_Level": {},
"Oversold_Level": {},
"Period": {}
}
}
}
]
},
{
"Advanced_Feature_Generation": [
{
"Fourier_Transforms": {
"FFT_Coefficients": {
"Amplitude": {},
"Frequency_Bands": {},
"Phase": {}
}
}
},
{
"Wavelet_Transforms": {
"Wavelet_Coefficients": {
"Approximation_Coefficients": {},
"Decomposition_Level": {},
"Detail_Coefficients": {},
"Wavelet_Type": {}
}
}
},
{
"Principal_Component_Analysis": {
"PCA_Components": {
"Explained_Variance_Ratio": {},
"Number_of_Components": {}
}
}
},
{
"Autoencoders": {
"Encoded_Features": {
"Encoder_Architecture": {
"Hidden_Layers": {},
"Input_Layer": {},
"Latent_Space": {}
},
"Training_Parameters": {
"Epochs": {},
"Learning_Rate": {}
}
}
}
}
]
},
{
"Training_Algorithm": [
{
"DQN": {
"Network_Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Training_Parameters": {
"Batch_Size": {},
"Discount_Factor": {},
"Exploration_Rate": {},
"Learning_Rate": {},
"Replay_Buffer_Size": {}
}
}
},
{
"PPO": {
"Policy_Architecture": {
"Actor_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Critic_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
}
},
"Training_Parameters": {
"Batch_Size": {},
"Clip_Range": {},
"Entropy_Coefficient": {},
"Epochs": {},
"Learning_Rate": {},
"Value_Loss_Coefficient": {}
}
}
},
{
"A2C": {
"Network_Architecture": {
"Actor_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Critic_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
}
},
"Training_Parameters": {
"Batch_Size": {},
"Discount_Factor": {},
"Entropy_Coefficient": {},
"Learning_Rate": {},
"Value_Loss_Coefficient": {}
}
}
}
]
}
]
}
},
{
"ML_Models_and_Training_Algorithm": {
"Components": [
"Machine_Learning_Models",
"Training_Algorithm"
],
"Description": "Training machine learning models with RL algorithms to enhance trade execution strategies.",
"Subcomponents": [
{
"Machine_Learning_Models": [
{
"SVM": {
"Kernel": {
"Parameters": {},
"Type": {}
},
"Regularization": {
"C_Value": {},
"Kernel_Coefficient": {}
}
}
},
{
"Random_Forest": {
"Feature_Importance": {},
"Max_Depth": {
"Max_Depth": {},
"Min_Depth": {}
},
"Number_of_Trees": {
"Max_Trees": {},
"Min_Trees": {}
}
}
},
{
"Neural_Networks": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Training_Parameters": {
"Batch_Size": {},
"Epochs": {},
"Learning_Rate": {},
"Optimizer": {}
}
}
},
{
"LSTM": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Training_Parameters": {
"Batch_Size": {},
"Epochs": {},
"Learning_Rate": {},
"Optimizer": {}
}
}
},
{
"GRU": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Layer_2": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Input_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
},
"Output_Layer": {
"Activation_Function": {},
"Number_of_Neurons": {}
}
},
"Training_Parameters": {
"Batch_Size": {},
"Epochs": {},
"Learning_Rate": {},
"Optimizer": {}
}
}
},
{
"XGBoost": {
"Parameters": {
"Colsample_Bytree": {},
"Gamma": {},
"Learning_Rate": {},
"Max_Depth": {},
"Min_Child_Weight": {},
"Number_of_Trees": {},
"Scale_Pos_Weight": {},
"Subsample": {}
}
}
}
]
},
{
"Training_Algorithm": [
{
"DQN": {
"Network_Architecture": "Input"
}
}
]
}
]
}
}
],
"Post_Conditions": {
"Risk_Management_Strategies": {
"Position_Sizing": {
"Portfolio_Risk": {},
"Risk_Per_Trade": {}
},
"Stop_Loss_Orders": {
"Execution_Timings": {},
"Order_Types": {}
},
"Take_Profit_Orders": {
"Execution_Timings": {},
"Order_Types": {}
}
}
},
"RL_Gym_MTSim": {
"Environment_Setup": {
"Action_Space": {
"Buy": {
"Execution_Price": 100.0,
"Signal_Strength": 0.8
},
"Sell": {
"Execution_Price": 95.0,
"Signal_Strength": -0.6
}
},
"Reward_Function": {
"Profit_and_Loss": {
"Calculation_Method": "mean",
"Time_Frame": 60
},
"Risk_Adjusted_Returns": {
"Sharpe_Ratio_Adjusted": 1.5,
"Sortino_Ratio": 2.0
}
},
"State_Space": {
"Advanced_Feature_Generation": {
"Autoencoders": {
"Encoded_Features": {
"Encoder_Architecture": {
"Hidden_Layers": [
128,
64
],
"Input_Layer": 256,
"Latent_Space": 32
},
"Training_Parameters": {
"Epochs": 100,
"Learning_Rate": 0.01
}
}
},
"Fourier_Transforms": {
"FFT_Coefficients": {
"Amplitude": [
0.4,
0.3,
0.2,
0.1
],
"Frequency_Bands": [
0,
5,
10,
20
],
"Phase": [
0.1,
0.2,
0.3,
0.4
]
}
},
"Principal_Component_Analysis": {
"PCA_Components": {
"Explained_Variance_Ratio": [
0.5,
0.3,
0.2
],
"Number_of_Components": 3
}
},
"Wavelet_Transforms": {
"Wavelet_Coefficients": {
"Approximation_Coefficients": [
0.6,
0.4
],
"Decomposition_Level": 2,
"Detail_Coefficients": [
0.2,
0.3
],
"Wavelet_Type": "db4"
}
}
},
"Feature_Generation": {
"Statistical_Features": {
"Kurtosis": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Median": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Skewness": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Standard_Deviation": {
"Calculation_Method": "mean",
"Window_Size": 14
}
},
"Technical_Indicator_Features": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
},
"Time_Series_Features": {
"Lagged_Values": {
"Include_Current": true,
"Lags": [
1,
5,
10,
20
]
},
"Rolling_Window_Statistics": {
"Rolling_Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Rolling_Std": {
"Calculation_Method": "mean",
"Window_Size": 14
}
}
}
},
"Price_Data": {
"Adjustments": true,
"Frequency": "1min",
"Time_Frame": 60
},
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
}
}
},
"Simulation_Data": {
"Historical_Price_Data": {
"Data_Cleaning": {
"Data_Normalization": {
"Method": "min-max",
"Parameters": [
0,
1
]
},
"Missing_Data_Handling": {
"Method": "interpolation",
"Parameters": "linear"
},
"Outlier_Removal": {
"Method": "z-score",
"Parameters": 3
}
},
"Data_Sources": {
"Source_1": {
"Format": "csv",
"Frequency": "1min",
"Type": "price"
},
"Source_2": {
"Format": "json",
"Frequency": "1day",
"Type": "fundamental"
}
}
},
"Synthetic_Data": {
"Data_Generation_Methods": {
"GAN": {
"Architecture": {
"Discriminator": {
"Hidden_Layers": [
128,
64
],
"Input_Layer": 256,
"Output_Layer": 1
},
"Generator": {
"Hidden_Layers": [
128,
256
],
"Input_Layer": 100,
"Output_Layer": 256
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01
}
},
"Monte_Carlo_Simulation": {
"Drift": 0.01,
"Number_of_Simulations": 1000,
"Time_Step": 1,
"Volatility": 0.02
}
}
}
},
"Training_Algorithm": {
"A2C": {
"Network_Architecture": {
"Actor_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "softmax",
"Number_of_Neurons": 3
}
},
"Critic_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 1
}
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Discount_Factor": 0.99,
"Entropy_Coefficient": 0.01,
"Learning_Rate": 0.01,
"Value_Loss_Coefficient": 0.5
}
},
"DQN": {
"Network_Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 3
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Discount_Factor": 0.95,
"Exploration_Rate": 0.1,
"Learning_Rate": 0.01,
"Replay_Buffer_Size": 100000
}
},
"PPO": {
"Policy_Architecture": {
"Actor_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "softmax",
"Number_of_Neurons": 3
}
},
"Critic_Network": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 1
}
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Clip_Range": 0.2,
"Entropy_Coefficient": 0.0,
"Epochs": 100,
"Learning_Rate": 0.01,
"Value_Loss_Coefficient": 0.5
}
}
}
},
"Trade_Execution": {
"Signal_Generation": {
"Advanced_Feature_Generation": {
"Autoencoders": {
"Encoded_Features": {
"Encoder_Architecture": {
"Hidden_Layers": [
128,
64
],
"Input_Layer": 256,
"Latent_Space": 32
},
"Training_Parameters": {
"Epochs": 100,
"Learning_Rate": 0.01
}
}
},
"Fourier_Transforms": {
"FFT_Coefficients": {
"Amplitude": [
0.4,
0.3,
0.2,
0.1
],
"Frequency_Bands": [
0,
5,
10,
20
],
"Phase": [
0.1,
0.2,
0.3,
0.4
]
}
},
"Principal_Component_Analysis": {
"PCA_Components": {
"Explained_Variance_Ratio": [
0.5,
0.3,
0.2
],
"Number_of_Components": 3
}
},
"Wavelet_Transforms": {
"Wavelet_Coefficients": {
"Approximation_Coefficients": [
0.6,
0.4
],
"Decomposition_Level": 2,
"Detail_Coefficients": [
0.2,
0.3
],
"Wavelet_Type": "db4"
}
}
},
"Feature_Generation": {
"Statistical_Features": {
"Kurtosis": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Median": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Skewness": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Standard_Deviation": {
"Calculation_Method": "mean",
"Window_Size": 14
}
},
"Technical_Indicator_Features": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
},
"Time_Series_Features": {
"Lagged_Values": {
"Include_Current": true,
"Lags": [
1,
5,
10,
20
]
},
"Rolling_Window_Statistics": {
"Rolling_Mean": {
"Calculation_Method": "mean",
"Window_Size": 14
},
"Rolling_Std": {
"Calculation_Method": "mean",
"Window_Size": 14
}
}
}
},
"Machine_Learning_Models": {
"GRU": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "sigmoid",
"Number_of_Neurons": 1
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01,
"Optimizer": "adam"
}
},
"LSTM": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "tanh",
"Number_of_Neurons": 64
},
"Layer_2": {
"Activation_Function": "tanh",
"Number_of_Neurons": 32
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 128
},
"Output_Layer": {
"Activation_Function": "sigmoid",
"Number_of_Neurons": 1
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01,
"Optimizer": "adam"
}
},
"Neural_Networks": {
"Architecture": {
"Hidden_Layers": {
"Layer_1": {
"Activation_Function": "relu",
"Number_of_Neurons": 128
},
"Layer_2": {
"Activation_Function": "relu",
"Number_of_Neurons": 64
}
},
"Input_Layer": {
"Activation_Function": "linear",
"Number_of_Neurons": 256
},
"Output_Layer": {
"Activation_Function": "sigmoid",
"Number_of_Neurons": 1
}
},
"Training_Parameters": {
"Batch_Size": 64,
"Epochs": 100,
"Learning_Rate": 0.01,
"Optimizer": "adam"
}
},
"Random_Forest": {
"Feature_Importance": [
0.3,
0.2,
0.15,
0.1,
0.05
],
"Max_Depth": {
"Max_Depth": 10,
"Min_Depth": 2
},
"Number_of_Trees": {
"Max_Trees": 500,
"Min_Trees": 50
}
},
"SVM": {
"Kernel": {
"Parameters": [
0.1,
1,
10
],
"Type": "rbf"
},
"Regularization": {
"C_Value": 1.0,
"Kernel_Coefficient": 0.1
}
},
"XGBoost": {
"Parameters": {
"Colsample_Bytree": 0.8,
"Gamma": 0.0,
"Learning_Rate": 0.01,
"Max_Depth": 6,
"Min_Child_Weight": 1,
"Number_of_Trees": 100,
"Scale_Pos_Weight": 1,
"Subsample": 0.8
}
}
},
"Signal_Validation": {
"Backtesting": {
"Historical_Data_Period": {
"End_Date": "2023-01-01",
"Start_Date": "2020-01-01"
},
"Performance_Metrics": {
"Max_Drawdown": {
"Calculation_Method": "mean"
},
"Return_on_Investment": {
"Calculation_Method": "mean"
},
"Sharpe_Ratio": {
"Calculation_Method": "mean"
},
"Volatility": {
"Calculation_Method": "mean"
}
}
},
"Paper_Trading": {
"Execution_Speed": {
"Real_Time": true,
"Simulated_Time": false
},
"Virtual_Capital": {
"Currency": "USD",
"Initial_Capital": 10000
}
}
},
"Technical_Indicators": {
"Bollinger_Bands": {
"Lower_Band": 95.0,
"Middle_Band": 100.0,
"Period": 14,
"Standard_Deviation_Multiplier": 2,
"Upper_Band": 105.0
},
"MACD": {
"Fast_Period": 12,
"Histogram": {
"Negative": -0.3,
"Positive": 0.6
},
"Signal_Line": 0.1,
"Slow_Period": 26
},
"Moving_Averages": {
"Exponential_Moving_Average": {
"Period": 14,
"Smoothing_Factor": 0.9
},
"Simple_Moving_Average": {
"Calculation_Method": "mean",
"Period": 14
}
},
"RSI": {
"Overbought_Level": 70,
"Oversold_Level": 30,
"Period": 14
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment