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  );

Reply via email to