Gamestudio Links
Zorro Links
Newest Posts
Zorro 3.01 recoded MMI function issue
by TipmyPip. 06/04/26 05:44
SGT_FW
by Aku_Aku. 05/31/26 11:05
ZorroGPT
by TipmyPip. 05/28/26 01:43
Issues resuming trades on Demo account
by Martin_HH. 05/22/26 13:31
XTB
by pr0logic. 05/18/26 12:27
Purchase A8 full licence version
by NeoDumont. 05/13/26 20:17
Black Book, 4th edition
by TipmyPip. 05/11/26 08:40
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
1 registered members (AndrewAMD), 4,530 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Seraphinang, Koti, curry, DeepxKalsi, Samed
19219 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 24 of 24 1 2 22 23 24
Re: ARIMA Package for Zorro [Re: qin] #489439
05/27/26 19:54
05/27/26 19:54
Joined: Sep 2017
Posts: 304
TipmyPip Offline OP
Senior Member
TipmyPip  Offline OP
Senior Member

Joined: Sep 2017
Posts: 304
Dear Qin, I have found for you a nice video that examples for quant development, It is very interesting, and you don't need to try all the ideas at once, but you can start with small steps.

https://youtu.be/G57FAI-dkXs?si=0YhmlMeB0me3CGK8

Last edited by TipmyPip; 05/27/26 20:10.
ARIMA Package for Zorro (64bit) [Re: TipmyPip] #489440
05/27/26 22:41
05/27/26 22:41
Joined: Sep 2017
Posts: 304
TipmyPip Offline OP
Senior Member
TipmyPip  Offline OP
Senior Member

Joined: Sep 2017
Posts: 304
64bit version of AutoArima Package for Zorro

AutoArima 64bit

1. 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

Last edited by TipmyPip; 05/27/26 22:42.
EUR/USD SMA + ARIMA forecast [Re: TipmyPip] #489441
05/28/26 01:43
05/28/26 01:43
Joined: Sep 2017
Posts: 304
TipmyPip Offline OP
Senior Member
TipmyPip  Offline OP
Senior Member

Joined: Sep 2017
Posts: 304
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.

Code
// 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);
}

Page 24 of 24 1 2 22 23 24

Moderated by  Petra 

Powered by UBB.threads™ PHP Forum Software 7.7.1