|
|
SGT_FW
by Aku_Aku. 05/31/26 11:05
|
|
|
|
|
|
|
XTB
by pr0logic. 05/18/26 12:27
|
|
|
|
|
|
|
1 registered members (AndrewAMD),
4,530
guests, and 2
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
|
06/04/26 05:44
It can affect backtesting when MMI is used in a trade condition, filter, optimizer, or ML feature, because the changed MMI value can change whether a signal is true or false.
The original MMI code calculates a median over TimePeriod and then counts rising/falling behavior around that median. Zorro’s indicator source shows the old version using TimePeriod = Min(TimePeriod,g->nBar-1); and Median(Data,TimePeriod). The Median function sorts the data and returns the middle value within the given period.
When the backtest can change 1. When TimePeriod is even
Old:
var m = Median(Data,TimePeriod);
New:
var m = Median(Data,TimePeriod|1);
If TimePeriod = 100, then:
TimePeriod|1 = 101
So the median is calculated from 101 values instead of 100.
That can shift the median slightly. Since MMI compares every value against the median:
if(Data[i] > m && Data[i] > Data[i-1]) nl++; else if(Data[i] < m && Data[i] < Data[i-1]) nh++;
a small median shift can change nl or nh, which changes the returned MMI value.
This matters if your strategy does something like:
if(MMI(Price,100) > 75) enterLong();
A value changing from 74.9 to 75.2 can create a trade in one version but not the other.
2. Near the beginning of the backtest or WFO cycle
Old:
TimePeriod = Min(TimePeriod,g->nBar-1);
New:
TimePeriod = Min(TimePeriod,g->nBar-2);
The new version uses one less available bar when history is short.
This can affect the first valid bars after LookBack, or the beginning of a walk-forward cycle, especially if TimePeriod is close to the available history length.
Zorro uses LookBack to execute bars before trading begins so indicators have enough history. The manual says the first bar where trades can be entered is greater than or equal to LookBack, and LookBack should cover the longest period of all used indicators, assets, and time frames.
So this change can affect backtesting mostly when:
LookBack ? MMI period
or when TimePeriod is optimized and sometimes becomes large.
3. When MMI is used as a filter
Example:
vars Price = series(priceClose()); var MeanState = MMI(Price,100);
if(MeanState > 75) enterLong();
If the old version gives:
MMI_old = 74.8
and the new version gives:
MMI_new = 75.3
then the trade only happens with the new version.
That can change:
entry timing, number of trades, profit factor, drawdown, optimized parameters, WFO results
The Zorro manual notes that indicators often become buy/sell signals when they reach thresholds, cross each other, or cross the price curve.
4. When MMI period is optimized
This is a big one.
Example:
int MMIPeriod = optimize(100,50,300,10); var M = MMI(Price,MMIPeriod);
If some optimized values are even, the new version internally turns the median length odd:
100 -> 101 120 -> 121 200 -> 201
So the optimizer may find a different best parameter than before.
Zorro’s documentation specifically warns that when optimizing an indicator time period, LookBack should be set to at least the maximum period, otherwise the backtest period can change with the optimized value and affect results unexpectedly.
5
153
Read More
|
|
06/04/26 05:38
How to test whether your backtest is affected You can copy both versions into your script and compare them bar by bar. // Old MMI version
var MMI_old(vars Data,int TimePeriod)
{
TimePeriod = Min(TimePeriod,1000);
checkLookBack(TimePeriod);
TimePeriod = Min(TimePeriod,g->nBar-1);
if(TimePeriod < 2)
return 75;
var m = Median(Data,TimePeriod);
int i, nh = 0, nl = 0;
for(i = 1; i < TimePeriod; i++)
{
if(Data[i] > m && Data[i] > Data[i-1])
nl++;
else if(Data[i] < m && Data[i] < Data[i-1])
nh++;
}
return 100.*(nl+nh)/(TimePeriod-1);
}
// New MMI version
var MMI_new(vars Data,int TimePeriod)
{
TimePeriod = Min(TimePeriod,1000);
checkLookBack(TimePeriod);
TimePeriod = Min(TimePeriod,g->nBar-2);
if(TimePeriod < 2)
return 75;
var m = Median(Data,TimePeriod|1);
int i, nh = 0, nl = 0;
for(i = 1; i < TimePeriod; i++)
{
if(Data[i] > m && Data[i] > Data[i-1])
nl++;
else if(Data[i] < m && Data[i] < Data[i-1])
nh++;
}
return 100.*(nl+nh)/(TimePeriod-1);
}
function run()
{
BarPeriod = 60;
LookBack = 300;
asset("EUR/USD");
vars Price = series(priceClose());
int Period = 100;
var OldMMI = MMI_old(Price,Period);
var NewMMI = MMI_new(Price,Period);
plot("Old MMI",OldMMI,NEW,BLUE);
plot("New MMI",NewMMI,0,RED);
plot("Difference",NewMMI-OldMMI,NEW,GREEN);
static int ValueDiffs = 0;
static int SignalDiffs = 0;
if(!is(LOOKBACK))
{
if(abs(NewMMI-OldMMI) > 0.0001)
ValueDiffs++;
int OldSignal = OldMMI > 75;
int NewSignal = NewMMI > 75;
if(OldSignal != NewSignal)
{
SignalDiffs++;
printf("\nBar %i: Old MMI %.2f, New MMI %.2f",Bar,OldMMI,NewMMI);
}
}
if(is(EXITRUN))
{
printf("\nMMI value differences: %i",ValueDiffs);
printf("\nMMI signal differences: %i",SignalDiffs);
}
}What to look for If the green Difference plot is often zero, your backtest is probably not affected. If you see many lines like: Old MMI 74.95, New MMI 75.12 and your system uses a threshold near 75, then your backtest can change. The highest-risk cases are: if(MMI(Price,Period) > 75)
if(MMI(Price,Period) < 50)
if(crossOver(MMI_Series,Threshold)) The lowest-risk case is when MMI is only plotted and not used for trading decisions.
5
153
Read More
|
|
|
06/03/26 16:38
The change was the '|1' that prevented even time periods, so that the median always was the data value in the middle. But this should normally only produce tiny differences with negligible effect on the backtest. How large was the difference that you got? Which time periods do you use for the MMI?
5
153
Read More
|
|
06/02/26 11:39
Thank you for a reply! That was the first thing I did - compared both versions and I can confirm the source code is different, and when I copy pasted the previous implementation to my custom indicators script and use it, the backtest showed the original performance metrics - confirming the recoded version indeed changed the strategy. Original code (indicators.c): // Zorro's Market Meanness Index
var MMI(var* Data,int TimePeriod)
{
// clip time period to history length
TimePeriod = Min(TimePeriod,1000);
checkLookBack(TimePeriod);
TimePeriod = Min((uint)TimePeriod,g->nBar-1);
if(TimePeriod < 2) return 75;
// calculate MMI statistics
var m = Median(Data,TimePeriod);
int i, nh=0, nl=0;
for(i=1; i<TimePeriod; i++) {
if(Data[i] > m && Data[i] > Data[i-1])
nl++;
else if(Data[i] < m && Data[i] < Data[i-1])
nh++;
}
return 100.*(nl+nh)/(TimePeriod-1);
}Recoded version (indicators.c): // Zorro's Market Meanness Index
var MMI(var* Data,int TimePeriod)
{
checkLookBack(TimePeriod);
// clip time period to history length
TimePeriod = Min((uint)TimePeriod,g->nBar-2);
if(TimePeriod < 2) return 75;
// calculate MMI statistics
var m = Median(Data,TimePeriod|1);
int i, nh=0, nl=0;
for(i=1; i<TimePeriod; i++) {
if(Data[i] > m && Data[i] > Data[i-1])
nl++;
else if(Data[i] < m && Data[i] < Data[i-1])
nh++;
}
return 100.*(nl+nh)/(TimePeriod-1);
}Here are the changes ![[Linked Image]](https://opserver.de/ubb7/ubbthreads.php?ubb=download&Number=4821&filename=mmi.png) It seems like the previous version is matching the "classic" version you mentioned slightly more, probably indicating the recoded version is somehow flawed.
5
153
Read More
|
|
06/02/26 00:21
I would not judge this only by the changed performance metrics. I would first compare both MMI implementations against the published/reference formula. If the new 3.01 MMI differs from that formula, then the recoded version is likely wrong. If the old version differed, then the old backtest results were based on a flawed indicator. Since MMI is often used as a trend filter, even small output differences can strongly affect entries/exits and performance. The correct MMI should follow the reference definition: calculate the median of the data window, then count cases where price is above median and continues upward, or below median and continues downward. The classic Zorro/Financial Hacker version is: var MMI(var *Data,int Length)
{
var m = Median(Data,Length);
int i, nh=0, nl=0;
for(i=1; i<Length; i++) {
if(Data[i] > m && Data[i] > Data[i-1])
nl++;
else if(Data[i] < m && Data[i] < Data[i-1])
nh++;
}
return 100.*(nl+nh)/(Length-1);
}Zorro’s manual says MMI measures mean-reversal tendency in a 0–100% range, with random numbers around 75%, and that source code is in indicators.c. So the practical answer is: compare both versions against this reference formula. The version matching this formula is the correct one. If 3.01 changed the median handling, indexing direction, equal-value handling, or the denominator, it can absolutely produce different backtests.
5
153
Read More
|
|
|
06/01/26 16:02
Hi, after upgrading to 3.01 one of my strategy using MMI got clearly different performance metrics in a backtest. I found that recoded MMI is the culprit. It returns different data than the previous one. So I am wondering which version is "flawed" and which one is "correct".
5
153
Read More
|
|
|
05/31/26 11:05
The new release - named Lerna - is already halfway done; it just needs a little more time to be completed. Everything that has been finished so far has already been committed to the repository.
34
12,773
Read More
|
|
05/28/26 01:43
This Zorro lite-C script plots a EUR/USD daily chart that combines a traditional SMA indicator with an external ARIMA forecast. It imports selected functions from AutoAri32.dll and defines a minimal AUTO_ARIMA_RESULT structure so the DLL can return the selected ARIMA order, convergence state, forecast value, and AICc score. During each run, the script loads EUR/USD closing prices, calculates a 20-period simple moving average, and skips execution until the LookBack period is complete. The ARIMA model uses the previous 120 completed closing prices to generate a one-step forecast. Before forecasting, the price series is validated, and the result is checked for convergence, invalid values, and a realistic EUR/USD range. If ARIMA fails, the script safely falls back to the previous close. It then plots price, SMA20, ARIMA forecast, and forecast error in pips, while printing diagnostic model statistics to the log. // Arima01.c
// EUR/USD SMA + ARIMA forecast
// Requires AutoAri32.dll in the same folder as this script.
// Minimal copy of AUTO_ARIMA_RESULT from aa_arima_types.h.
// Field names can be local; order and types must match the DLL.
typedef struct
{
int p;
int d;
int q;
int converged;
var sse;
var aicc;
var forecast;
var* ar;
var* ma;
int arCap;
int maCap;
} AUTO_ARIMA_RESULT;
#define PRAGMA_API init_auto_arima_result;AutoAri32!init_auto_arima_result
#define PRAGMA_API free_auto_arima_result;AutoAri32!free_auto_arima_result
#define PRAGMA_API auto_arima_forecast;AutoAri32!auto_arima_forecast
#define PRAGMA_API aa_validate_price_series;AutoAri32!aa_validate_price_series
void init_auto_arima_result(AUTO_ARIMA_RESULT* R);
void free_auto_arima_result(AUTO_ARIMA_RESULT* R);
int auto_arima_forecast(vars Close,int N,var TickSize,int MaxP,int MaxQ,AUTO_ARIMA_RESULT* Result);
int aa_validate_price_series(vars Close,int N);
#define ARIMA_WINDOW 120
function run()
{
set(PLOTNOW,LOGFILE);
BarPeriod = 1440;
LookBack = ARIMA_WINDOW + 50;
MaxBars = 800;
PlotWidth = 1200;
PlotHeight1 = 600;
PlotBars = 300;
asset("EUR/USD");
vars Price = series(priceClose());
var SMA20 = SMA(Price,20);
if(is(LOOKBACK))
return;
var Forecast = Price[1]; // safe fallback
int Status = 0;
AUTO_ARIMA_RESULT R;
init_auto_arima_result(&R);
// The library documents price-series validation before model use.
// It checks positive prices, invalid values, and enough samples.
if(aa_validate_price_series(Price+1,ARIMA_WINDOW))
{
Status = auto_arima_forecast(Price+1,ARIMA_WINDOW,PIP,3,3,&R);
if(Status and R.converged and !invalid(R.forecast))
{
if(R.forecast > 0.5 and R.forecast < 2.0)
Forecast = R.forecast;
}
}
var ErrorPips = (Price[0] - Forecast) / PIP;
plot("Close",Price[0],MAIN|LINE,BLUE);
plot("SMA20",SMA20,MAIN|LINE,RED);
plot("ARIMA",Forecast,MAIN|LINE,GREEN);
plot("ErrPips",ErrorPips,NEW|LINE,BLACK);
printf(
"\nBar %i Close %.5f SMA20 %.5f ARIMA %.5f Err %.2f pips Status %i p=%i d=%i q=%i AICc %.4f",
Bar,
Price[0],
SMA20,
Forecast,
ErrorPips,
Status,
R.p,
R.d,
R.q,
R.aicc
);
free_auto_arima_result(&R);
}
232
78,790
Read More
|
|
05/27/26 22:41
64bit version of AutoArima Package for Zorro AutoArima 64bit1. Memory and Pointer Management Functions (13) aa_alloc_vars aa_clear_arima_work aa_copy_vars aa_free_vars aa_prepare_arima_work aa_shift_vars aa_zero_vars copy_arima_model free_arima_model free_arima_work init_arima_model init_arima_work reset_arima_model 2. Basic Math and Array Utilities (13) aa_argmax aa_argmin aa_correlation aa_covariance aa_demean aa_max aa_mean aa_min aa_normalize_minmax aa_standardize aa_stddev aa_sum aa_variance 3. Input Validation and Data Cleaning (11) aa_clip_outliers aa_count_invalid_values aa_fill_missing_forward aa_fill_missing_mean aa_has_invalid_values aa_limit_returns aa_remove_invalid_values aa_replace_zero_prices aa_validate_price_series aa_validate_series aa_winsorize_series 4. Transformations and Differencing (15) aa_boxcox_lambda aa_boxcox_transform aa_difference_once aa_difference_series aa_difference_twice aa_inverse_boxcox_transform aa_inverse_difference aa_inverse_difference_path aa_inverse_log_transform aa_inverse_return_forecast aa_inverse_seasonal_difference aa_log_transform aa_return_transform aa_seasonal_difference_once aa_seasonal_difference_series 5. Stationarity and Differencing Selection (16) aa_adf_pvalue_approx aa_adf_statistic aa_adf_test aa_calculate_d aa_calculate_D aa_is_stationary aa_kpss_pvalue_approx aa_kpss_statistic aa_kpss_test aa_ndiffs aa_ndiffs_heuristic aa_nsdiffs aa_nsdiffs_heuristic aa_pp_pvalue_approx aa_pp_statistic aa_pp_test 6. Autocorrelation and Partial Autocorrelation (10) aa_acf aa_acf_cutoff_lag aa_autocorrelation aa_autocovariance aa_initial_ar_from_pacf aa_initial_ma_from_acf aa_levinson_durbin aa_pacf aa_pacf_cutoff_lag aa_yule_walker 7. AR / MA Validity and Stability (9) aa_ar_root_modulus aa_clamp_coefficients aa_coefficients_are_valid aa_enforce_invertibility aa_enforce_stationarity aa_is_invertible_ma aa_is_stationary_ar aa_ma_root_modulus aa_min_root_modulus 8. ARMA / ARIMA / SARIMA Fitting Functions (7) aa_arima_fit aa_arma_fit aa_css_fit aa_exact_mle_fit aa_kalman_loglikelihood aa_mle_fit aa_sarima_fit 9. Optimizer Functions (14) aa_adam_fit aa_bfgs_fit aa_check_convergence aa_compute_gradient aa_compute_hessian aa_gradient_descent_fit aa_gradient_norm aa_lbfgs_fit aa_nelder_mead_fit aa_optimizer_report aa_set_optimizer_defaults aa_set_optimizer_learning_rate aa_set_optimizer_max_iter aa_set_optimizer_tolerance 10. Likelihood and Model Scoring (10) aa_aic_score aa_aicc_score aa_aicc_score_general aa_bic_score aa_compare_ic aa_conditional_loglikelihood aa_exact_loglikelihood aa_hqic_score aa_loglikelihood aa_model_score 11. AutoARIMA Search Functions (11) aa_auto_arima_search aa_candidate_exists aa_expand_candidate_models aa_fallback_model aa_grid_search_arima aa_init_candidate aa_select_best_model aa_set_candidate aa_stepwise_auto_arima aa_try_neighbor_models aa_validate_candidate_model 12. Seasonal ARIMA / SARIMA Functions (7) aa_auto_sarima_search aa_detect_seasonal_period aa_sarima_forecast_multi_step aa_sarima_forecast_one_step aa_seasonal_acf_score aa_seasonal_strength aa_stepwise_auto_sarima 13. ARIMAX / SARIMAX Functions (8) aa_arimax_fit aa_arimax_forecast aa_prepare_exogenous_matrix aa_regression_fit aa_regression_predict aa_sarimax_fit aa_sarimax_forecast aa_validate_exogenous_data 14. Forecasting Functions (9) aa_backtransform_forecast aa_bias_adjusted_backtransform aa_forecast_bands aa_forecast_confidence_interval aa_forecast_multi_step aa_forecast_one_step aa_forecast_standard_error aa_forecast_variance aa_integrate_forecast 15. Residual Diagnostics (21) aa_arch_lm_pvalue aa_arch_lm_stat aa_arch_lm_test aa_box_pierce_pvalue aa_box_pierce_stat aa_box_pierce_test aa_compute_residuals aa_diagnostic_report aa_durbin_watson_test aa_jarque_bera_pvalue aa_jarque_bera_stat aa_jarque_bera_test aa_ljung_box_pvalue aa_ljung_box_stat aa_ljung_box_test aa_residual_acf aa_residual_mean aa_residual_normality_check aa_residual_stddev aa_residual_variance aa_residual_white_noise_check 16. Model Reporting and File I/O (8) aa_load_model_from_file aa_print_coefficients aa_print_forecast_report aa_print_model_summary aa_print_residual_diagnostics aa_save_diagnostics_to_file aa_save_forecast_to_file aa_save_model_to_file 17. Model Caching and Reuse (7) aa_cache_best_model aa_clear_model_cache aa_init_model_cache aa_load_cached_model aa_refit_best_model aa_reuse_previous_model aa_should_refit_model 18. Walk-Forward and Forecast Evaluation (8) aa_directional_accuracy aa_forecast_error_mae aa_forecast_error_mape aa_forecast_error_mse aa_forecast_error_rmse aa_rolling_forecast_test aa_train_test_split aa_walk_forward_arima 19. Trading Signal Functions (9) aa_backtest_forecast_signal aa_forecast_edge aa_forecast_return aa_forecast_zscore aa_position_size_from_confidence aa_position_size_from_forecast aa_signal_from_confidence_band aa_signal_from_directional_accuracy aa_signal_from_forecast 20. Zorro Integration Functions (6) aa_zorro_forecast_current_asset aa_zorro_get_close_series aa_zorro_plot_forecast aa_zorro_plot_forecast_bands aa_zorro_print_model aa_zorro_trade_from_forecast 21. Current AutoARIMA Compatibility Functions (7) aa_prepare_auto_arima_work auto_arima_forecast auto_arima_forecast_with_work free_auto_arima_result free_auto_arima_work init_auto_arima_result init_auto_arima_work
232
78,790
Read More
|
|
|
05/23/26 20:53
I get the impression that most (private) traders only want to... trade, just like pushing a button and then leaning back.
Programmers (or quant devs/researchers) have a completely different approach (and mindset!). They are the types who start with an idea/concept, build, test and modify it themselves (rinse and repeat...) before they actually apply it to real money (often months later). With an algo trading environment like Zorro you need to wear both hats.
232
78,790
Read More
|
|
|
05/22/26 17:48
Please describe the errors? While it will help a lot if you also use ZorroGPT. In addition, Programming is a task, were you are learning to overcome challenges, and you have all the tools that will help you solve any kind of problem. The whole point of me publishing the code, is not to give you an Expert that will trade for you, and make you money, but to help you find a direction that will develop your creative mind in order to develop the Expert, because no one will publish an expert that is successful.
232
78,790
Read More
|
|
|
05/22/26 13:31
Finally, I found it.
I used the SaveMode flag variable and had set it to 4 for a dedicated reason. Now, I changed it back to SaveMode=791 and it should work. I set this a while ago and the more complex the set-up gets ...
For Information from the manual:
These are the SaveMode Flags: (x) are bit code
SV_SLIDERS(2) save/load slider positions (default). SV_ALGOVARS(4) - save/load all AlgoVars (default). SV_ALGOVARS2 - save/load all AlgoVars2. SV_TRADES(1) - save/load all open trades (default). SV_STATS(16)- save/load statistics data, to be continued in the next session. SV_BACKUP(256) - after loading, save a backup of the .trd file (default). SV_HTML(512) - after loading trades in [Test] mode, generate a HTML file with the list of open trades.
4
211
Read More
|
|
|
05/22/26 07:55
Hello, I have tried some codes you posted, but always have errors. Any idea?
232
78,790
Read More
|
|
|
05/21/26 21:21
I even tried this . Save manually the actual .trd file. Stopped Zorro, copied it back, but Zorro did not recognise it?
"! The .trd file can be simply copied over to the Data folder of a different Zorro installation for continuing the session from there. When stopping a trade session and starting a new session with the same script on a different broker or account, make sure to delete the .trd file so that open trades from the last session are not resumed with the new account or broker. This is especially important with an NFA account, since there is no way to automatically determine if trades were opened or closed on such an account"
4
211
Read More
|
|
|
05/21/26 17:41
Hi thanks for the feedback.
Actually Zorro writes regularly to the .trd file :
"Stopping and resuming a live trading system While trading, Zorro stores the currently open trades, the status of the sliders, and component specific variables (AlgoVar) in a .trd file in the Data folder. This way trading can be stopped and resumed without losing track of open trades. The name of the file is composed from the script name plus the selected asset plus a "_d" in case of a demo account. If a trade can not be resumed - for instance when it was externally closed - an error message will be printed at restarting the trading session, and Zorro will resume the other trades. Because any new trade overwrites the .trd file, its previous content is stored in a .bak file at session start. Trades are not resumed when the session has no lookback period and opens trades already in the first run."
This prevents the loss of data, even when you have a crash. This was working for me for years. I switched a while a go to Zorro64. I guess it was working as well, but now I have a modular set-up with several include files and therefore it hits all strategies and I have difficulties to find out the core issue. Also the back up of the .trd file does not work anymore.
my version Zorro 2.70
4
211
Read More
|
|
|
05/21/26 17:12
Hi Martin, hard to tell with the information provided. I am running Zorro with FXCM for quite a long time and all is going well. I am not using the 64bit version but the normal one and I am using the FXCM interface. I think Zorro does not write into the *.trd when it crashes (unless you have it programmed otherwise). Therefore it is not able to recover the trades. But of course it should work when you stop trading Zorro manually. Hope that helps
4
211
Read More
|
|
|
05/21/26 16:00
I am running several quite complex strategies under Zorro64 with FXCM Demo accounts. Since a couple of weeks, I am having an issue of resuming open trades. Zorro has the .trd files, but after restart (e.g. crash or stop trading without closing trades) the open trades are ignored? Any advice from the community? Martin
4
211
Read More
|
|
|
05/21/26 12:13
Hello Zorro forum, problem solved. Indeed, I just fixed naming of tickers in the assetlist. IC Markets have different naming for indexes as compared to Afterprime or other brokers. There is obviosly no relevance to USD/CAA or A2_87 strategy. The program was blocked or confused by resolving data from the broker due to missmatsch of ticker names (GER30 vs DE40, NAS100 vs. USTEC, etc.)
If my post is confusing or irrelevant, please admin just erase it or whatever.
Cheers !!
1
130
Read More
|
|
|
05/20/26 20:37
Hi everybody, will you please advise. I am running Z12+ on the IC Markets EU, on their MT4 account via MT4 Zorro bridge.
When starting the Trade mode, the Zorro logged me out with the Error 040 Message : Skipped USD/CAD:A2_87 optimize calls !
I tried to exclude USD/CAD ticker in the Z12+.ini, as well as delete the params for the USD/CAD:A2_87 strategy from the fac. and .par data, but it is still collapsing on this Error.
Thank you for any hint or help. Cheers J.
1
130
Read More
|
|
|
05/18/26 12:27
Has someone experience in trading on XTB?
0
118
Read More
|
|
05/17/26 12:08
New Statistical Package for Zorro : ARIMA PackageExamples on how to use the function can be found : Example Use of Functions1. Memory and Pointer Management Functions (13) aa_alloc_vars aa_clear_arima_work aa_copy_vars aa_free_vars aa_prepare_arima_work aa_shift_vars aa_zero_vars copy_arima_model free_arima_model free_arima_work init_arima_model init_arima_work reset_arima_model 2. Basic Math and Array Utilities (13) aa_argmax aa_argmin aa_correlation aa_covariance aa_demean aa_max aa_mean aa_min aa_normalize_minmax aa_standardize aa_stddev aa_sum aa_variance 3. Input Validation and Data Cleaning (11) aa_clip_outliers aa_count_invalid_values aa_fill_missing_forward aa_fill_missing_mean aa_has_invalid_values aa_limit_returns aa_remove_invalid_values aa_replace_zero_prices aa_validate_price_series aa_validate_series aa_winsorize_series 4. Transformations and Differencing (15) aa_boxcox_lambda aa_boxcox_transform aa_difference_once aa_difference_series aa_difference_twice aa_inverse_boxcox_transform aa_inverse_difference aa_inverse_difference_path aa_inverse_log_transform aa_inverse_return_forecast aa_inverse_seasonal_difference aa_log_transform aa_return_transform aa_seasonal_difference_once aa_seasonal_difference_series 5. Stationarity and Differencing Selection (16) aa_adf_pvalue_approx aa_adf_statistic aa_adf_test aa_calculate_d aa_calculate_D aa_is_stationary aa_kpss_pvalue_approx aa_kpss_statistic aa_kpss_test aa_ndiffs aa_ndiffs_heuristic aa_nsdiffs aa_nsdiffs_heuristic aa_pp_pvalue_approx aa_pp_statistic aa_pp_test 6. Autocorrelation and Partial Autocorrelation (10) aa_acf aa_acf_cutoff_lag aa_autocorrelation aa_autocovariance aa_initial_ar_from_pacf aa_initial_ma_from_acf aa_levinson_durbin aa_pacf aa_pacf_cutoff_lag aa_yule_walker 7. AR / MA Validity and Stability (9) aa_ar_root_modulus aa_clamp_coefficients aa_coefficients_are_valid aa_enforce_invertibility aa_enforce_stationarity aa_is_invertible_ma aa_is_stationary_ar aa_ma_root_modulus aa_min_root_modulus 8. ARMA / ARIMA / SARIMA Fitting Functions (7) aa_arima_fit aa_arma_fit aa_css_fit aa_exact_mle_fit aa_kalman_loglikelihood aa_mle_fit aa_sarima_fit 9. Optimizer Functions (14) aa_adam_fit aa_bfgs_fit aa_check_convergence aa_compute_gradient aa_compute_hessian aa_gradient_descent_fit aa_gradient_norm aa_lbfgs_fit aa_nelder_mead_fit aa_optimizer_report aa_set_optimizer_defaults aa_set_optimizer_learning_rate aa_set_optimizer_max_iter aa_set_optimizer_tolerance 10. Likelihood and Model Scoring (10) aa_aic_score aa_aicc_score aa_aicc_score_general aa_bic_score aa_compare_ic aa_conditional_loglikelihood aa_exact_loglikelihood aa_hqic_score aa_loglikelihood aa_model_score 11. AutoARIMA Search Functions (11) aa_auto_arima_search aa_candidate_exists aa_expand_candidate_models aa_fallback_model aa_grid_search_arima aa_init_candidate aa_select_best_model aa_set_candidate aa_stepwise_auto_arima aa_try_neighbor_models aa_validate_candidate_model 12. Seasonal ARIMA / SARIMA Functions (7) aa_auto_sarima_search aa_detect_seasonal_period aa_sarima_forecast_multi_step aa_sarima_forecast_one_step aa_seasonal_acf_score aa_seasonal_strength aa_stepwise_auto_sarima 13. ARIMAX / SARIMAX Functions (8) aa_arimax_fit aa_arimax_forecast aa_prepare_exogenous_matrix aa_regression_fit aa_regression_predict aa_sarimax_fit aa_sarimax_forecast aa_validate_exogenous_data 14. Forecasting Functions (9) aa_backtransform_forecast aa_bias_adjusted_backtransform aa_forecast_bands aa_forecast_confidence_interval aa_forecast_multi_step aa_forecast_one_step aa_forecast_standard_error aa_forecast_variance aa_integrate_forecast 15. Residual Diagnostics (21) aa_arch_lm_pvalue aa_arch_lm_stat aa_arch_lm_test aa_box_pierce_pvalue aa_box_pierce_stat aa_box_pierce_test aa_compute_residuals aa_diagnostic_report aa_durbin_watson_test aa_jarque_bera_pvalue aa_jarque_bera_stat aa_jarque_bera_test aa_ljung_box_pvalue aa_ljung_box_stat aa_ljung_box_test aa_residual_acf aa_residual_mean aa_residual_normality_check aa_residual_stddev aa_residual_variance aa_residual_white_noise_check 16. Model Reporting and File I/O (8) aa_load_model_from_file aa_print_coefficients aa_print_forecast_report aa_print_model_summary aa_print_residual_diagnostics aa_save_diagnostics_to_file aa_save_forecast_to_file aa_save_model_to_file 17. Model Caching and Reuse (7) aa_cache_best_model aa_clear_model_cache aa_init_model_cache aa_load_cached_model aa_refit_best_model aa_reuse_previous_model aa_should_refit_model 18. Walk-Forward and Forecast Evaluation (8) aa_directional_accuracy aa_forecast_error_mae aa_forecast_error_mape aa_forecast_error_mse aa_forecast_error_rmse aa_rolling_forecast_test aa_train_test_split aa_walk_forward_arima 19. Trading Signal Functions (9) aa_backtest_forecast_signal aa_forecast_edge aa_forecast_return aa_forecast_zscore aa_position_size_from_confidence aa_position_size_from_forecast aa_signal_from_confidence_band aa_signal_from_directional_accuracy aa_signal_from_forecast 20. Zorro Integration Functions (6) aa_zorro_forecast_current_asset aa_zorro_get_close_series aa_zorro_plot_forecast aa_zorro_plot_forecast_bands aa_zorro_print_model aa_zorro_trade_from_forecast 21. Current AutoARIMA Compatibility Functions (7) aa_prepare_auto_arima_work auto_arima_forecast auto_arima_forecast_with_work free_auto_arima_result free_auto_arima_work init_auto_arima_result init_auto_arima_work
232
78,790
Read More
|
|
|
05/13/26 20:17
I ordered the pro version last week. Payment was executed over PAYGLOBAL. Today I received the A8 Pro Key file. So everything was o.k. I allow myself to confirm that the order link is safe.
NeoDumont
Still love 3Gamestudio. Now that I have everything for a bigger game I will start to create the Game I was dreaming of for a long time.
4
473
Read More
|
|
|
05/11/26 08:40
Sir, I am also going to publish a book... :-) will you buy my book? please...
1
411
Read More
|
|
|