and not only does it start off with a real value of 5, the optimization report says that the value is 1. So something weird is going on.
--- In [email protected], "ozzyapeman" <zoopf...@...> wrote: > > Yes. But I am not sure how that creates the problem I am seeing. > Because when TestAFL.afl is processed, say for a =1, it simply results > in the following statement first being placed into memory: > > FastMALength = 1; > > then the main AFL is processed, and this should result in the > crossover trade being processed with the above variable assignment. > But instead of the above variable assignment, it instead is: > > FastMALength = 5; > > How and why does it skip from 1 to 5? > > > --- In [email protected], "Tony Grimes" <Tonez.Email@> wrote: > > > > *#include is a preprocessor command. The included file, in this case > > TestAFL.afl, will be processed before your trade system 2 afl is > processed.* > > > > On Sat, Dec 13, 2008 at 5:59 PM, ozzyapeman <zoopfree@> wrote: > > > > > 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 ); > > > > > > > > >
