// Downloaded From https://www.WiseStockTrader.com
MinPrice=20; 
MinVolume=100000; 
 
//Left side of Handle formation can occur anywhere from 2-25days - look at the last 25 bars and get the number of bars since condition met. 
 
LH=HHV(Close,25); // Highest close past 25 days. 
BLH=HHVBars(Close,25); // Tells us # of bars that have past since high reached. Used to determine lowest bar. 
 
BH=LLV(Close,BLH); //  Lowest close since the highest value was reached/ 
BBH=LLVBars(Close,BLH); // number of bars that have past since lowest value. 
 
NBLH=BLH-BBH; // this is the number of bars in the formation of the left side handle. NBLH must be atleast 2 to be a valid handle formation. 
 
// Now lets get the cup formation. Cup formation can occur anywhere from 23 to 145 days. The left side of the cup can be from 20-120 days and the right side can be anywhere from 3-25 days. 
 
// get the right side of the cup(low). 
 
BC=LLV(Close,BLH+25); // look at 25 bars since the left side of handle. 
BBC=LLVBars(Close,BLH+25); 
 
// get the left side of the cup. 
 
LC=Ref(HHV(Close,120),BBC*-1); 
BLC=Ref(HHVBars(Close,120),BBC*-1); 
 
// Get highest value before left side of cup started to form. 
 
KC=Ref(HHV(Close,30),BLC*-1); 
BKC=Ref(HHVBars(Close,120),BLC*-1); 
 
Delta= LC/KC; 
 
//Calculate the up/down relative price value during time frame RC (Right Cup Formation) 
 
URPV=DRPV=0; 
i=EndValue(BLH); 
j=EndValue(BBC); 
do 
 { 
   URPV = IIf(Ref(Close,i*-1)>Ref(Close,(i+1)*-1),Ref(Volume,(i*-1))*Ref(Close,(i*-1))-Ref(Close,(i+1)*-1),URPV); 
   DRPV = IIf(Ref(Close,i*-1)<Ref(Close,(i+1)*-1),Ref(Volume,(i*-1))*Ref(Close,(i+1)*-1)-Ref(Close,(i*-1)),DRPV); 
   i++; 
 } while (i<j); 
Alpha = URPV/DRPV; // Should be >1 
 
// Calculate Beta 
 
DRPV=0; 
i=EndValue(BBH); 
j=EndValue(BLH); 
do 
 { 
   DRPV = IIf(Ref(Close,i*-1)<Ref(Close,(i+1)*-1),Ref(Volume,(i*-1))*Ref(Close,(i+1)*-1)-Ref(Close,(i*-1)),DRPV); 
   i++; 
 } while (i<j); 
Beta = URPV/DRPV; 
Gamma = log(Alpha) + log(Beta) + delta; 
 
AddColumn(LH,"Left Handle"); 
AddColumn(BH,"Bottom Handle"); 
AddColumn(BC,"Bottom Cup"); 
AddColumn(LC,"Left Cup"); 
AddColumn(ALPHA,"Alpha"); 
AddColumn(DELTA,"Delta"); 
AddColumn(BETA,"BETA"); 
AddColumn(GAMMA,"Gamma"); 
 
// Filter Criteria as follows: 
// 1. Right side of handle must be at least 2 bars. NBHL>2 
// 2. Bottom of the cup must be lower than the left top of the cup. 
// 3. Left handle must be lower than or equal to the lect cup formation. 
// 4. Bottom of the cup must be less than the left handle. 
// 5. Bottom of the handle must be > 80% of the left handle + 20% of the bottom cup. 
// 6. Start of cup/handle formation must be greater than precedding chart value. LC>LC 
// 7. Minimum price and volume you can set any way you like. 
 
 
Filter= NBLH>2 AND Close>BH AND BC<LC AND LH<=LC AND BC<LH AND BH<LH AND BH>.8*LH+.2*BC AND KC<LC AND Close>MinPrice AND MA(Volume,30)>MinVolume;