Hi Pieter,
Why be sorry, as we all know, it takes a lot of guts to put your hand up and say I don't get it!
Hopefully I can offer an explaination that resolves this issue for you.
As I see it we can separate the process into 3 sections making the number of Trades Processed easier to follow:-
1) MetaStock - MS
Calculates every Entry Trigger, Entry Price, Initial Stop, Exit Trigger and Exit Price.
2) TradeSim - TS (Part1 - Trades Processed)
Armed with all the data from MS, TS creates a Trade Database of all the potential trades available (eg. if MS can not calculate the value of an InitialStop, even though an entry has been triggered, the trade will be rejected).
3) TradeSim - TS (Part2 - Trades Taken)
A separate issue!
MetaStock is doing exactly what is required but TradeSim is manipulating the data into completed trades from that point on and is controlling when new trades will be taken albeit on the instructions (code) you supply.
There is every possibility that I still haven't explained this in satisfactory terms as this is not one of my strengths but Pieter I am more than happy to phone you if you PM me your number.
Out of interest this is the code I am using for the two system variations for FLT if you want to run them and compare results but please note the different names ("Test Setups" & "Test Setups 2"):-
{Code with fixed InitialStop}
LongEntryTrigger:= Cross(Stoch(10,3),Mov(Stoch(10,3),3,S));
LongEntryPrice:= O;
LongInitialStop:= 0.01;
LongExitTrigger:= H >= LongEntryPrice + 400;
LongExitPrice:= O;
ExtFml("TradeSim.Initialize");
ExtFml("TradeSim.SetStartRecordDate",1,1,1996);
ExtFml("TradeSim.EnableDelayOfEntryByOneBar");
ExtFml("TradeSim.EnableDelayOfAllExitsByOneBar");
ExtFml("TradeSim.EnableProtectiveStop",0);
ExtFml("TradeSim.UseClosingPriceAsStopThreshold");
ExtFml("TradeSim.SetTimeStop",78);
ExtFml("TradeSim.RecordTrades","Test Setups",Long,LongEntryTrigger,LongEntryPrice, LongInitialStop,LongExitTrigger,LongExitPrice,START);
{Code with variable InitialStop}
LongEntryTrigger:= Cross(Stoch(10,3),Mov(Stoch(10,3),3,S));
LongEntryPrice:= O;
LongInitialStop:= LongEntryPrice - 2 * ATR(30);
LongExitTrigger:= H >= LongEntryPrice + 400;
LongExitPrice:= O;
ExtFml("TradeSim.Initialize");
ExtFml("TradeSim.SetStartRecordDate",1,1,1996);
ExtFml("TradeSim.EnableDelayOfEntryByOneBar");
ExtFml("TradeSim.EnableDelayOfAllExitsByOneBar");
ExtFml("TradeSim.EnableProtectiveStop",0);
ExtFml("TradeSim.UseClosingPriceAsStopThreshold");
ExtFml("TradeSim.SetTimeStop",78);
ExtFml("TradeSim.RecordTrades","Test Setups 2",Long,LongEntryTrigger,LongEntryPrice, LongInitialStop,LongExitTrigger,LongExitPrice,START);
Regards
Rob