[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA


  • Date: Sun, 31 Jan 2010 17:19:14 -0800
  • From: "NW Trader" <ta4charts@xxxxxxxxxxx>
  • Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA

PureBytes Links

Trading Reference Links



Hi Rasheed,
 
OK, well I've studied all 8 of the attached charts and still can not discern exactly what you wish for your buy and sell conditions other than an apparent crossing of the L1 or H1 levels.  It appears that for a buy you want the open to be above L1 and the close below, and for a sell the open should be below and the close above the H1 level. Unfortunately, I do not have the same stock data that you have so I am unable to create the same charts as you to develop code that replicates your pictures.
 
As an aside, I would share the following observation: as a trading system, I think this will have serious drawdowns -- your AFRIBANK would have a drawdown of ~ 35% between entry early Nov and mid Nov and still not back to a sell level which would only be for a ~20% gain; not a very good risk reward ratio. And of course during that time your monies are tied up and you have lost other opportunities to trade profitably. Your other examples are not quite so extreme in reality, but all share that potential drawdown issue. Perhaps the buy should be crossing from under the L1 and the sell crossing from above the H1 levels, i.e. crosses from outside the range defined by L1 and H1 -- just a suggestion.
 
This is a good opportunity for you to start to learn how to code a simple system.  I've given you most of the code you need, now you only have to redefine the buy and sell conditions.  Study the following which you may substitute in the existing code:  

// ======================= Exploration and Signal Code =================

TRIGGER = ParamToggle("Trigger " ,"Inside|Outside") ;

XH1 = ( ( H > H1) AND Cross(C, H1) ) OR (H== H1 AND C < H1) ; // inside sell

XL1 = ( ( L < L1 ) AND Cross(L1, C) ) OR (L == L1 AND C> L1); // inside buy

XH2 = ((H > H1) AND Cross( H1, C)) OR (H== H1 AND C < H1) ; // outside sell

XL2 = ((L < L1) AND Cross( C, L1)) OR (L == L1 AND C> L1) ; // outside buy

XL3 = Ref(C,-1) > L1 AND Cross(L1,C) ; // STOP LOSS ON BUY

if( TRIGGER == 0)

{

Sell = XH1 ;

Buy = XL1 ;

}

else

{

Sell = XH2 OR XL3;

Buy = XL2 ;

}

TradeDisplay = ParamToggle("Remove Extra Trades?", "No|Yes", 1);

if(TradeDisplay == 0)

{ }

else

{

Buy = ExRem(Buy,Sell); Sell = ExRem(Sell,Buy); // THIS WILL REMOVE EXCESS SIGNALS ON A CHART OR IN AN EXPLORATION

}

Filter = Buy OR Sell;

What this replacement code will do when set to Inside is attempt to replicate the Buy & Sell conditions which I think your charts depict.  When set to Outside, it will use the suggested change I made above plus apply a stop loss when the price falls back under L1 after a buy. It also sets the display to remove excess signals as the default.  If you can further define the price action for your buy or sell conditions, improvements may be possible.  Good luck and let us know how you do with this version.

Peace and Justice   ---   Patrick
----- Original Message -----
Sent: Sunday, January 31, 2010 12:30 PM
Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA [8 Attachments]

wow patrick. thanks for everything. my major problem is I don't know how to write an AFL Formula. But if I see a good one I go for it. I have attached more charts & hope this might help.  
Our market moves 5% max up or down daily, I made the LOOKBACK & SHIFT narrow because I wanted to catch those fast rallies, buying when prices hit support L1 & selling when it hits H1. 

--- On Sat, 1/30/10, NW Trader <ta4charts@xxxxxxxxxxx> wrote:

From: NW Trader <ta4charts@xxxxxxxxxxx>
Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA
To: amibroker@xxxxxxxxxxxxxxx
Date: Saturday, January 30, 2010, 6:27 PM

 



Hi Rasheed,
 
Sorry that I didn't understand you.  Yes, for me breakout has a definite connotation -- meaning that a stock hits a resistance (or support) level and proceeds through it to establish a new trading range or the breakout is said to fail (although a wider trading range may be now established) .  I think what you are describing is a reversal at resistance (or support).  In order to code this correctly, please examine the behavior of a number of stocks at resistance or support and then write a concise description of their common price action at those levels.  The attachment you sent is not sufficient for me to develop this as it appears that in some cases price penetrates the H1 or L1 level before falling back the following day, other times it touches but doesn't close beyond the level. 
 
As a first hack to solve your request, I simply reversed the buy and sell conditions, however that led to some disastrous trades when a stock would actually breakout (i.e., continue well beyond the H1 or L1 level) not reverse.  So that isn't the solution.   Perhaps having a violation of the level followed the next day (or within X days) a reversal back across the level would be a workable solution.  Ponder on that or other variants and be sensitive not to curve fit a piece of code to one stock your chart of NEM makes for a nice idea, but how many other stocks have been in a consolidation range of about 5% +/- for 6 months?
 
Heading out for a movie now, but will be back later.
 
Peace and Justice   ---   Patrick
----- Original Message -----
Sent: Saturday, January 30, 2010 5:31 PM
Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA [1 Attachment]

Hi Patrick 
I really really appreciate the time spent on this formula. I tested it & feel its not what i was looking for. please view my attachment for ideas. I think the problem is the word "BREAKOUT", i wanted a buy signal when prices hit the down(L) & SELL Signal when price hits (H)lines and also a column identifying their various support & resistant levels.
Below are columns needed.
=ticker=date/ time=industry sector=last= action="" resistant H1=support L1.

I will appreciate if these criteria's are met.
thanks patrick
Rasheed.

--- On Sat, 1/30/10, NW Trader <ta4charts@xxxxxxxx net> wrote:

From: NW Trader <ta4charts@xxxxxxxx net>
Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA [1 Attachment]
To: amibroker@xxxxxxxxx ps.com
Date: Saturday, January 30, 2010, 3:14 PM

 



Hi Rasheed,
 
My apologies for taking so long to finish this up for you.  Some other commitments got in the way of what really was not too hard a project.  Anyway, I've tweaked the output a little so you can select between either the close crossing either the H1 or L1 line or the high or low crossing those lines to generate a buy or sell signal.  Otherwise the signals are as you requested. Code is both attached (probably safer as won't introduce line breaks in copying) and written below.
 
I didn't code for short and cover as you didn't give me rules you wanted to implement. Personally I would not use a stop and reverse system with the defined buy and sell signals.  I think you would get better results if a sell was initiated when the close crosses under H1 after a buy when going above H1, and a cover when the close crosses above the L1 after a short when the close went under L1.  But I've not tested this, and it's just a feeling from looking some charts.
 
I've added trade signal arrows on the chart (again based on the parameter selected) as well as a param to remove excess trade signals. I also added the VAP indicator as I think it helpful to see possible support or resistance at a breakout.
 
Hope this is what you were looking for.
 
Peace and Justice   ---   Patrick
 

//  RASHEED'S BREAKOUTS

//  help requested for adding an exploration for End of Day breakouts

/*  coded by NW Trader 1-29-10 with exploration, chart signals and chart options

          toggle parameter to select between C or H & L for the breakout crossings

          toggle parameter added to remove extra trade signals

          Volume at price added

*/

 _SECTION_BEGIN("BREAK OUTS");

 //  ============ == Standard Chart Code ============ ========= =======

 

CodeName = "Rasheed's Breakouts" ;

SetFormulaName("Rasheed's Breakouts" );

 //   ------------ ---  Controls for Chart Display  ------------ --------- --------- ----

               SetChartOptions(0,chartShowDates|chartWrapTitle);

              if( ParamToggle("Tooltip shows", "All Values|Only Prices" ) )

                   {

                   ToolTip=StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%) \nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));

                   }

              space = Param("Space on Chart", 20, -15, 50, 1);

              GraphXSpace = space;                

              SetChartBkColor(  ParamColor("Background Color" , colorLightGrey) );

 // ============ ===== Rasheed's original code (with Lookback and Shift default set to his specs) ============ =====

 H0=H;

 L0=L;

 C0=C;

 O0=O;

 Lookback=Param("LookBack",10,10,50,1); // Default for interday commodity currency trading

 shift=Param("Shift", 5,1,50,1);                     // ?

 x0=LastValue(Cum(1));

 x1=x0-shift;

 H=Ref(H,-shift+1);

 L=Ref(L,-shift+1);

 H1=LastValue(Ref(HHV(H,Lookback),-1));

 L1=LastValue(Ref(LLV(L,Lookback),-1));

 Plot(H1,"H1",colorYellow);

 Plot(L1,"L1",colorYellow);

 H=H0;L=L0;C=C0;O=O0;

 up=Cross(H,H1) AND Cum(1)>x1;

 dn=Cross(L1,L) AND Cum(1)>x1;

 Plot(C,"Close",IIf(Cum(1)>x1-Lookback AND Cum(1)<=x1,colorBlue,IIf

(Up,colorBrightGreen,IIf( Dn,colorRed,colorBlack))),64);

PlotShapes(shapeDownArrow*(Cum(1)==x1+1),colorBlue);

 

// ============ ========= == Exploration and Signal Code ============ =====

 

TRIGGER = ParamToggle("Trigger " ,"CLOSE|HIGH OR LOW") ;

 XH1 = Cross(C,H1) ;

XL1 = Cross(L1,C);

XH2 = Cross(H,H1);

XL2 = Cross(L1,L);

 if( TRIGGER ==0)

{ 

Buy =  XH1 ;

Sell =  XL1 ;

}

else

{ 

Buy =  XH2 ;

Sell =  XL2 ;

}

TradeDisplay = ParamToggle("Remove Extra Trades?", "No|Yes");

 

if(TradeDisplay == 0)

{ }

else

{

 Buy = ExRem(Buy,Sell); Sell  = ExRem(Sell,Buy);  // THIS WILL REMOVE EXESS SIGNALS ON A CHART OR IN AN EXPLORATION

}

Filter = Buy OR Sell;

 Action = "">WriteIf(Buy, "BUY", WriteIf( Sell, "SELL",  "   " ) );

 AddTextColumn(IndustryID(1) ,"Industry Sector  ", 30.0, colorBlue, colorYellow);

AddColumn(C, "Last ",2.2, colorWhite,colorBlue);

AddTextColumn(Action, "Action", 8.0, IIf(XH1, colorDarkGreen, colorDarkRed),  colorWhite); 

AddColumn( IIf( XH1, H1 , L1  )  , "BREAKOUT LEVEL", 3.2 ,colorYellow,   IIf(XH1, colorDarkGreen, colorDarkRed) );

 

// ------------ --------- --------- --------- --------- --------- --------- --------- --------  Arrow signals --- FOR TRADES  ------------ --------- --------- --------- --------- --------- -

 PlotShapes(Buy*shapeUpArrow,colorBrightGreen ,0, L /* ENTRY_TRAILARRAY */ , -30);

PlotShapes(Sell*shapeDownArrow,colorLightYellow,0, H , -30);

_SECTION_END();

_SECTION_BEGIN("Volume At Price");

PlotVAPOverlay( Param("Lines", 1000, 100, 1000, 10 ),

Param("Width", 15, 1, 100, 1 ),

ParamColor("Color", colorBlueGrey ),

ParamToggle("Side", "Left|Right", 1 ) | 4*ParamToggle("Z-order", "On top|Behind", 1 ) );

_SECTION_END();

 
 
 
 
 
----- Original Message -----
Sent: Friday, January 29, 2010 1:40 AM
Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA [1 Attachment]

Hi Patrick,
i use E.O.D
I want the L1 H1 to act as a support & resistant line.
pls find attached
tx
rasheed

--- On Thu, 1/28/10, NW Trader <ta4charts@xxxxxxxx net> wrote:

From: NW Trader <ta4charts@xxxxxxxx net>
Subject: Re: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA
To: amibroker@xxxxxxxxx ps.com
Date: Thursday, January 28, 2010, 4:09 PM

 

Hi Rasheed,
 
What time length do you expect this to run on?  1 Minute, 15 Min, Hourly, end of day??? Do you want the H1 and L1 levels set by the time frame selected or some other time frame (like end of day if you are charting intraday).
 
How do you define a buy or sell?  Is it to be a cross of the H1 or L1 line? 
 
An exploration that produces the H1 and L1 values for each stock or instrument is easy enough to code, I just don't know what the answer to the above questions are and those will determine the code and solution to your question. I'll be glad to help in a bit once we know this information.
 
Peace and Justice   ---   Patrick
----- Original Message -----
From: Rasheed M
Sent: Thursday, January 28, 2010 2:33 PM
Subject: [amibroker] REALLY NEED HELP ON BREAKOUT FORMULA

hi guys.
I need help. I will like to run a scan/exploration on an AFL titled "BREAKOUTS". I reduced the parameters to (lookback= 10) & (Shift=5). I need it to give me "H1'' & "L1" points prices of each stocks and perhaps a BUY/SELL within these regions.
Thanks I will really appreciate.


_SECTION_BEGIN( "BREAK OUTS");
H0=H;

L0=L;

C0=C;

O0=O;

Lookback=Param( "LookBack" ,22,10,50, 1); // Default for interday commodity currency trading

shift=Param( "Shift", 11,1,50,1);                     // ?

x0=LastValue( Cum(1));

x1=x0-shift;

H=Ref(H,-shift+ 1);

L=Ref(L,-shift+ 1);

H1=LastValue( Ref(HHV(H, Lookback) ,-1));

L1=LastValue( Ref(LLV(L, Lookback) ,-1));

Plot(H1,"H1" ,colorYellow) ;

Plot(L1,"L1" ,colorYellow) ;

H=H0;L=L0;C= C0;O=O0;

up=Cross(H,H1) AND Cum(1)>x1;

dn=Cross(L1, L) AND Cum(1)>x1;

Plot(C,"Close" ,IIf(Cum( 1)>x1-Lookback AND Cum(1)<=x1,colorBlue, IIf

(Up,colorBrightGree n,IIf( Dn,colorRed, colorBlack) )),64);

PlotShapes(shapeDow nArrow*(Cum( 1)==x1+1) ,colorBlue) ;


_SECTION_END( );



------------ --------- --------- ------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroke r.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroke r.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups. yahoo.com/ group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups. yahoo.com/ group/amibroker/ join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@ yahoogroups. com
    amibroker-fullfeatu red@xxxxxxxxxxxx com

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscri be@xxxxxxxxxxxx com

<*> Your use of Yahoo! Groups is subject to:
    http://docs. yahoo.com/ info/terms/





__._,_.___


**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___