general: WF_CRYPTO_REPO: ..\\wf_optim_crypto global_trainig_exps: &global_trainig_exps data\global_training_period_results\20260113_exp_global_train_unseen.csv function_caller: &function_caller scripts/function_caller.r analyse_helper: &analyse_helper scripts/analyse_helper.r bootstrap_helper: &bootstrap_helper scripts/bootstrap_helper.r seasonality_helper: &seasonality_helper scripts/seasonality_helper.r input_rmd: &input_rmd reports/wf_optim_crypto_charts_table.rmd output_pdf: &output_pdf output/wf_optim_crypto_charts_table.pdf train_strat_1_raw: &train_strat_1_raw data\global_training_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\01_converted_to_xts.rds train_strat_1_result: &train_strat_1_result data\global_training_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\09_wf_test_evalued.rds train_strat_1_metric: &train_strat_1_metric data\global_training_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\metrics.yaml train_strat_1_positions: &train_strat_1_positions data\global_training_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\04_positions.rds train_strat_1_wf_indexes: &train_strat_1_wf_indexes data\global_training_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\06_wf_indexes.rds train_strat_2_result: &train_strat_2_result data\global_training_period_results\dvc-exps\TRAIN_14_TEST_10_BTC\09_wf_test_evalued.rds train_strat_2_metric: &train_strat_2_metric data\global_training_period_results\dvc-exps\TRAIN_14_TEST_10_BTC\metrics.yaml train_strat_2_positions: &train_strat_2_positions data\global_training_period_results\dvc-exps\TRAIN_14_TEST_10_BTC\04_positions.rds train_strat_2_wf_indexes: &train_strat_2_wf_indexes data\global_training_period_results\dvc-exps\TRAIN_14_TEST_10_BTC\06_wf_indexes.rds train_strat_1_cost_sens: &train_strat_1_cost_sens output\15_cost_sensitivitiy.rds train_strat_1_cost_sens_stats: &train_strat_1_cost_sens_stats output\15_cost_sensitivitiy_stats.rds #unseen variable unseen_strat_1_result: &unseen_strat_1_result data\unseen_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\09_wf_test_evalued.rds unseen_strat_2_result: &unseen_strat_2_result data\unseen_period_results\dvc-exps\TRAIN_14_TEST_10_BTC\09_wf_test_evalued.rds unseen_strat_3_result: &unseen_strat_3_result data\unseen_period_results\dvc-exps\TRAIN_7_TEST_28_ETH\09_wf_test_evalued.rds unseen_strat_4_result: &unseen_strat_4_result data\unseen_period_results\dvc-exps\TRAIN_14_TEST_10_ETH\09_wf_test_evalued.rds unseen_strat_5_result: &unseen_strat_5_result data\unseen_period_results\dvc-exps\TRAIN_7_TEST_28_BNB\09_wf_test_evalued.rds unseen_strat_6_result: &unseen_strat_6_result data\unseen_period_results\dvc-exps\TRAIN_14_TEST_10_BNB\09_wf_test_evalued.rds unseen_strat_1_metric: &unseen_strat_1_metric data\unseen_period_results\dvc-exps\TRAIN_7_TEST_28_BTC\metrics.yaml unseen_strat_2_metric: &unseen_strat_2_metric data\unseen_period_results\dvc-exps\TRAIN_14_TEST_10_BTC\metrics.yaml unseen_strat_3_metric: &unseen_strat_3_metric data\unseen_period_results\dvc-exps\TRAIN_7_TEST_28_ETH\metrics.yaml unseen_strat_4_metric: &unseen_strat_4_metric data\unseen_period_results\dvc-exps\TRAIN_14_TEST_10_ETH\metrics.yaml unseen_strat_5_metric: &unseen_strat_5_metric data\unseen_period_results\dvc-exps\TRAIN_7_TEST_28_BNB\metrics.yaml unseen_strat_6_metric: &unseen_strat_6_metric data\unseen_period_results\dvc-exps\TRAIN_14_TEST_10_BNB\metrics.yaml unseen_strat_1_eq_curve: &unseen_strat_1_eq_curve output\11_01_BTC_7_28_equity_curve_xts.rds unseen_strat_2_eq_curve: &unseen_strat_2_eq_curve output\11_02_BTC_14_10_equity_curve_xts.rds unseen_strat_3_eq_curve: &unseen_strat_3_eq_curve output\11_03_ETH_7_28_equity_curve_xts.rds unseen_strat_4_eq_curve: &unseen_strat_4_eq_curve output\11_04_ETH_14_10_equity_curve_xts.rds unseen_strat_5_eq_curve: &unseen_strat_5_eq_curve output\11_05_BNB_7_28_equity_curve_xts.rds unseen_strat_6_eq_curve: &unseen_strat_6_eq_curve output\11_06_BNB_14_10_equity_curve_xts.rds unseen_strat_1_stats: &unseen_strat_1_stats output\11_01_BTC_7_28_stats_xts.rds unseen_strat_2_stats: &unseen_strat_2_stats output\11_02_BTC_14_10_stats_xts.rds unseen_strat_3_stats: &unseen_strat_3_stats output\11_03_ETH_7_28_stats_xts.rds unseen_strat_4_stats: &unseen_strat_4_stats output\11_04_ETH_14_10_stats_xts.rds unseen_strat_5_stats: &unseen_strat_5_stats output\11_05_BTC_BH_stats_xts.rds unseen_strat_6_stats: &unseen_strat_6_stats output\11_06_ETH_BH_stats_xts.rds unseen_strat_7_stats: &unseen_strat_7_stats output\11_07_BNB_7_28_stats_xts.rds unseen_strat_8_stats: &unseen_strat_8_stats output\11_08_BNB_14_10_stats_xts.rds unseen_strat_9_stats: &unseen_strat_9_stats output\11_09_BNB_BH_stats_xts.rds unseen_rets_7_28: &unseen_rets_7_28 output\13_01_merged_unseen_returns_7_28.rds unseen_rets_14_10: &unseen_rets_14_10 output\13_01_merged_unseen_returns_14_10.rds unseen_portfolio_7_28: &unseen_portfolio_7_28 output\13_01_merged_unseen_portfolio_7_28.rds unseen_portfolio_14_10: &unseen_portfolio_14_10 output\13_01_merged_unseen_portfolio_14_10.rds unseen_portfolio_combined: &unseen_portfolio_combined output\13_03_portfolio_combined.rds unseen_portfolio_BH: &unseen_portfolio_BH output\13_01_merged_unseen_portfolio_BH.rds unseen_portfolio_7_28_stats: &unseen_portfolio_7_28_stats output\14_01_merged_unseen_portfolio_7_28_stats.rds unseen_portfolio_14_10_stats: &unseen_portfolio_14_10_stats output\14_01_merged_unseen_portfolio_14_10_stats.rds unseen_portfolio_combined_stats: &unseen_portfolio_combined_stats output\14_01_portfolio_combined_stats.rds unseen_portfolio_BH_stats: &unseen_portfolio_BH_stats output\14_01_merged_unseen_portfolio_BH_stats.rds 01_generate_heatmap: script: *function_caller helper: *analyse_helper funs: - read.csv - generate_heatmap - saveRDS args: - noarg input: *global_trainig_exps output: output\01_sharpe_heatmap.rds 02_smooth_heatmap: script: *function_caller helper: scripts/smooth_matrix.R funs: - readRDS - smooth_matrix - saveRDS args: - sharpe_ratio input: output\01_sharpe_heatmap.rds output: output\02_smoothed_heatmap.rds 03_mean_per_tf: script: *function_caller helper: *analyse_helper funs: - read.csv - get_mean_per_tf - saveRDS args: - noarg input: *global_trainig_exps output: output\03_mean_sharpe_per_tf_df.rds 04_basic_stats_per_tf: script: *function_caller helper: *analyse_helper funs: - readRDS - get_basic_stats_per_tf - saveRDS args: - 1;5;10;15;30;60 input: *train_strat_1_raw output: output\04_basic_asset_desc_tbl.rds 05_trading_stats_per_tf: script: *function_caller helper: *analyse_helper funs: - readRDS - get_trading_stats_per_tf - saveRDS args: - 60 input: *train_strat_1_raw output: output\05_trading_statistics_df.rds 06_00_equity_curve_strategy_asset: dataset: - input: *train_strat_1_result arg: *train_strat_2_metric output: output\06_01_equity_curve_xts.rds - input: *train_strat_2_result arg: *train_strat_2_metric output: output\06_02_equity_curve_xts.rds script: *function_caller helper: *analyse_helper funs: - readRDS - get_strategy_asset_returns_by_metrics - saveRDS 06_merge_equity_curves: script: *function_caller helper: scripts/data_processing_helper.r funs: - as.character #way to pass the parameter withouth transofmration and calling initiali funciton - merge_files_cols_bind - saveRDS args: - output\06_01_equity_curve_xts.rds #input file path to the result of strategy, this should be retrieved from csv file ontaining experiment for given combinations input: output\06_02_equity_curve_xts.rds output: output\06_merged_equity_curve_xts.rds 07_00_strategy_stats: dataset: - data: output\06_01_equity_curve_xts.rds arg: Strategy#"BTC Train 7 Test 28"#24*365 output: &07_01_strategy_stats_output output\07_01_strategy_stats.rds - data: output\06_02_equity_curve_xts.rds arg: Strategy#"BTC Train 14 Test 10"#24*365 output: &07_02_strategy_stats_output output\07_02_strategy_stats.rds script: *function_caller helper: *analyse_helper funs: - readRDS - get_strategy_stats - saveRDS 07_merge_strategy_stats: script: *function_caller helper: scripts/data_processing_helper.r funs: - as.character #way to pass the parameter withouth transofmration and calling initiali funciton - merge_files_rows_bind - saveRDS args: - output\07_02_strategy_stats.rds #input file path to the result of strategy, this should be retrieved from csv file ontaining experiment for given combinations input: output\07_01_strategy_stats.rds output: output\07_merged_strategy_stats_xts.rds 08_bootstrap_position: dataset: - input: *train_strat_1_result arg: - *train_strat_1_metric output: &09_bootstrap_pos_output_01 output\08_01_bootstrap_positions.rds - input: *train_strat_2_result arg: - *train_strat_2_metric output: &09_bootstrap_pos_output_02 output\08_02_bootstrap_positions.rds script: *function_caller helper: *bootstrap_helper args: - 1000#365*24#3 #no_iter#freq#seed funs: - readRDS - prepare_and_execute_position_bootstrap - saveRDS 09_bootstrap_ma: dataset: - input: *train_strat_1_positions arg: - *train_strat_1_wf_indexes - *train_strat_1_metric output: &09_bootstrap_ma_output_01 output\09_01_bootstrap_ma.rds - input: *train_strat_2_positions arg: - *train_strat_2_wf_indexes - *train_strat_2_metric output: &09_bootstrap_ma_output_02 output\09_02_bootstrap_ma.rds script: *function_caller helper: *bootstrap_helper args: - 1000#365*24#3 #no_iter#freq#seed funs: - readRDS - prepare_and_execute_ma_bootstrap - saveRDS 09_calculate_significance: dataset: - input: *09_bootstrap_ma_output_01 arg: - *07_01_strategy_stats_output output: output\09_01_bootstrap_ma_significance.rds - input: *09_bootstrap_ma_output_02 arg: - *07_02_strategy_stats_output output: output\09_02_bootstrap_ma_significance.rds - input: *09_bootstrap_pos_output_01 arg: - *07_01_strategy_stats_output output: output\09_01_bootstrap_pos_significance.rds - input: *09_bootstrap_pos_output_02 arg: - *07_02_strategy_stats_output output: output\09_02_bootstrap_pos_significance.rds script: *function_caller helper: *bootstrap_helper funs: - readRDS - calculate_significance - saveRDS 10_seasonality: dataset: - input: *train_strat_1_result fun: get_seasonality arg: - TRUE#FALSE#return output: output\10_daily_seasonality.rds - input: *train_strat_1_result fun: get_seasonality arg: - FALSE#TRUE#return output: output\10_hourly_seasonality.rds - input: *train_strat_1_result fun: get_seasonality arg: - TRUE#TRUE#return output: output\10_daily_hourly_seasonality.rds script: *function_caller helper: *seasonality_helper args: - return,noarg,noarg funs: - readRDS - subset_column - add_day_hour_feature - transform_to_df - {placeholer_for_arg} #this will not be used in command insetad dynamic fun will be used here from dataset - saveRDS 11_unseen_data_equity_curve: dataset: - input: *unseen_strat_1_result arg: *unseen_strat_1_metric output: *unseen_strat_1_eq_curve - input: *unseen_strat_2_result arg: *unseen_strat_2_metric output: *unseen_strat_2_eq_curve - input: *unseen_strat_3_result arg: *unseen_strat_3_metric output: *unseen_strat_3_eq_curve - input: *unseen_strat_4_result arg: *unseen_strat_4_metric output: *unseen_strat_4_eq_curve - input: *unseen_strat_5_result arg: *unseen_strat_5_metric output: *unseen_strat_5_eq_curve - input: *unseen_strat_6_result arg: *unseen_strat_6_metric output: *unseen_strat_6_eq_curve script: *function_caller helper: *analyse_helper funs: - readRDS - get_strategy_asset_returns_by_metrics - saveRDS 12_unseen_data_strategy_stats: dataset: - input: *unseen_strat_1_eq_curve arg: Strategy#"BTC Train 7 Test 28"#24*365 output: *unseen_strat_1_stats - input: *unseen_strat_2_eq_curve arg: Strategy#"BTC Train 14 Test 10"#24*365 output: *unseen_strat_2_stats - input: *unseen_strat_3_eq_curve arg: Strategy#"ETH Train 7 Test 28"#24*365 output: *unseen_strat_3_stats - input: *unseen_strat_4_eq_curve arg: Strategy#"ETH Train 14 Test 10"#24*365 output: *unseen_strat_4_stats - input: *unseen_strat_1_eq_curve arg: Asset#"BTC Buy and Hold "#24*365 output: *unseen_strat_5_stats - input: *unseen_strat_3_eq_curve arg: Asset#"ETH Buy and Hold"#24*365 output: *unseen_strat_6_stats - input: *unseen_strat_5_eq_curve arg: Strategy#"BNB Train 7 Test 28"#24*365 output: *unseen_strat_7_stats - input: *unseen_strat_6_eq_curve arg: Strategy#"BNB Train 14 Test 10"#24*365 output: *unseen_strat_8_stats - input: *unseen_strat_5_eq_curve arg: Asset#"BNB Buy and Hold"#24*365 output: *unseen_strat_9_stats script: *function_caller helper: *analyse_helper funs: - readRDS - get_strategy_stats - saveRDS 12_unseen_merge_strategy_stats: script: *function_caller helper: scripts/data_processing_helper.r funs: - as.character #way to pass the parameter withouth transofmration and calling initiali funciton - merge_files_rows_bind - saveRDS args: - *unseen_strat_1_stats - *unseen_strat_2_stats - *unseen_strat_6_stats - *unseen_strat_3_stats - *unseen_strat_4_stats - *unseen_strat_9_stats - *unseen_strat_7_stats - *unseen_strat_8_stats #input file path to the result of strategy, this should be retrieved from csv file ontaining experiment for given combinations input: *unseen_strat_5_stats output: output\12_unseen_merged_strategy_stats.rds 13_01_merge_returns: #strategy using train 7 test 28 day consisting 3 crypto dataset: - input: *unseen_strat_1_eq_curve arg: - *unseen_strat_3_eq_curve - *unseen_strat_5_eq_curve output: *unseen_rets_7_28 - input: *unseen_strat_2_eq_curve arg: - *unseen_strat_4_eq_curve - *unseen_strat_6_eq_curve output: *unseen_rets_14_10 script: *function_caller helper: scripts/data_processing_helper.r funs: - as.character #way to pass the parameter withouth transofmration and calling initiali funciton - merge_files_cols_bind - saveRDS 13_02_portfolio_calculate: dataset: - input: *unseen_rets_7_28 arg: "Strategy"#"Portfolio_7_28" output: *unseen_portfolio_7_28 - input: *unseen_rets_14_10 arg: "Strategy"#"Portfolio_14_10" output: *unseen_portfolio_14_10 - input: *unseen_rets_14_10 arg: "Asset"#"Portfolio_BH" output: *unseen_portfolio_BH script: *function_caller helper: *analyse_helper funs: - readRDS #way to pass the parameter withouth transofmration and calling initiali funciton - calculate_portfolio - saveRDS args: - noarg #input file path to the result of strategy, this should be retrieved from csv file ontaining experiment for given combinations input: *unseen_rets_7_28 output: output\13_02_portfolio_xts.rds 13_03_portfolio_of_portfolio: script: *function_caller helper: *analyse_helper funs: - readRDS #way to pass the parameter withouth transofmration and calling initiali funciton - calculate_portfolio_of_portfolio - saveRDS args: - *unseen_portfolio_7_28 - *unseen_portfolio_14_10 #input file path to the result of strategy, this should be retrieved from csv file ontaining experiment for given combinations input: *unseen_portfolio_BH output: *unseen_portfolio_combined 14_unseen_portfolio_stats: dataset: - input: *unseen_portfolio_7_28 arg: Portfolio#"Portfolio 3 currencies Train 7 Test 28"#24*365 output: *unseen_portfolio_7_28_stats - input: *unseen_portfolio_14_10 arg: Portfolio#"Portfolio 3 currencies Train 14 Test 10"#24*365 output: *unseen_portfolio_14_10_stats - input: *unseen_portfolio_BH arg: Portfolio#"Portfolio 3 currencies Buy and Hold"#24*365 output: *unseen_portfolio_BH_stats - input: *unseen_portfolio_combined arg: Portfolio_Combined#"All Portfolios Combined"#24*365 output: *unseen_portfolio_combined_stats script: *function_caller helper: *analyse_helper funs: - readRDS - getLogReturnsNoNA - get_strategy_stats - saveRDS 15_cost_sensitivity: dataset: - input: *train_strat_1_result arg: *train_strat_1_metric output: *train_strat_1_cost_sens script: *function_caller helper: *analyse_helper funs: - readRDS - get_cost_sensitivity_returns - filter_data_by_metrics_dates - saveRDS 15_01_trading_stats_cost_sens: script: *function_caller helper: *analyse_helper funs: - readRDS - get_trading_stats_per_col - saveRDS args: - 24*365 input: *train_strat_1_cost_sens output: *train_strat_1_cost_sens_stats 16_save_charts_tables: script: reports/Construct_rmd.r input: *input_rmd output: *output_pdf