I have done work on combining multiple systems while leaving them intact 
individually. It is posted in the amibroker-at group, Augustus, 10, 2010

your specific example can be simply solved as follows, rgds, Ed

startime = 093459;
closetime = 160459;

timeWindow = TimeNum() >= starttime AND TimeNum() <= closetime;
firstBarOfDay = TimeNum() >= starttime ;firstBarOfDay = firstBarOfDay - 
Ref(firstBarOfDay,-1);
lastBarOfDay = TimeNum() >= closetime;lastBarOfDay = lastBarOfDay - 
Ref(lastBarOfDay,-1);

Buy = Cross(EMA(15), EMA(50)) AND timeWindow;
Sell = BarsSince(Buy) == 3000 OR lastBarOfDay == 1
buy = ExRem(buy,sell);
sell = ExRem(sell,buy);





From: gariki 
Sent: Sunday, September 05, 2010 3:13 AM
To: [email protected] 
Subject: [amibroker] System within system.. how to?


  
Hello folks,

So i have a system using arrays (not based on for loops). And i want to 
introduce a bunch of filters into the system and i have coded the filters by 
themselves. 

To now interject these filters into the original system, one way i can think of 
is to convert the original system to use for loops so that i can write the 
markers for the original system into static variables and use them along with 
the filters to get the signals.

But is there any way i can do that without converting the original system to 
use for loops. 

i think i can make it work if i can somehow create an array that has say 1's 
everywhere where the original system was in a long trade; and say use 2's to 
mark for short trades. Then i can easily AND this part with the new filters to 
get the final signals.

Example:



  Original System: simple MA system
  Buy = Cross(EMA(15), EMA(50));
  Sell = BarsSince(Buy) == 3000; // holding for a few days


  New filter: dont hold overnight
  Buy = TimeNum() == 093459;
  Sell = TimeNum() == 160459;





Thanks
-gariki

 



Reply via email to