Hello, hoping someone can help with this issue. When I use an optimize
statement with #include and fputs, the optimization variable keeps
getting shifted.
For example, please consider the two basic MA crossover systems below.
They should both give identical results whether one does a backtest or
an optimization. The backtests do appear identical. However, the Include
version gives wonky results in optimization. Instead of 'a' starting at
value 1. It starts at 5 but says in the optimization report that it is
1. I know it's probably something simple that I am overlooking, but
can't seem to figure this one out:
//----------------------------------------------------------------------\
--
// TRADE SYSTEM #1: SIMPLE CROSS BASIC
//----------------------------------------------------------------------\
--
FastMALength = Optimize("FastMALength", 1, 1, 5, 1);
SlowMALength = 20;
FastMA = MA( C, FastMALength );
SlowMA = MA( C, SlowMALength );
Buy = Cross( FastMA, SlowMA );
Sell = Cross( SlowMA, FastMA );
//----------------------------------------------------------------------\
--
// TRADE SYSTEM #2: SIMPLE CROSS USING INCLUDE AND FPUTS
//----------------------------------------------------------------------\
--
a = Optimize( "a", 1, 1, 5, 1 );
#pragma nocache
#include "c:\\TestAFL.afl";
fh = fopen( "c:\\TestAFL.afl", "w");
fputs("FastMALength = ", fh);
fputs(NumToStr(a, 1.0, 0 ),fh);
fclose( fh );
SlowMALength = 20;
FastMA = MA( C, FastMALength );
SlowMA = MA( C, SlowMALength );
Buy = Cross( FastMA, SlowMA );
Sell = Cross( SlowMA, FastMA );