This is the program for breakouts - any suggestion are wellcome
{ SCRIPT : SCAN1.TAS Screen for various conditions and create a report with BUY/SELL Signals x day price breakout y day volume breakout Stochastics buy/sell RSI breakout Date : 11/9/91} #MAX_QUOTES 100 #OUTPUT_FILE 'SCAN1.LST N' { SCAN Parameter settings follow. These parameters can be changed to suit you}
PRICE_BREAKOUT_PERIOD = 50; { Price breakout lookback period} VOL_BREAKOUT_PERIOD = 30; { Volume breakout lookback period} STOCH_PERIOD = 14; { Stoch %K period} STOCH_SLOW = 3; { Stoch %D slowing} RSI_PERIOD = 14; { RSI period} VOL_PERCENT = 300; { Percentage for VOLUME BREAKOUT} { Declare various arrays to hold the results of indicators } HHV_A : ARRAY; { Place to save HHV} VOL_A : ARRAY; { Place to save Volume Moving average} STK_A : ARRAY; { Place to save Stochastic %K} STD_A : ARRAY; { Place to save Stochastic %D} RSI_A : ARRAY; { Place to save RSI } HHV_A = HHV(C,PRICE_BREAKOUT_PERIOD); VOL_A = MOV(V,VOL_BREAKOUT_PERIOD,'S'); { Use STOCH_PERIOD day stoch with 3 day slowing} STK_A = STOCH(STOCH_PERIOD,3); { Compute %D as 3 day EMA of %K} STD_A = MOV(STK_A,STOCH_SLOW,'E'); { RSI_PERIOD Day RSI} RSI_A = RSI(RSI_PERIOD); PRICE_BREAKOUT = 0; VOL_BREAKOUT = 0; STOCH_BUY = 0; STOCH_SELL = 0; RSI_BUY = 0; RSI_SELL = 0; if CLOSE OF TODAY IS GREATER THAN HHV_A OF YESTERDAY THEN begin PRICE_BREAKOUT = 1; end; if VOLUME OF TODAY IS GREATER THAN VOL_PERCENT/100 * VOL_A OF YESTERDAY THEN begin VOL_BREAKOUT = (VOLUME OF TODAY/VOL_A OF YESTERDAY) * 100; end; if STD_A OF YESTERDAY IS LESS THAN OR EQUAL TO 20 AND STK_A OF YESTERDAY IS LESS THAN STD_A OF YESTERDAY AND STK_A OF TODAY IS GREATER THAN STD_A OF TODAY THEN begin STOCH_BUY = 1; end; if STD_A OF YESTERDAY IS GREATER THAN OR EQUAL TO 80 AND STK_A OF YESTERDAY IS GREATER THAN STD_A OF YESTERDAY AND STK_A OF TODAY IS LESS THAN STD_A OF TODAY THEN begin STOCH_SELL = 1; end; if RSI_A of YESTERDAY IS LESS THAN OR EQUAL TO 30 AND RSI_A OF TODAY IS GREATER THAN 30 THEN begin RSI_BUY = 1; end; if RSI_A of YESTERDAY IS GREATER THAN 70 and RSI_A of TODAY IS LESS THAN 70 THEN begin RSI_SELL = 1; end; IF FIRST_TICKER THEN begin WRITELN( ' CURR PREV CURR STOCH ' ); WRITELN( 'TICKER NAME CLOSE CLOSE Vol % %K %D RSI' ); WRITELN( '------------------------ ------- ------- ------- ------- ------- -------' ); end; IF PRICE_BREAKOUT OR VOL_BREAKOUT OR STOCH_BUY OR STOCH_SELL OR RSI_BUY OR RSI_SELL THEN BEGIN WRITELN(ticker,fullname,close, close of yesterday, ((volume/VOL_A[-1]))*100,'%%',stk_a,std_a, RSI_A); IF PRICE_BREAKOUT THEN WRITELN('\t\t* PRICE BREAKOUT ABOVE ', INT(PRICE_BREAKOUT_PERIOD), ' DAY HIGH OF CLOSE'); IF VOL_BREAKOUT THEN WRITELN('\t\t* VOLUME BREAKOUT ',VOL_BREAKOUT, ' PERCENT OVER LAST', INT(VOL_BREAKOUT_PERIOD), ' DAYS'); IF STOCH_BUY THEN WRITELN('\t\t* STOCH BUY'); IF STOCH_SELL THEN WRITELN('\t\t* STOCH SELL'); IF RSI_BUY THEN WRITELN('\t\t* RSI BUY'); IF RSI_SELL THEN WRITELN('\t\t* RSI SELL'); END; |