Need a program for a breakout trading method

I doubt this idea would backtest succesfully in any platform. You'll be left to optimize or think about that 1 point. It's very easily curve fitted in TS for sure, which is exactly what TS does quite well. Your success thus far with it is more likely luck, unless you've been doing it more than 6 months now.
 
I would agree with bolinsky on the point about backtesting... I do think though that to have a shot to make this strategy work in a 100% automated sense, a lot of it would be about stock selection and the situations you chose to apply it.

I have the sense now when you're trading it, you don't trade every market, correct? if you're very selective about applying it and can formalize this method, this would be the key to making automation successful here.
 
tradelink,

I've just downloaded your software; looks interesting.
May I suggest you implement an interface with the
Open E Cry brokerage. They have an extensive C# API
which is well documented, so I would imagine it would
be a relatively easy thing to do.

Feel free to send me a PM if you have any questions
or if you would like some help with this.

Richard

Quote from tradelink:

sam,

my easy language is rusty, but it will be something like

Code:
if (high>(high[-1]+1)) then buy limit at high

if (low<(low[-1]-1)) then sell limit at low

You could also checkout open source c# tradelink platform I develop with a number of other traders and firms http://tradelink.googlecode.com

The code for your idea in tradelink would be something like :

Code:
public SamIdea : DayTraderBox
{
 
 override ReadOrder(Tick t)
 {
   if (bl.RecentBar.High>(bl[bl.Last-1].High+1) 
 return new BuyLimit(Symbol, bl.RecentBar.High, MinSize);

  if (bl.RecentBar.Low<(bl[bl.Last-1].Low-1))
 return new SellLimit(Symbol,bl.RecentBar.Low,MinSize);

}
}

Unlike TS, this software is free and open source and works with Assent, IB and Sterling/Echo is upcoming.
 
Quote from Sam Mcgee:
I have a trading method that works fairly well when I test it manually. I'm just starting to learn Easylanguage and hope to be able to program it sometime soon but it's too difficult for me yet as a beginner....
Sam:

Here's the code in EasyLanguage.
This is not the buy/sell program... this code only draws the arrow on the chart, so that you can evaluate your concept.

Don't be overwhelmed by the number of lines of codes... the logic is simple
most of the code is about drawing the arrows LOL.

Code:
input:
threshold(1),
arwc_offset(1),
arwc_size(7),
arwc_textsize(10);

var:
Low_Breakout(false),
High_Breakout(false),
id_arwc(-1);


Low_Breakout = (high[1] + threshold) < high[2] and (high[3] + threshold) < high[2];
High_Breakout = (low[1] - threshold) > low[2] and (low[3] - threshold) > low[2];

if Low_Breakout and high > high[2] then 
begin
	plot1( high[2], "BO", red);
	id_arwc = arw_new( date, time, low - arwc_offset, false);
	arw_setcolor(id_arwc, blue);
	arw_setsize(id_arwc, arwc_size);
	arw_setstyle(id_arwc, 10);
	arw_settext(id_arwc, "Buy");
	arw_settextsize(id_arwc,arwc_textsize);
	arw_settextcolor(id_arwc,Blue);
	Arw_SetTextAttribute(id_arwc, 1, true);
end
else

if high_Breakout and Low < low[2] then 
begin
	plot1( low[2], "BO", red);
	id_arwc = arw_new( date, time, high + arwc_offset, true);
	arw_setcolor(id_arwc, red);
	arw_setsize(id_arwc, arwc_size);
	arw_setstyle(id_arwc, 10);
	arw_settext(id_arwc, "Sell");
	arw_settextsize(id_arwc,arwc_textsize);
	arw_settextcolor(id_arwc,red);
	Arw_SetTextAttribute(id_arwc, 1, true);
end;

This is how the chart looks like.

<img src=http://elitetrader.com/vb/attachment.php?s=&postid=2151918 border=2>
 

Attachments

Run this scenario on current historical data:

long ll_num_of_bars, ll_count, i, j
boolean lb_entrypoint_found
decimal ldc_high_found, ldc_high1[], ldc_high2[], ldc_entry_high
datetime ldt_timeperiod_found, ldt_timeperiod1[], ldt_timeperiod2[], ldt_entrypoint_period

ll_num_of_bars = ?
ll_count = 0
lb_entrypoint_found = False

For i = 1 to ll_num_of_bars
ll_count = ll_count + 1
ldc_high1[ll_count] = high(i)
ldt_timeperiod1[ll_count] = timeperiod(i)
Next

Sort ldc_high1[] array in Ascending order

For j = 1 to ll_num_of_bars
If ldc_high1[1] > ldc_high[j] + 1.00 Then
ldc_high_found = ldc_high1[j]
ldt_timeperiod_found = ldt_timeperiod1[j]
End If
Next




Run this similar scernario on historical data at least 2 bars later:
ll_count = 0
ll_num_of_bars = ll_num_of_bars + 2

For i = 1 to ll_num_of_bars
ll_count = ll_count + 1
ldc_high2[ll_count] = high(i)
ldt_timeperiod2[ll_count] = timeperiod(i)
Next

Sort ldc_high2[] array in Ascending order

For j = 1 to ll_num_of_bars

If ldc_high_found < ldc_high2[j] Then
If ldt_timeperiod_found < ldt_timeperiod2[j] + 2 timebars Then
ldc_entry_high = ldc_high2[j]
ldt_entrypoint_period = ldt_timeperiod2[j]
lb_entrypoint_found = True
Exit
End If
End If

Next

If lb_entrypoint_found is False Then rerun the 2 code snippets (above) at a later time period.

But, if lb_entrypoint_found is True Then the most recent high
is in ldc_entry_high and the timestamp associated with that high
is in ldt_entrypoint_period.


* Note all of the above is just pseudo-logic, not any particular programming language.
 
Quote from bwolinsky:

I doubt this idea would backtest succesfully in any platform. You'll be left to optimize or think about that 1 point. It's very easily curve fitted in TS for sure, which is exactly what TS does quite well. Your success thus far with it is more likely luck, unless you've been doing it more than 6 months now.

In the last month it would have worked great. I used it whenever I was home this month and took an IB simulated account from $10,000 to $100,000. You can't cheat with the simulated account. You can only take large risks trading a large number of contracts, something I'd not normally do with real money.

I agree, there are large periods where it works well and other times where it won't. In 2006 where the market didn't move a lot, the method wouldn't have worked well. It needs to be combined with filters or other methods to make it more consistant. That's why I thought I'd post it to get some discussion going. I could share it with others and at the same time I might get some ideas to improve it.
 
A breakout trading system is a subset of trend catching systems.

Breakout trading systems work great when there are strong trends and otherwise lose money.
 
Quote from Tums:

Sam:

Here's the code in EasyLanguage.
This is not the buy/sell program... this code only draws the arrow on the chart, so that you can evaluate your concept.


This is how the chart looks like.

<img src=http://elitetrader.com/vb/attachment.php?s=&postid=2151918 border=2>

That looks great Tums. I'll have to try the program in my Multicharts. It looks like there are multiple entries each day. I guess I didn't make it clear or specify that there should only be one entry per day, either the first long or short presented. Then it exits at the end of the day.

With thirty minute bars, starting at 9:30, a setup can't occur until after 11:00 am. That works perfect for my shift schedule, if I have to work nights, I can sleep till 11 before I need to look for a setup. Once I'm in a trade, I can set up an automatic timed exit at the market for 4:10 pm and go back to bed for another nap.
 
Quote from Sam Mcgee:
That looks great Tums. I'll have to try the program in my Multicharts. It looks like there are multiple entries each day. I guess I didn't make it clear or specify that there should only be one entry per day, either the first long or short presented. Then it exits at the end of the day.
With thirty minute bars, starting at 9:30, a setup can't occur until after 11:00 am. That works perfect for my shift schedule, if I have to work nights, I can sleep till 11 before I need to look for a setup. Once I'm in a trade, I can set up an automatic timed exit at the market for 4:10 pm.
The purpose of this code is to sift out all the occurrences of such a pattern in a chart... so that you can visually assess the probability of such a trading concept.

You can then build more logic to it to filter out the noise...
e.g. take only long trades when the moving average is going up?
 
Quote from The Voyager:

Similar to 123, the selling at the EOD I'm not sure, how about sell at next major resistance area.

TV

I did try as best I could with manual testing to exit at a reversal and some other ideas. I found that exiting the end of the day worked best. I also tried using some fixed stops but that made it worse. With Easylanguage I could test it for a lot of different strategies until I found what worked best.
 
Back
Top