Simulating the limit price was obviously a problem.
Let me also use mtRandom() as Positionscore. I'm still using no slippage for the exit, but deduct 0.01$ per share in commissions.
#include_once "Formulas\Norgate Data\Norgate Data Functions.afl"
OnSecondLastBarOfDelistedSecurity = !IsNull(GetFnData("DelistingDate")) AND (BarIndex() == (LastValue(BarIndex()) -1) OR DateTime() >= GetFnData("DelistingDate") ) ;
OnLastTwoBarsOfDelistedSecurity = !IsNull(GetFnData("DelistingDate")) AND (BarIndex() >= (LastValue(BarIndex()) -1) OR DateTime() >= GetFnData("DelistingDate") );
index_string1 ="$RUA";
constituent = NorgateIndexConstituentTimeSeries(index_string1);
//Max. Pos. Held
qty= 10;//Optimize("qty",30,10,70,5);//
//Limit-Entry
lower = Optimize ("limit",0.5,0.5,2.6,0.2);
limit = L<=Ref(C,-1)-lower*Ref(ATR(10),-1);
slippage=1;
BuyPrice= Ref(C,-1)-lower*Ref(ATR(10),-1); // simulate Limit Price
SellPrice= O;//no slippage //with slippage O-Ref(ATR(10),-1)*slippage/100;
PctSize = 100/qty; //simple % alloc.
SetPositionSize(PctSize, spsPercentOfEquity);
//Back-Tester Initial Settings
//SetBarsRequired(200);//
SetOption("NoDefaultColumns",0);//
SetOption("InitialEquity",100000);//
SetOption("AllowSameBarExit",false);//
SetOption("ActivateStopsImmediately",false);//TRUE when trading on OPEN
SetOption("AllowPositionShrinking",False);//
SetOption("FuturesMode",True);//
SetOption("AccountMargin",100);//
SetOption("InterestRate",0);//
SetOption("maxopenpositions",qty);//
//EnableRotationalTrading()
//SetOption("WorstRankHeld",false);// rot trading only
SetOption("MinShares",1);//
SetOption("MinPosValue",0);//
SetOption("PriceBoundChecking", False);//
SetOption("CommissionMode",3);// 0 - use portfolio manager commission table 1 - percent of trade 2 - $ per trade 3 - $ per share/contract
SetOption("CommissionAmount",0.01);//
SetOption("ReverseSignalForcesExit", False);//
SetOption("UsePrevBarEquityForPosSizing", True);//
SetOption("PortfolioReportMode", 0);// 0: trade list 1: detailed log 2: summary 3: no output
SetOption("UseCustomBacktestProc",False);//
SetOption("EveryBarNullCheck",False);//
SetOption("HoldMinBars",0);//
SetOption("EarlyExitBars",0);//
SetOption("EarlyExitFee",0);//
SetOption("EarlyExitDays",0);//
SetOption("DisableRuinStop",True);//
//SetOption("GenerateReport",1)
SetOption("SeparateLongShortRank",False);//
//SetOption("MaxOpenLong",0);//
//SetOption("MaxOpenShort",0);//
SetOption("RefreshWhenCompleted",False);//
SetOption("ExtraColumnsLocation",False);//
//SetOption("SettlementDelay",0);//
//OptimizerSetEngine("cmae");
SetTradeDelays(0,1,0,0);//
SetBacktestMode( backtestRegular);
//SetOption("portfolioreportmode",1);//
Short=0;
Cover=0;
//Historical Vola filter / PositionScore
HV = 100 * StDev(log(C/Ref(C,-1)),100) * sqrt(252);
///////////////////////////////////////////////////////////////
//Buy Condition:
turnover = MA(V,21)*C>10000000;//
oc = NorgateOriginalCloseTimeSeries()>1;
buy1= L<Ref(L,-1) AND Ref(L,-1)<Ref(L,-2) AND Ref(L,-2)<Ref(L,-3) AND C<MA(C,5) AND C>MA(C,100) AND turnover AND oc AND constituent AND NOT OnSecondLastBarOfDelistedSecurity;// AND Ref(L,-3)<Ref(L,-4) ;
/////////////////////////////////////////////////////////////////
Buy= Ref(buy1,-1) AND limit ;
Sell= C>Ref(C,-1) OR OnSecondLastBarOfDelistedSecurity;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
//Filter = buy1;
//AddColumn(buy1,"Buy");//
//AddColumn(HV,"HV");
positionScore= mtRandom();//HV; //rank by HV or try mtRandom()
Plot(limit*2,"limit",colorRed,styleLine);
Plot(Ref(buy1,-1),"buy",colorgreen,styleLine);
if I snip this:


I'm concerned about this line:
turnover = MA(V,21)*C>10000000;//
oc = NorgateOriginalCloseTimeSeries()>1;
buy1= L<Ref(L,-1) AND Ref(L,-1)<Ref(L,-2) AND Ref(L,-2)<Ref(L,-3) AND C<MA(C,5) AND C>MA(C,100) AND turnover AND oc AND constituent AND NOT OnSecondLastBarOfDelistedSecurity;// AND Ref(L,-3)<Ref(L,-4) ;
/////////////////////////////////////////////////////////////////
Buy= Ref(buy1,-1) AND limit ;
Sell= C>Ref(C,-1) OR OnSecondLastBarOfDelistedSecurity;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
If I change this to:
///////////////////////////////////////////////////////////////
//Buy Condition:
turnover = MA(V,21)*C>10000000;//
oc = NorgateOriginalCloseTimeSeries()>1;
buy1= L<Ref(L,-1) AND Ref(L,-1)<Ref(L,-2) AND Ref(L,-2)<Ref(L,-3) ;
/////////////////////////////////////////////////////////////////
Buy= Ref(buy1,-1) AND limit AND C<MA(C,5) AND C>MA(C,100) AND turnover AND oc AND constituent AND NOT OnSecondLastBarOfDelistedSecurity ;
Sell= C>Ref(C,-1) OR OnSecondLastBarOfDelistedSecurity;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
it looks like this:

still no-where near....
so last modification:
(more stringent entry)
#include_once "Formulas\Norgate Data\Norgate Data Functions.afl"
OnSecondLastBarOfDelistedSecurity = !IsNull(GetFnData("DelistingDate")) AND (BarIndex() == (LastValue(BarIndex()) -1) OR DateTime() >= GetFnData("DelistingDate") ) ;
OnLastTwoBarsOfDelistedSecurity = !IsNull(GetFnData("DelistingDate")) AND (BarIndex() >= (LastValue(BarIndex()) -1) OR DateTime() >= GetFnData("DelistingDate") );
index_string1 ="$RUA";
constituent = NorgateIndexConstituentTimeSeries(index_string1);
//Max. Pos. Held
qty= 10;//Optimize("qty",30,10,70,5);//
//Limit-Entry
lower = Optimize ("limit",1.5,0.5,2.6,0.2); //<-------------------more stringent entry looks better
limit = L<=Ref(C,-1)-lower*Ref(ATR(10),-1);
slippage=1;
BuyPrice= Ref(C,-1)-lower*Ref(ATR(10),-1); // simulate Limit Price
SellPrice= O;//no slippage //with slippage O-Ref(ATR(10),-1)*slippage/100;
PctSize = 100/qty; //simple % alloc.
SetPositionSize(PctSize, spsPercentOfEquity);
//Back-Tester Initial Settings
//SetBarsRequired(200);//
SetOption("NoDefaultColumns",0);//
SetOption("InitialEquity",100000);//
SetOption("AllowSameBarExit",false);//
SetOption("ActivateStopsImmediately",false);//TRUE when trading on OPEN
SetOption("AllowPositionShrinking",False);//
SetOption("FuturesMode",True);//
SetOption("AccountMargin",100);//
SetOption("InterestRate",0);//
SetOption("maxopenpositions",qty);//
//EnableRotationalTrading()
//SetOption("WorstRankHeld",false);// rot trading only
SetOption("MinShares",1);//
SetOption("MinPosValue",0);//
SetOption("PriceBoundChecking", False);//
SetOption("CommissionMode",3);// 0 - use portfolio manager commission table 1 - percent of trade 2 - $ per trade 3 - $ per share/contract
SetOption("CommissionAmount",0.01);//
SetOption("ReverseSignalForcesExit", False);//
SetOption("UsePrevBarEquityForPosSizing", True);//
SetOption("PortfolioReportMode", 0);// 0: trade list 1: detailed log 2: summary 3: no output
SetOption("UseCustomBacktestProc",False);//
SetOption("EveryBarNullCheck",False);//
SetOption("HoldMinBars",0);//
SetOption("EarlyExitBars",0);//
SetOption("EarlyExitFee",0);//
SetOption("EarlyExitDays",0);//
SetOption("DisableRuinStop",True);//
//SetOption("GenerateReport",1)
SetOption("SeparateLongShortRank",False);//
//SetOption("MaxOpenLong",0);//
//SetOption("MaxOpenShort",0);//
SetOption("RefreshWhenCompleted",False);//
SetOption("ExtraColumnsLocation",False);//
//SetOption("SettlementDelay",0);//
//OptimizerSetEngine("cmae");
SetTradeDelays(0,1,0,0);//
SetBacktestMode( backtestRegular);
//SetOption("portfolioreportmode",1);//
Short=0;
Cover=0;
//Historical Vola filter / PositionScore
HV = 100 * StDev(log(C/Ref(C,-1)),100) * sqrt(252);
///////////////////////////////////////////////////////////////
//Buy Condition:
turnover = MA(V,21)*C>10000000;//
oc = NorgateOriginalCloseTimeSeries()>1;
buy1= L<Ref(L,-1) AND Ref(L,-1)<Ref(L,-2) AND Ref(L,-2)<Ref(L,-3) ;
/////////////////////////////////////////////////////////////////
Buy= Ref(buy1,-1) AND limit AND C<MA(C,5) AND C>MA(C,100) AND turnover AND oc AND constituent AND NOT OnSecondLastBarOfDelistedSecurity ;
Sell= C>Ref(C,-1) OR OnSecondLastBarOfDelistedSecurity;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
//Filter = buy1;
//AddColumn(buy1,"Buy");//
//AddColumn(HV,"HV");
positionScore= mtRandom();//HV; //rank by HV or try mtRandom()
Plot(limit*2,"limit",colorRed,styleLine);
Plot(Ref(buy1,-1),"buy",colorgreen,styleLine);
this looks like it's a little closer:


B U T : This is clearly wrong and induces a future leak as the close can't be known in advance.
Buy= Ref(buy1,-1) AND limit AND C<MA(C,5) AND C>MA(C,100) AND turnover AND oc AND constituent AND NOT OnSecondLastBarOfDelistedSecurity ;
Thanks for your replies.