1stStrike's idea sounds really complementary to ONS and also very simple. I hope I understood it right so here is a quick & dirty proposal. I tried with the assets I have history data from 2002 to 2015. Assuming both orders should be cancled if one of them is not fulfilled on Mondays, otherwise Entrytime must be set accordingly.
Code:
int WatchTrades() {
	
	if((TradeIsShort && NumOpenLong != 0) || // OCO kill pending short
	   (TradeIsLong && NumOpenShort != 0) || // OCO kill pending long
	   (between(tow(),52000,52005)))	 // Friday 4:00 pm EST
	   return 1;
	else	
	   return 0;
}

void Trade1stStrike() {
	
	if(dow() == 1) {

		Entry = 50*PIP;
		Stop = 60* PIP;
		// EntryTime = 5;
	
		enterShort(WatchTrades);
		enterLong(WatchTrades);
	}
}


function run() {

 set(LOGFILE+TICKS);
 BarPeriod = 1440;
 BarOffset = 300; // EST 01:00 + 4:00 = UTC 5:00
 StartDate = 2002;
 EndDate = 2015;
 
 while(asset(loop("AUD/JPY","AUD/USD","EUR/AUD","EUR/CHF","EUR/GBP","EUR/JPY","EUR/USD","GBP/AUD","GBP/USD","NZD/USD","USD/CHF","USD/JPY")))
   Trade1stStrike();

}



Ironically GBP/USD is the worst performer.:)

Code:
Portfolio analysis  OptF  ProF  Win/Loss  Wgt%

AUD/JPY avg         .052  1.17  136/323   19.3  
AUD/USD avg         .062  1.28  129/290   34.5  
EUR/AUD avg         .034  0.98   85/400   -2.8  
EUR/CHF avg         .203  1.08   70/165    5.5  
EUR/GBP avg         .040  1.15   62/118   11.4  
EUR/JPY avg         .086  1.22  148/420   32.5  
EUR/USD avg         .032  1.10  134/369   16.2  
GBP/AUD avg         .000  0.97  115/549   -6.4  
GBP/USD avg         .000  0.82  116/462  -36.8  
NZD/USD avg         .012  1.04  103/278    4.5  
USD/CHF avg         .112  1.07  122/332   10.4  
USD/JPY avg         .053  1.12  119/283   11.6


Maybe there will be some approaches to improve it.