Tuesday, December 27, 2005

An additional blog

I have been asked to contribute to a new Blog at ADVFN (www.advfn.com) and after seeing the list of participants I gladly accepted the offer.

Scroll down to Christian Czirnich to read my articles there or click on this direct link

Registration on the site is free

Friday, December 23, 2005

Time out

Isle

Take some time off

Happy Christmas and a prosperous and healthy New Year

LOSSES - I hate them

Losses are just cost of doing business
If you want to be a trader, accept that Losses are just inevitable
Better take a small Loss, than letting it become a big Loss

Yeah, I know all that, but...

Do you recognise yourself?
I DO!

Taking a loss is only ok, if I cover my trade at a loss and then it goes at least 50 ticks further against my initial position. Then I feel not good, but at least correct.

But which trade do you remember? Yes, exactly. The trade which turned right around, which faked you out, which took your Stop and then proved your initial trade correct. This is the trade where Fear let you place your Stop too tight and now, when you see your position down again, then Hope comes in telling you, it will turn around by letting you know the last time where you were stopped right at the Top or Bottom. And that of course is the start of the small Loss becoming a big Loss.

I have Losses as everyone in trading has. And if someone tells you he has a 100% system, don't believe it, walk away, he is just out to get your money.

And I have found just one way to deal with Losses:

A Loss is a Payment to the market I have to make to see, if my analysis is correct or not.
It's like Black Jack or Poker. Only if you place your bet you will learn if you have the better cards.

In trading you have a Trading Plan, a Setup and you take it, the moment you see everything in place. You not only know, that your Setup is present, but you also know at which price a contract has to trade to make this Setup invalid. Add a tick or two and you have your Stop Loss. This tells you BEFORE you take your trade, what you have to pay to the market to see. To see, if you are right or not.

Monday, November 21, 2005

Been there, done that

From time to time you need to stop and think about what you are doing, what the results are and if the time invested is worth it, considering the results.

If the resumee isn’t: I’m doing 150% of what I reasonably can expect, and the results I get are just unreal, then maybe you should think back, take a look at your trading journal and look for times, where things went good, really good and pleasant. Where you had nice streaks of winning trades, with just one or two losers in between.

Being long enough in this business, I’m sure there are times like this for everyone of us. And now comes the difficult part:

  • What did you do then, what you are no longer doing today.
  • What changed in your trading,
  • in your chart-setup,
  • in the way you managed your trades.

Take a look at your charts from 3, 6 or 12 months ago.

  • What has changed,
  • do they speak to you in a way, your current charts don’t?

There are a lot of additional questions you might ask yourself, but leave out one:

  • Have the markets changed?

Yes, sure they have. Every moment is unique and we might not see the ranges we saw 1 year ago in the contracts we trade. But be honest with yourself: 12 months ago you did not see the ranges you saw 24 months ago. Markets are changing and it’s your job to adapt, to adjust your trading to the now. And actually that’s the next step.

Once you have identified a time, when you did good, not because you had 1 extraordinary good trade, but when you where one with the market and you have identified things, which worked then, but which you abandoned over time, then you have to take these things and adapt them for today’s markets.

Don’t discard everything you do today. You had valid reasons to change the things you did then to the state you are in now. There was for sure a reason, why you left something aside, which worked then. Still, say you look at an old chartsetup and you instantly feel in tune with it. Don’t take it 1:1 and replace your current charts. Identify, what it is, what makes them speak to you and integrate it in your current charts, as if you would add a new feature, a new study to them.

It’s like someone you respect as a trader told you: Hey Chris, did you ever try this or that study, that setting? You never did, so you take your current chart and add the study. You eventually remove something instead, as it is suddenly redundant and you come up with a new chart-setup.

Often it changes nothing, the new study is usually no more or less valid, than the one you currently use instead.But sometimes there is something new to it, something, which instantly speaks to you. Chances are, that your own voice from the past has something important to say to you today. Something which can instantly improve your trading, if you choose to listen to this voice.

Sunday, November 13, 2005

Oh Shit...maybe I really need another job!

Having a losing day is part of the job description and should be compensated by your winning days.

Having a green day is fine and will let you feel good. But my new Add-On to the Backtest Module gave me the answer I maybe knew in my heart, if only I  looked deep enough, something I avoided sofar.

I have a good discretionary system, my entries are fine and I have a positive edge.

BUT, but I screw up totally, when it comes to trade-management. Something about 300$ for the day is nothing big, but green is green I always thought. But the same entries, no additional trades, no trade not taken, just the same trades managed differently could have given me + 2,000$. And these results are not extremly optimized. Optimizing can make the results look even better, if I accept the price to accept bigger losses, if the trades go against me.

Globetrader_142

In the Trading frame you see 2 new buttons S and L (Short and Long), which will let you open a trade manually. Once in the trade a click on the then visible Cover button will cover the trade.

To monitor your trading, you select the TWS Real/Playback datafeed, you select Tradesignals as tradesystem and then enter the trade in the backtest module at the same time as you take the trade in real.

For registered users this is done automatically once you select the new “Monitor real trades” Tradesystem. (Start FT and click ?/about to request a trial) A trade is taken in the Backtest module, the moment you open a real/demo trade in the Tower or the Tradedesk for the symbol selected in the Backtest module. The trade is covered (if still open), once you reverse the trade direction in real trading.

At the end of the day, click Stop and switch to the Tickpool datafeed using the Tradesignals Tradesystem. This way you can easily replay the day using different parameter. You might also save the Tickpool data for later use.

Globetrader_144

Of course this works as well over the weekend, when you decide to invest some time in trading a playback from Ensign or ESignal. I have added ticktime information to the Playback datafeed, so FT is now able to display the Playbacktime instead of the current Realtime. (You will need to update the FTlink.spt file in Ensign with the new one provided in the current release)

Globetrader_136

It might be just me, but I found myself adjusting the Start and Stoptimes quite often, so I added 3 buttons to preset different times.

Globetrader_140

Set the time, right click a button to save it and left click on it, to retrieve the information later.

If you want to share your Backtest settings, there is now a faster way than sending pictures: Right of the Backtest-Strategy there is an I(mport), E(xport) button, which will Import an existing Strategy or Export it to be send by mail to someone else. Globetrader_143

The Backtest-Strategy files are saved in the \program files\Futures-trader\Backtest subfolder. Be aware, that Outlook will not allow you to receive a Registry file. So you will have to compress them first or use a different extension, if you mail them to someone using Outlook.

Saturday, November 05, 2005

Round number trading

Don’t think, that profitable systems can’t be designed. As I said, they just no longer jump into your lap, but they are there for you to exploit. If you can trade them is another question, but to answer this question, I have expanded the results section, so you get more statistics, which will tell you whether the system you found, might be something for you or not.

Globetrader_113

As you can see, I redesigned the Backtest module (again). The reason was, that I wanted to know, whether Round Number trades work or not. Space was missing and things became a bit overcrowded.

The Round Number module takes a trade, when a round number is hit. What is a round number? That’s for you to decide!

On Russel2000 eg. 640, 645, 650. That’s the basis you would put in the Basis field.
The Delta tells the system, when you want to take the trade. EG: a delta of 5 (5 ticks) means, generate a Tradesignal Long, if prices come down to 640.50, or generate a Tradesignal Short, if prices go up to 639.50.

The Inc or Increment field is used to calculate the next Round Number. Eg a setting of 50 (ticks) means, take the basis and add /substract 50 ticks, to get the next Round number. With a basis of 640, the next long trade will be taken at 635, the next short trade at 645 (assuming a Delta of 0)

The Move field is actually some kind of chop filter. It makes sure, that a Long or Shortsignal is not generated multiple times, just because prices move very near to a triggerprice. A setting of 10 ticks is usually advisable.

Have fun playing with the new module.

Answering an e-Mail

I got a few e-Mails asking similiar questions, so I thought I post my answers here

  • Can I use FT in simulation mode while trading real using another frontend. 
Yes you can. You just have to make sure, that you have IB API 8.61 (the current IB API release version) installed on your computer
 
  • Does that impair the use of the other frontend? 
    In no way the sim mode of FT should influence my real trading.
    Maybe I should trade anothert symbol in FT?
No. Sim trading in FT will send no orders to your IB TWS 
 
  • As datafeed I use Esignal. As I understand the backtest module can use playbackfiles of esignal.  Does it works this way:
    I playback the esignal tickfiles and I see a zlr signal long (woodies cci) and I take a long in FT with a certain strategy.At the end the file is stored in FT with the entering trade signals.  
No, not at the moment.
 
Right now there are 2 ways to get tradesignals from ESignal to FT
 
1. Manual
You write an ESignal Playbackfile in ESignal and save it on your harddisk.
Now you take your chart, go over the chart and make a note at what time your ZLR's occurred.
You open the ESignal Playback file with Notepad (The files are stored in the \program files\ESignal\Downloads folder)
You goto the Tick at which you got your Signal and add a Sell or Buy at the end of the line
 
Here is an excerpt of an ESignal Playbackfile. Say a Sell signal occurred at 000200, which is 2min after midnight EST.
You add Sell at the end of the line T,051005,000202,1.1965,1, 
 
; Symbol=6E #F
; Date=10/05/05-10/18/05
T,051005,000013,1.1965,1,   
T,051005,000122,1.1966,1,   
T,051005,000132,1.1965,1,   
T,051005,000132,1.1965,1,   
T,051005,000135,1.1965,1,   
T,051005,000135,1.1965,1,   
T,051005,000143,1.1965,3,   
T,051005,000143,1.1965,3,   
T,051005,000152,1.1965,2,  
T,051005,000202,1.1965,1, Sell  
T,051005,000203,1.1965,1,   
T,051005,000256,1.1966,2,   
T,051005,000256,1.1966,1,   
T,051005,000300,1.1965,3,   
T,051005,000407,1.1966,1,   
T,051005,000431,1.1966,1,   
T,051005,000446,1.1967,1,   

Do that for every signal you got in your charts and when done, save the file.
Now you can Backtest this file as often as you like in FT without using ESignal or having it open.
Assuming you have something between 5 and 20 signals a day, I think the manual method is practicable and does not warrant the development of an automatic strategy
 
2. Automatic
ESignal and FT can be linked, so that a Playback running in ESignal can be traded in FT using the “CustomFT.efs” study supplied with every copy of FT and to be found in the \program files\futures-trader folder
 
The same datalink can also transmit Tradesignals.
For this to work, you will need to add code to your charts, so automatic tradesignals are generated and display on the chart eg. in the form of arrows.
Then you would have to "enhance" the custom study "SendPricedataFT.efs", so the tradesignal is transmitted at the time you get it on the chart.
 
Here is a copy of the SendPricedataFT study
 
/********************************* 
www.futures-trader.net (c) Copyright 2004
*********************************/
var myDLL = new DLL("ESignalToFT.DLL");
 
function preMain() {
    setPriceStudy(true);
    setStudyTitle("FT-Dataconnection");
    setShowCursorLabel(false);
    myDLL.addFunction("ConnectFT", DLL.DOUBLE, DLL.STDCALL, "ConnectToFT", DLL.STRING, DLL.INT, DLL.DOUBLE, DLL.DOUBLE, DLL.DOUBLE, DLL.DOUBLE, DLL.DOUBLE, DLL.DOUBLE, DLL.DOUBLE);
}
 
var nNull = 0;
var sdatastring= "";
 
function main() { 
    sdatastring="PD: ";
    var FT = myDLL.call( "ConnectFT", sdatastring, 1, nNull,nNull,nNull,nNull,nNull,nNull,nNull );
    return;
}
 
What this study originally does is sending Data to FT to be displayed in the Tower (open the study in the ESignal efs-Editor to see my comments, how you can do this)
 
But if you send a string like this to FT:
 
sdatastring="PD: AB #F: Alert: BUY"
or
sdatastring="PD: AB #F: Alert: SELL"
 
then FT will interpret this as Tradesignal to be taken in the currently running playback and at the same time the tradesignal will be executed in the backtest module.
 
Unfortunatly I can't give you an ESignal template doing this, as ESignal is not my main charting program (I just use the feed).
 
I could only help you setting up this automatic backtesting of your tradesignals in Ensign.
 
3. Monitor FT trades
I will consider your proposal to monitor trades taken in FT during a playback in the Backtest module and look to implement it in one of the next versions of FT.
 
  • It will take some time before I have mastered all the possibilities of FT.
You might join the #FuturesTrader group in IRC: Othernet, where I will be able to give you immediate answers, when I'm online (Usually during european trading hours and the US morning until noon)

Wednesday, November 02, 2005

Dreamtime is over and Reality is setting in

Important things first: IB API 8.61 has been released, so FuturesTrader from now on is available for IB API 8.61 only. Be aware that the former IB API 8.3 and IB API 8.6 are incompatible, so you need to update the IB API, if you want to use the new FuturesTrader version

Globetrader_104

The dreamresults the Backtest module gave me are behind me. They were caused by statistical and design errors, which have been fixed.
And now reality sets in: Designing a profitable tradesystem isn’t an easy task, actually it is very difficult.

But what did I expect? If it were easy, everyone would use it and make money trading.

So the first step was saying goodbye to the tradesystem implemented in the backtest module and running Playbacks in Ensign with my Tradesignals transmitted to the Backtest module.
That means waiting for about 15–30min for a Playback to complete, even if it is running at maximum speed. 
I’m not the super tradesystem designer (or I would have have no need for this Backtest module at all), you could describe me more as the Try and Error designer. I change one parameter at a time and check, if the results I get are better or worse than what I had before. But if every backtest run takes about 20min, I might find a working tradesystem in one or two years, but not within hours or days. Yes I’m a bit impatient.

So I added the Tickpool datafeed to the Backtest module.

Globetrader_100

If you run a Backtest, FT will save every tick and tradesignal received in a tickpool. Once your Test has finished, you no longer need to run a Playback in Ensign or ESignal to repeat the Test.

Instead you switch to the Tickpool datafeed, change the parameters and run the Test again and again and again, until you have a working model for the day you backtested.

Globetrader_107

The Tickpool data can be Saved and loaded back later, so you can use the dataset again. The Tickpool can also be cleared manually, as you might decide to build Tickpools going over more than 1 day. You see the number of ticks in the Tickpool in the new Statusline at the bottom of the backtest module.

Globetrader_103

Tickpool datafiles are nothing but standard ESignal Playbackfiles, which you get when you create an ESignal Playbackfile. They just have an added Buy, Sell or Cover Statement at the end of the Dataline, where you want a Tradesignal to be created.

That’s how a ESignal Playbackfile looks in the Notepad-Editor:
Globetrader_101

and here is the corresponding Tickpoolfile with a Tradesignal:
Globetrader_102

As you can see, it is simple to add the tradesignals manually, if you have no way of creating them automatically or if in fact you want to backtest your own trading and see, how trading with different strategies might have given you better or worse results as you really got.

The format is

T for Tick, Date in YYMMDD format, Time in HHMMSS format, Price, Volume (unused), Tradesignal (if any) as Buy, Sell or Cover

FT will by default save Backtest Tickpool files and Excel files in the new ..\Futures-Trader\Backtest subfolder

BTW: Don’t complain that, when running Backtests FuturesTrader now uses a lot more memory than previous versions. You can’t have it all. If you backtest a few months of tickdata, these take memory to store internally.

Globetrader_105

So if you need to watch your memory clear the tickpool from time to time by clicking the Clear Button.

. Globetrader_106

Or consider adding a new GB Ram Module. 2 – 4GB Ram on your trading computer is not too much.

Monday, October 24, 2005

Multiple Strategies

Finetuning with the Backtest module is nice, but if you are like me, I’m sure you have just a few notes about the exact settings and going back a few steps to continue in a different direction might prove difficult.

So I implemented the option to save as many strategies as you like.

Globetrader_097

S – type the name of your strategy and click Save

L – select the name of the strategy from the dropdown list and click Load

D – select the name of the strategy from the dropdown list and click Delete

Saturday, October 22, 2005

IRC support

Globetrader_096

It’s not a registered channel (yet), but if you have a question about Futures-Trader or for a support session, you will find me in the IRC #futurestrader channel on othernet during market hours and from time to time on the weekend as well.
Just type /j #futurestrader in mIRC

 

Thursday, October 20, 2005

Phil, thank you!

Looks like a lot of work went into the program for this update, and my first few tests look much more accurate, sadly, much less profitable, as expected. 
 
And, the "Trailing Stop" and "BE+1" buttons work now!  It seemed like before they were always ON whether they were checked or unchecked.  Makes for some interesting tests.
 
If I notice anything suspicious in my further testing you will be the first to know!  And again, thanks for all of your work in making this tool available to us.
 
Phil
 
Software development without external feedback is extremly difficult. Why? Because when testing you tend to focus on the parts of the new tool you use for your own purposes.
That’s why I’m grateful, if someone else takes the time and effort to test for himself and gives me the feedback so I’m able to fix or improve the tools I use for my own trading. Futures-Trader 3.34 is available for download.

Tuesday, October 18, 2005

Tick- or Minutefiles

Does it make a difference, if you have ESignal Tickfiles or use the simple IB TWS download Option, which gives you Minutebars instead of Ticks.

Here are my settings for October 17th for the Euro

Using an ESignal Euro Tickfile (Times are Central European Summer time)

Globetrader_093

And here the same with the IB TWS Download

Globetrader_092

As expected/hoped for, the results are the same. (So my cynical assumption, that in a trade the market will first go against you to shake you out was a correct one.)

Monday, October 17, 2005

Sorry, but I made an error

Thank’s to Phil, who questioned my results!

Scale-In trades were not calculated correctly, which led to false results.

I have added rows, which show the Win$ / Loss$ and Total$ per trade, so it’s easier to check the results you got.

I have updated FT and posted the new FT 3.33 version for IB API 8.3 and IB API 8.6

 

Sunday, October 16, 2005

Backtest Question

Hey Chris,
 
I've been working with the Backtest module you created - man alive - that technique of scaling in if the trade pulls back against you is a real lifesaver!  Looking forward to doing a lot more testing with it.
 
But, before I do, I need to make sure I'm using the thing correctly.  And I'm having a heck of a time duplicating the results you posted Oct. 11 in your "Scale In" post on your blog.  I swear I've got the same settings that you do, but as you can see from the attached screen shot my results aren't the same.  Not even close.  What am I doing wrong?
 
Thanks in advance, and again, thanks for this nice little tool.
 
Phil Davis
 
Backtest
 
Phil,
you are doing nothing wrong. And today I get the same results as you got. The reason being, that I changed the way Minute files are processed.
While in the first versions of the Backtest Module I had it going from Open to High to Low to Close (if the Open was above the Close  and vice versa if the Open was lower than the Close),
I now take the more "cynical" or conservative approach, that the market always tries to shake you out first:
So IF you are in a Long the bar is going from Open to Low to High to Close,
if Short it's Open to High to Low to Close. And that had the effect, that you get a lot more conservative result than earlier, as
  • you are stopped more often and
  • your targets are not reached as often before being stopped.
As I can't know, how the market really traded, when looking at a minute bar, I think this more conservative approach is a better way to backtest with minute bars.

Friday, October 14, 2005

My apologies

Sunseeker, I did not mean to be rude and apologize, if you understood my article in this way.

The thing is, I have been in a lot of chatrooms, where people posted live trades, my futures-trader can post live trades, but ask yourself, what does it help your trading, when I tell you, that I entered a Euro long at 1:37:28pm EST today at 1.2131 or a DAX long at 10:45:10am EST at 4989.0?

Nothing, absolutly nothing. And had I posted the trades in realtime, it would have meant zilch, nada, just another trade made by globetrader.

In my own blog, if I use it as trade-journal such an entry might make sense, if I add some comments to it like I did, when I wrote my trading journal, but the trade without further information is just that, a trade. It might be profitable, it might get stopped-out, but knowing that you made a trade will help noone. And you could be Warren Buffet and Jesse Livermore together, it still would mean nothing.

What would mean something, if you not only told people, that you have a profitable system giving you this and that entry today, but also why. How your tradesystem generated it’s tradesignal. You already said, that it is a always in the market system. That’s interesting and I would love to discuss such systems with you, especially, if they are profitable.

Other traders I asked always told me, sorry, but that’s a big secret, because if it were known to too many it would loose it’s effectiveness. If anything a widespread tradesystem generates more volume in your direction than a system known just by yourself.

But that’s beside the point I want to make.

The idea behind the two trading systems currently implemented in Futures-Trader came from reading “Zen in the markets” and Sport’s blog, where he posted day in and out about the First Bar trade. 
I just asked the question, whether it is possible to prove, that statistically these systems work. And everyone already playing with the Backtest Module will agree, that using the right trademanagement parameters, you can build a very profitable automated system, use other parameters and the same system, based on the same tradesignals, fails miserably. Actually it would be a sure way to the poor house, if you invested your money in such a system.

Again: The same entries, traded one way generate a very healthy income and traded differently are the sure way to the poor house. That was really the most astonishing result I got sofar from my backtesting.

And the consequence: It’s not the entry, which is important, which decides whether you become trading elite or just sheep. It’s your trademanagement.

Historical Data from IB

I have upgraded FuturesTrader to support IB API 8.61 Beta.

Globetrader_059Now, if you update your IB API to 8.61 you no longer need an external datasource to request historical data.

Select the symbol you want historical data from, connect to IB TWS, click download and after 1 or 2min you should see the message

Globetrader_061

At the moment I can request just 1 week of data from IB, but this might change in the future.

Be aware, that IB API 8.3 and IB API 8.6 are incompatible. So if you have programs, which require IB API 8.3 you should not upgrade.

Blackbox Systems

Sunseeker,
your results are fine, but of no interest to anyone here on the board, as long as you don't explain what method you use.

I could have decided to implement a Black Box system in FuturesTrader, let you all play with it for a while and then, once you are convinced, it's working in Demo, sold it as an extra subscription like Strategy-Runner is doing it.

Instead I’m telling everybody, what both of the systems in Futures-Trader do, when Tradesignals are generated and what is causing it, so you know exactly why a tradesignal was generated and might even look it up on your charts with the timestamp each trade has.

You are using an always in the market system, something I currently don’t have implemented in Futures-Trader, so it might be a worthy addition to the Backtest Module, if something like it could be added, but results alone won’t do it. And realtime tradesignals won’t either. I once was in a trading room, where the moderator called tradesignals from a Blackbox system, and it was the worst experience in my whole trading career.

In trading you need to learn to walk alone, you can’t rely on others to do the walking for you. And if their system was so good, there would be no reason at all for them to have a paid chatroom.

So please stop posting your results and explain your system in detail instead.

Thursday, October 13, 2005

Seperate Backtest Module

A user asked for it and actually it makes sense to have the Backtest module not within the FuturesTrader space. It’s still part of the program, so sorry, but you can’t run it stand alone.

Globetrader_046

Wednesday, October 12, 2005

Test your system with real data

You found some cool settings for the Backtest Module? 

Test them with live data. I added IB TWS realtime data as datafeed for the backtest module.

Globetrader_040

Getting great results on past data is just the first step of every Backtest. Testing these settings in todays market is the crucial second step. So setup the Backtest parameters, select TWS as datafeed, connect Futures-Trader to IB TWS (File/Connect) and click Run on the Backtest Module.

The Layout got streamlined a bit and I added labels, so you know what is what.

Globetrader_043

In a trade (actually applicable only while running on the Realtime datafeed) you will see a new Button labelled “Cover”, as sometimes you might want to override the system to secure some extraordinary profits. Just be aware, that the moment you use this button your results will no longer be replicable in a backtest.

The Scale-In module got a further selection, as I found it necessary to make sure that the number of open contracts was limited to a certain maximum.

So now you can specify how many contracts will be opened per strategy as a max:

Globetrader_042

Here you want to trade 1 additional contract, if the trade goes 5 ticks against you, but that’s it. If you have already 2 contracts once the trade is 5 ticks in the profit, you don’t want a third. But you want another one, if the trade never got to -5, but just started to run. The max c entry takes care of that.

In case you are already familiar with Futures-Trader and have played with the link from Ensign to Futures-Trader or ESignal to Futures-Trader, you might also run a Playback in these Chartprograms and have your tradesignals transmitted to the Futures-Trader Backtest module. The moment you select TWS as datafeed, you will have an option to select Tradesignals as Backtest System.

Globetrader_041

 

There still is a lot to do, but the Backtest Module already gave me invaluable information for my real trading. My statistics always told me, Chris, finetuning your entries will get you from 72% winners to 75% winners, if you are lucky. And that’s a big big IF, because finetuning aka optimization usually leads to a less profitable system, as the filters introduced will not only filter bad but good trades as well.

But working on the Exits, working on Trademanagement, that’s something totally different. I’m getting 10%–50% profits out of the possible profits on a profitable trade right now. Increasing this number to an average of 45%-50% or better will be a huge step forward. And knowing how to Scale-in or -out of a trade backed by the statistics gives a lot of confidence. Especially when you see, that using the wrong strategy will really hurt your performance and can actually be the reason for a losing system.

Here is the link to a current Sierra Euro file, so you have a bit more data to backtest on.

 

Tuesday, October 11, 2005

Scale-In

I really did not know, that changing so little can mean the difference between -4000$ or +10000$ for the month. I have been adding a lot of new features to the Backtest Module, as one add-On led to another. So don’t be confused, when you see a lot of new choices on the Module.

1. Native Sierra Datafiles (*.mnd) as well as ESignal Tickfiles (Playback) and (Ensign) Minute files are supported.

Globetrader_032Just select the appropriate Datafeed.

For Sierra and Minutefiles you need to preset the contract, as these do not include contract information.

Click Ticker (The Button might show contract information instead. EG: EURz5)

 

Globetrader_031

Now select the Contract you want to backtest on the leftmost buttonrow.

 

 

2. You can Stop-reverse or Fade the Market on a tradesignal and you can define to take trades with the Trend only on the Time Breakout Strategy.

Globetrader_033

Globetrader_034There you set 2 MA’s (Simple Moving Averages) and these decide what the trend is. During a backtest run the yellow boxes will show the value of the moving averages.

 

3. You can change the Target Settings to values you like

Globetrader_035

Globetrader_036

 

Use the Target Settings Box to set the values you like in Ticks

 

4. The Retracement Setting has been moved, as it can be applied to both the Switch and the Time Breakout system.

Globetrader_039

 

What this setting does is wait for a retracement after a Tradesignal has been received.

 

4. You can define 3 Scale-In and 3 Scale-Out levels together with an adjustment of the Stop, in case the level is hit. The Stop is calculated in Ticks from the Initial Entry Price

Globetrader_037

To add a rule to your strategy place a checkmark in the leftmost box. You can add any values you like in these boxes, so make sure it makes sense.Be aware, that Stops and P/L are set inversely.

See the first Scale-In line: It means Add 1 contract , if my trade is at a loss of 5 ticks and move the Stop to 10 ticks from my original entry price. So effectively the Add-On contract has a Stop of 5 ticks.

The Second line makes no sense, as the moment the contract would be added at a loss of 8 ticks, the Stop would be moved to 2 ticks behind the Original Entry Price, which means, your trade would be stopped immediatly.

The third line works again: Add 1 contract, if you have a profit of 10 ticks and move the Stop to 5 ticks. This secures a Breakeven Trade.

Same rule apply for the Scale-Out module.

5. Once a test is complete, you can save the results in an Excelfile.

Globetrader_038This file currently has just the tradedata, but no Settingsdata. I intend to change that in the future to make it easier to recreate a result.

 

BTW: Before someone asks: Minutefiles and Sierradatafiles contain Bar information, meaning they have information about the Open, High, Low and Close of the Bar, but no individual tickinformation. So how the price moved from Open to Close, you can’t possibly know looking at a Minutebar. But this can be important! Therefore I tried to assume the worst case scenario in case the system is in a trade: If Long, the price always moves from the Open to the Low of the bar to trigger any Stops and only then the move to the High is made and from there to the Close. Vice versa on a Short.

The question, which intrigued me most was:

What happens with my profitability, if I trade an All-In, All-Out approach (as I do right now) compared to a Scale-In in a profitable trade and compared to a Scale-In into a losing trade Strategy.

Say Euro trades at 1.2060:

A: 2 Long 1.2060 Stop 1.2050 compared to

B: 1 Long 1.2060 Stop 1.2050, Add-On 1.2065, Stop for both to 1.2055 and compared to

C: 1 Long 1.2060 Stop 1.2050, Add-On 1.2055, Stop for both remains at 1.2050

I leave it to you to test it for yourself. For me the answer to this question was already worth the work invested into this module.

The results you see here are not so different from what I already got using an All-In, All-Out approach, but now I could use a 10 tick Stop instead of the 20 tick Stop, meaning the emotional roller-coaster with this trademanagement strategy isn’t as worse as it is with a 20 tick stop trademanagement strategy.

http://www.futures-trader.net/Blog/Globetrader_030.gif

To test for yourself, just download the FuturesTrader Update from www.futures-trader.net

Sunday, October 09, 2005

Feedback

Thank’s for your feedback here in the blog and by mail.

I know Sierracharts is very popular and having written a conversion routine from Sierra to Ensign Playback a year ago, I decided to reuse some of the code, so the Backtest Module will support native Sierrachart.mdb files without the need to convert them to a textfile first.

As the next version will also support the real IB TWS feed and the Ensign or ESignal Playback feed (with tradesignals, in case you have them programmed in Ensign or ESignal), it will be another day or two before the next FuturesTrader version will be released.

Saturday, October 08, 2005

Strange

It really seems I’m the only one seeking answers to such mundane questions, like:

  • What is the best Stopsize for the contract I trade
  • What, if any, is the best Targetsize
  • Can I afford to trade the Trade-management strategy choosen, given my accountsize
  • Will a fully automated, mechanical approach to trading work
  • Do Scale-In and/or Scale-Out strategies work
  • If yes, where do I Scale-In or Scale-Out to improve the overall performance

To know, whether a certain Trademanagement System works, you don’t need to test your own Tradesystem. Actually it would mean a disadvantage, if you used your own tradesystem.

Why? Because the results are not comparable.

The mechanical approach I implemented in FuturesTrader on the other hand provides something like a 50% : 50% system. That’s like flipping a coin, but everytime you run it, you get the same result and would I use your parameters with the same datafile I would also get the same result as you got.

And a change in the Stop and Targetparameters can affect the results to the better or worse, so the system really is ideal to answer the questions above. Answers, which at least I don’t get from looking at my charts.

Of course, given that I have tradesignals on my Ensign-Charts and an already existing link between Ensign and Futures-Trader, I will sometime test my own tradesignals with this new Backtesting Tool. But only when I have found tradeparameters, where I know, that these are on average over the last year or even a longer period, the best parameters for the contracts I trade.

Yesterday Sport mentioned this blog in his own blog. And 3 times the visitors than usual came around to check it out. But all of you taking a look, seem to know the answers, or…you just don’t care. You don’t need to know, because for you it works already.

But statistics tell me otherwise. About 85% of all the daytraders are not profitable. And I really can’t believe, that only the 15% already winning traders are reading this blog. 

So obviously you don’t care about profitability. I received not one E-Mail asking me: “Hi Chris, I mainly trade ES, Bonds or stocks, like MSFT and my minute-files look like this. Could your tool support these?”

To tell the truth, I don’t care. I want to know, because I want to know that the statistics are in my favour, that I really have an edge, when I trade. So I will continue to develop the tools which give the answers I seek.

Friday, October 07, 2005

Using Minute files

Using Tickfiles to backtest gives very accurate results, but it is sure time-consuming due to the large number of ticks/day. I’m currently just backtesting Euro, but the ES files are 10 times bigger, meaning it takes a lot longer to process these files.

So I’m thinking about adding support for minute files to the backtesting module.

If you are interested, let me know, what formats should be supported. The files will have to be Ascii-files and if I receive no further input, I will use the Ensign format, as this is what I have easily accessible.

Stops

Yesterday was again one of those days:

  • Long ER, …the market makes a new low for the morning session
  • Long QM, … the market makes the low of the day

Despite everything I had told myself, I remained in my trades. The market came back and I covered both trades profitable.
Had I used my mental Stops (I have only disaster stops in the market at every time) I would have been -10 on both trades and had most likely not reentered for the upswing, as I would have questioned my signal long, having had a signal in the same direction going against me just before. So it might just be my Ego telling me, “Hey Chris I was correct in the first instance, so take the trade now”.

Therefore, I asked myself, is there a way to confirm this feeling, that trading with bigger risks aka bigger Stops gives more rewards? It is something I noticed in my trading, I do it and I get beaten up from time to time, because when the bigger Stop is hit, it hurts!

Yesterday evening I found some parameters for my Backtesting module, which provided results, which let me waver in my resolution to still manage everything by myself. It was a very profitable strategy for September (other months still need to be checked, so don’t trade it right away) and therefore a great canditate to test how different Stops affect the testresults:

The basic parameters:

Take a trade in the Euro every 30min, synctime is simply midnight and trades are taken from 01:20am to 04:14pm. The range to be broken for a trade is 4 ticks up and down from the close of each 30min candle, with a 1 tick retracement to get a slightly better entry.

Stops vary from 5 ticks, 10 ticks, 15 ticks and 20 ticks.

Let the results speak for themself (click on the image to increase size):

Globetrader_018

5 tick stop, 46% winning trades, 3590$ incl commission profit

 

Globetrader_016

10 tick stop, 60% winning trades, 9004$ incl. commission profit

 

Globetrader_017

15tick stop, 64% winning trades, 10453$ profit incl commission

 

Globetrader_015

and the Winner is:

20 tick stop, 66% winning trades, 13570$ profit incl. commission

I did not continue the row, because I don’t like more than 20 tick stops. Especially as 20 ticks on bigger lots becomes very exhausting emotionally. On 2 contracts it’s “just” 500$, on 5 that becomes a 1.250$ loss. Think about that, before you increase size, as these max Stops happen regularily.

But regardless of these hits, the result is absolutly clear: Trading with a Stop of less than 10 ticks is not worth the risk, 20 ticks hurts more, when the stop is hit, but it happens not so often, so you need to decide what trader you are:

If you take less trades, trade with bigger Stops, you take more trades, so trade with smaller Stops. What is less and more? Well, the 30min system I tested made on average 25 trades/day. So you can see where you fit in.

What this test confirmed for me was, that my “gut” feeling of using bigger stops in my case makes sense. Still a 20 tick Stop is big, so the next question to be answered by hard statistical data is:

Is it correct, that only scaling into a winning position is a valid trading strategy, or will taking 1 lot at the signal and adding 1 at -10 ticks (assuming a 20 tick stop) increase the overall profitability.

This means adding a scale in/scale out part to my Backtest module. This is a bit more complex, so I expect it to be ready next week. I’m extremly interested, what the results will be!

 

Thursday, October 06, 2005

Playback Files

In case you have no access to ESignal.

I have now released a Futures-Trader version, which is capable of writing monthly continuous Playbackfiles.

Download FT 3.29 and once started click Options/Preferences/Save Datafiles.

Globetrader_013

Now connect to IB (File/Connect) and FT will save every tick in all contracts you have setup under Options/Select Ticker

Globetrader_014

Contracts, which have a green button to the right, will be requested from IB. You will have to let FT run for as long as you wish to receive tickdata of course.

Wednesday, October 05, 2005

Trading Tactics

You sit there, asking yourself:

Is Globetrader now over the edge? This whole autotrading business is just nuts, it can’t work. And even if it works on past data, my own system is a lot better having a Win% : Loss% Ratio of 73% : 27%.

Actually I’m not yet turning my business over to the computer.
And I’m not yet abandoning everything I learned for the last 3 years reading my charts.

BUT: What this autotrading module gives me, and might give you, if you start using it:

It can give you optimized Trade Management Rules.

When do I exit a profitable trade.

Where do I place a Stop as chances that the trade comes back are slim, if the trade goes this far against you.

You will tell me, that the autotrading system in Futures-Trader does not match the one you trade.

Sure. But it offers you something even better. It gives you a trading system, which has reproducable results. Meaning, if you enter the same data, using the same dataset, you will get after each and every run the same results. So even if the system is sometimes not a lot better than 50% : 50% compared to flipping a coin, you will get every time the same result. And if a change of the trade management parameters changes the results to the better, this will work in your real trading as well.

Why? Because I assume that the chances of every trade are the same in the beginning.

Prices might go up or down from where you entered regardless what your indicators tell you.

I just remained in a trade, where my indicator started to tell me: Hey Chris, I’m about to shamu down, better take the -4 exit I offer you now, than remaining in the trade. Entry was 1.1993 2 bars prior to the one I marked with an <x>. But my Stop was not hit, I know for certain now, that profitable trades might wiggle 6 ticks against me on average, so an 8 tick stop is it for now. I stayed with the trade and was rewarded.

Sully_27

You wanna test it?

Globetrader_005

You need FuturesTrader V 3.28 or newer and an ESignal Playbackfile for the commodity you want to test. Here’s a 10 day Euro playbackfile.

Goto www.futures-trader.net and download the FT 3.28 version.

Start FT and click Windows/Trading System Design

Globetrader_006

Now you will have to select a playbackfile by clicking Select File

Then click Options/Select Ticker and make sure the contract you want to test is selected either in the left most column or in the leftmost of the 3 right columns. On the left side 1 contract can be selected, on the right side you can select upto 6 different contracts.

Globetrader_008

Now I hope you know the contract you want to test for automatic trading from long hours of watching it on screen, as your knowledge is extremly valuable in designing a profitable system.

Set a Stopvalue: I’m currently using 7 to 10 ticks on the euro. Leave the target at 0, as you will set this after your first test run and enter the number of contracts you usually trade or leave the contract number at 1, to see the results for trading 1 contract.

Set the Starttime, Stoptime and the time after which you don’t want a new trade initiated (NoSwitch time). Set the Startdate, easiest might be 01/01 to cover the whole year, so you will make sure FT will always start at the beginning of the playbackfile. The Stopdate is automatically preset to todays date.

Now select the trade system you want to test:

If you have read “Zen in the markets” you will want to start testing a Switch System:

Globetrader_009

You set a Switch-value, which tells the system, that the trend has switched from Short to Long or vice versa. In the Euro you might start with 25 ticks, but that’s really up to you.

Next you can set a retracement level. While Eddie, as far as I understand it, recommends to immediatly enter after a trend switch, I found that waiting for a retracement gives better results. I suggest using 33% to 50% max retracement levels to enter. I have set it in my system to 8 ticks, which is a reasonable retracement level after Euro made a 25 tick run from the lows or highs.

Globetrader_010

Now you need to decide, if you want to use a trailing stop, a BE+1 Stop and Stop-Reverse orders instead of simple Stoporders.

The BE+1 Stop will trigger, once the first target is taken out, the trailing Stop moves the stop to BE+1 after the 2nd target has been hit. Then it will trail 2 targets behind, so when the 4th target is hit the stop will be moved to the 2nd target. Stop-reverse will trigger a reverse order, in case your initial Stop is hit (but not if the BE+1 Stop or a trailing Stop is hit).

The targets are fixed in this version and set to 5ticks, 8t, 10t, 12t, 15t,20t,25t,30t and 50ticks.
This will be changed in a future version.

Now click Run and off you go testing your first automatic trade system.

If the results are not what you expected, start changing the parameters or try the second trade system currently implemented:

A time breakout system:

Globetrader_011This system takes the idea of the first bar trade and expands it to taking a trade in regular intervals.

In this example I take a trade every 90min. Actually the closing price after 90min is taken and 4 ticks added and substracted (as set by the second parameter). Now a trade is taken, the moment this 8 tick range is broken to the upside or downside.

Extremly important for a success of this kind of system is the Sync time. In my case I have set it to 9:00 which seems to be a good time for trading Euro. Play with this time and you will see, that a nicely winning system can become a loser by chosing the wrong Sync-time. Same for the timeinterval. I tested Euro July data with a 60min setting, which worked real good in September and got a losing system, switching to 90min proved to be the right decision:

Globetrader_012

The system suddenly made 344 ticks or 3322$ instead of losing during this month. Of course now the next step is testing September to see how the system will perform with the new setting. If the results are comparable or better than my earlier system results using 60min, fine, I will continue using the 90min interval, but if the results are worse, I need to see, how to determine in advance, what timeinterval to use the moment I start applying the system to real data.

Once a testrun is finished you will get a lot of statistics:
Win% and Loss%, Win:Loss ratio, Win$, Loss$ and an account balance. I have used 6$ commission per roundtrip and contract. I know, that that may be to high for some commodities, but better err on the wrong side, than give you beautiful results, which can not be reproduced in real trading.

In the columns showing the results for the different targets reached, you will see a What-If scenario: If you had eg used a 20 tick target, you might have done better, than you did by using a trailing stop only. So this might be reason to enter a number in your Target Box and do the run again. During my testing I saw that a 25 tick target on the euro produced the best results with the euro, which is the reason I now have 25 plugged in.

The real eye-opener so far for me was the fact, that the Time-Breakout system seems to have a Win%:Loss% probability of 55% : 45%. Still it is making money by applying good trade management rules.

Happy testing.