Chris Donnan : Programming – Brooklyn Style
software, trading, family, fun
Posted Derivatives, trading on Sunday, July 29th, 2007.
In working on a current trader interface – I am dealing with more derivs traders. Along with other things – we will be dealing in Variance Swaps. I have good product knowledge in some areas – and in some areas – I am still learning (finance is a big world). In any case – I am always trying to understand the “business incentive” for using a particular product. In trying to understand this for variance swaps – I found this article that gave me just the angle I was looking for: The Art of the Variance Swap. Here are a few more refs; Volatility Swaps (technical), @ Wikipedia.
 -Chris
You can leave a response, or trackback from your own site.
Posted algorithmic trading, programming on Sunday, July 29th, 2007.
FPL Press Release: FPL Announces FIX Algorithmic Trading Definition Language Enters Beta Phase
The gist is that if you have a GUI to exec trades @ VWAP, Implementation Shortfall, TWAP, Custom Algo X, Y and Z – these may all have different parameters. In fact – the spec goes as far as detailing parameters, validation and GUI controls. Interesting
Now – when we need to add new algos to a trading GUI – if we render our UIs based on the spec - there will be no new work – just point to the new XML data – and we have new UIs that send the correct data to the execution endpoint – sounds good – lets see when it is ready to go.
-Chris
You can leave a response, or trackback from your own site.
Posted programming, teamwork on Sunday, July 29th, 2007.
I just finished up The Five Dysfunctions of a Team.
Â

Â
The book is brief and a very easy read – in fable format. Here is the basic deal:

Of course – the most important/ biggest one is the bottom one – no trust. Teams without trust fail.
By contrast:

* conflict is really OK!
An interesting aside was that the book talked about the Myers-Briggs Type Indicator / Jung test a little. I have read other books that talked about this test. I am also reading User Interface Design for Mere Mortals® currently (just an OK book I must say). In the process of UI interaction design – it is key to understand your users. The idea of looking at the Myers-Briggs Type Indicator for end user personas came up here also.
You can take a free on line version of the jung test here. There are a few more of these on line as well – poke around. I took 1/2 hr and took 2 of these and compared the results (they came up with the same thing). I also had my wife take one – we enjoyed it. I think reading the results rang pretty true with both Shannon (my wife) and my own personalities.
My type was:
ENTJ (Extraverted Thinking with Introverted Intuition)- “Field Marshall”. The basic driving force and need is to lead. Tend to seek a position of responsibility and enjoys being an executive. 1.8% of total population.
A few article excerpts on ENTJs that rang with me:
“Fieldmarshals more than any other type desire (and generally have the ability) to visualize where the organization is going, and they seem able to communicate that vision to others. Their organizational and coordinating skills tends to be highly developed, which means that they are likely to be good at systematizing, ordering priorities, generalizing, summarizing, at marshalling evidence, and at demonstrating their ideas. ”
“…have a strong natural urge to give structure and direction wherever they are — to harness people in the field and to direct them to achieve distant goals. They resemble Supervisors in their tendency to establish plans for a task, enterprise, or organization, but Fieldmarshals search more for policy and goals than for regulations and procedures. “
Shannon’s was:
INFJ (Introverted iNtuiting Feeling Judging)Â – “The protector”. Strong drive and enjoyment to help others. Complex personality. 1.5% of total population.
Excerpts on INFJs that rang with her:
“As an INFJ, your primary mode of living is focused internally, where you take things in primarily via intuition. “
“INFJs are gentle, caring, complex and highly intuitive individuals. Artistic and creative, they live in a world of hidden meanings and possibilities. Only one percent of the population has an INFJ Personality Type, making it the most rare of all the types. “
“INFJs have uncanny insight into people and situations. They get “feelings” about things and intuitively understand them. “
“But the INFJ is as genuinely warm as they are complex. INFJs hold a special place in the heart of people who they are close to, who are able to see their special gifts and depth of caring. INFJs are concerned for people’s feelings, and try to be gentle to avoid hurting anyone. They are very sensitive to conflict, and cannot tolerate it very well.“
.. all very interesting
Vaguely related;Â I also recently read The 360 Degree Leader: Developing Your Influence from Anywhere in the Organization. This was a really good book actually. It did a good job talking about how to “be in the middle” of an organization – without any real authority in many cases – and still be able to lead. I do not really feel the drive to “supervise” or to “run the universe” – but I do have a passionate drive for developing software for trading. I also have a passion about teamwork and interaction deisgn/ usability. I believe in the agile methods (process and practices) and I am used to “pitching my thoughts”. Good book for someone in a position where your ideas must be conveyed to help people succeed.
On another tangent – I have a bad audible addiction. I have recently listened to:
 Dune (classic)Â
 Seventh Son: Tales of Alvin Maker, Book 1 (Unabridged) ( and the 2 books following it in the series, 2 more coming next)
.. OK enough -I am off to put Micah to bed!
-Chris
You can leave a response, or trackback from your own site.
Posted .net, programming, ruby on Tuesday, July 24th, 2007.
IronRuby source code - ooh – aah – ooh – aah.
Open it – look at it. It is very well written – a work I would be proud of – really. One of the more interesting points is that they are using the Gardens Point Parser Generator – from the folks that did the other ruby clr implementation. I really thought that was an interesting point. Anyhow – go check it out
Also go see what the folks @ Scott Gu’s blog are chatting on about – good comment chatter at the bottom of the post.
You can leave a response, or trackback from your own site.
Posted programming on Sunday, July 22nd, 2007.
You go Thomas B. Congrats!
Chris
You can leave a response, or trackback from your own site.
Posted programming on Sunday, July 22nd, 2007.
User Stories for requirementsÂ
Go read this right now: What’s in a Story?
We/ I am using user stories as the primary format for product backlog items, features .. er … requirements. It is hard – but good. I have more or less done this for some time.
I have been looking at some of the tools from the BDD community lately. I am a huge TDD guy. I am sure many of my collegues wish I was a bit less so - I am the preacher in my current firm – it is part of my role to get folks doin’ that thing (hard by the way). In any case – I have been looking @ both NUnit.Behave the past few days, as well as NBehave – 2 different frameworks for a sort of story driven development. I wil still admit I am not 100% sold on the BDD pitch – but these tools do seem to ring with me.
You start with a story and some acceptance cases (from Introducing BDD):
Story:
As an Account Holder
I want to withdraw cash from an ATM
So that I can get money when the bank is closedAcceptance Cases:
Scenario 1:
Account has sufficient funds
Given the account balance is $100
 And the card is valid
 And the machine contains enough money
When the Account Holder requests $20
Then the ATM should dispense $20
 And the account balance should be $80
 And the card should be returned…
Then you codify these acceptance cases so you can verify when your story is satisfied.
…but now an aside on …
DSLs (Domain Specific Languages)
DSLs are another current “hot topic”. The dynamic language folks – especially the ruby ones have done a great job of making software where the code looks more and more like english.
..and now an aside on…
Fluent InterfacesÂ
Fluent interfaces enable a DSL feel in a “heavy” language like C# or java (as opposed to ruby or python). There has been a rash of fluent interface madness for some months now – everyone is talkin’ about ‘em. I admit I was an early skeptic - too many dots scares me and makes me think of LoD violations. When I started to “get it” a bit and see fluent interfaces as a DSL-ish thing – it clicked some more.
Dave Larabee has a recent and much ref’d article Ordered Fluidness from a week or 2 ago – this is a good deeper read.
Back to NUnit.Behave and NBehave
As I mentioned above – the gist of these tools is to enable you to code your storys and acceptance critera for your stories.
Lets look at this in a ruby – pretty close to a real DSL it looks:
Â
Now look at how the Fluent Interface lets C# look sort of like a DSL in NUnit.Behave:
From here (More Fluent Interfaces for NUnit.Behave )

While some of the _ in the methods is a bit ugly- moreover that is pretty nice. This is a work in progress it seems – but it seems be on the right path.
RBehave is a little more “classy” – not so DSL-ish. After installing the current (also very early on) RBehave – it just seems to lack the DSL feel that the former has. In stead of doing that Fluent Interface thingy – you have to make a bunch of disconnected classes that tie together to do the same thing – it is just more difficult to follow… For now – I will track along both projects – but it seems NUnit.Behave is headed 100% in the right direction.
Enough babble – more later – I am off to prep for Gabe’s 5th birthday party today – FUN!
Chris
You can leave a response, or trackback from your own site.
Posted programming on Sunday, July 15th, 2007.
http://blogs.msdn.com/somasegar/archive/2007/07/13/it-all-begins-february-27th.aspx
“…the company will be jointly launching Windows Server 2008, Visual Studio 2008 and SQL Server 2008 in Los Angeles on February 27, 2008.  As the most important enterprise launch in the company history, February 27 will kick off a “launch wave†of hundreds of events that Microsoft will host worldwide.  Â
While we will be launching our products together in February, we are still aiming to release Visual Studio 2008 and .NET FX 3.5 by the end of this year …”
You can leave a response, or trackback from your own site.
Posted programming on Sunday, July 15th, 2007.
Good UI Design writing: http://worrydream.com/MagicInk/
WPF Perf tools
http://blogs.msdn.com/llobo/archive/2007/06/12/wpfperf-tools-now-available-as-a-msi.aspx
WPF Databinding stuff galore: http://www.beacosta.com/
WPF Makes even a listbox cool ! Styles/ Template fun.
-CD
You can leave a response, or trackback from your own site.
Posted algorithmic trading, trading on Friday, July 13th, 2007.
The current Waters issue has an interesting article about day trading shops that are heavily using automated trading components to carry out their money making activities. Essentially – they are automating more – yet still letting the humans do a part of the work. In the past – the balance was 100% human in the beginnig – eventually we started making indicators, formulas etc and “automating” some of the human intuition of trading. At the other end of the spectrum is the “black box” no humans involved trading. Somewhere in the middle is the “gray box” where we are doing more than creating “indicators” and letting an algo execute an order elegantly – but automating more and more of the process – while allowing humans to stick around.
When consulting for individual prop traders, it was often considered a bad practice to override the system with your dirty human intervention. I can think offhand of 3 past clients. 1 client always “gray box traded” LOTS of automated system stuff – human intervention – mostly regarding exit strategy. This guy made lots of money. 2 other clients overrode their systems – “gray box style” and burned money like a bonfire. I guess I am just not clear if this is a bad thing or a good thing in general… Now that I think about it – I think even the “black box-est” hands off auto-traders I know always sometimes touch their systems for one reason or another – a much darker gray box i guess. Anyhow – I guess the day trading fiasco will continue and we will see how these folks do.
-Chris
You can leave a response, or trackback from your own site.
Posted algorithmic trading, trading on Monday, July 9th, 2007.
Via the Mostly blog (good stuff) here – Wall St. & Tech has another article on OMS/EMSÂ convergence in the vendor space. This is a trend that will continue until people don’t talk about OMS/EMSs as separate things I think. This trend I have been watching ever since I got to work on a pre-EMS-era – EMS for chasing mini futures orders (or not chasing them).
 -Chris
You can leave a response, or trackback from your own site.
Posted programming on Sunday, July 8th, 2007.
In response to Jeremy’s post “How I’m, sigh, going to become a better developer”Â
1st – Jeremy – do get and read Mike Cohn’s Agile Estimating and Planning book. I have helped many people using this book as a guide.Â
Things I Should DoÂ
- Sleep more
(small kids’ll get ya)Â
- Get better at quantitative and risk related maths  (so I can work better with *real* quants and build better automated trading solutions – when they let me)Â
- Do a project where I use ruby (again, use it or lose it) or python (even the iron variety would suffice)Â
- Blog more – I have lots to say – and I have helped (I think/ hope) lots of people – by repeating the same old songs N times… should write those down!Â
- Do a pet project with ErlangÂ
Things I Want to DoÂ
- Immerse myself all the more in the derivitatives and automated trading domains. Technology can be used as and viewd as a weapon here! Big hard challenges are here and without the domain expertiese – you will not get the challenges presented to you. I have done lots in the space of automated trading – and I have done a fair bit of work in the derivs space – but there is LOTS more to go.Â
- Write more – specifically WRT trading and technology – I have been writing for Automated Trader Magazine- but I need to do some more (and to have good content – I better learn some more!)Â
- Interrupt people less – software is people workÂ
- Focus on team(s). I have seen lots of teams of good software developers that deliver badly – what’s up with that!? Aligning people – that is hard work – and each guy/ gal programming well does not a good software product make.Â
- Get other folks to take the scrum classes. I do NOT think the scrum “pedegree” means spit – but I can only teach so many folks myself and still work. I love making teams tick. All the more, I am on a mission to see many many teams “do the agile enterprise thing”. Certification-schmertification – yeah – but – education that comes from someone besides me is good.Â
- Do a pet Lisp – scheme project.Â
- Deliver an excellent user experience to the end users of the applications (and application suites) that I am involved in. This means getting better and better at UX, HCI, Interaction design - the real user experience stuff.Â
Things I Won’t DoÂ
- Sleep more (got no time to sleep!)Â
- Work on open source projects (I want to – at a level – but I have no cycles and I believe I can be better with a single purpose- my current full time job – I give it my all.)Â
Things I am doingÂ
- Plenty of messaging related workÂ
- Plenty of event stream processing related workÂ
- Focusing on “Integrated User Experience” for trader workstationsÂ
- Programming with most of my days (and some of my nights:))Â
- Working hard at getting a big organization doing the agile engineering and process stuff (PS – hard job)Â
- Building something with WPFÂ
- Reading a LOT of books (as I always do – it is an addiction)Â
I guess that is it – I think for me – a lot of “being a better programmer” at this stage is getting many people to deliver the right thing, at the right time, with unmatchable quality and sustainability. I am not even in much of leadership position from an authority perspective. I am however in a bit of a thought leadership position currently and that is just as useful – if your thoughts help people do their jobs. It is hard to get lots of teamwork in an meritocratic environment – I have to even fight the urge myself. I could do a LOT of programming – by myself – make a small bit of people happy, but that is not the big win. To be a better programmer – I am working on a variety of meta-programming – spreading the agile memes through the organization I am participating in and helping figure out what the right thing is to build. Helping business people and technology build better relations through transparency, honesty and realistic expectations.Â
This has been an interesting exercise. I think (humbly) I am quite a good programmer. That said – I think the domain of application, the intangibles of using a piece of software as a user, the ability to add up N people and make their impact to the business be big… these things are where my head is. I can program by myself till the cows come home. Doing that and delivering timely sustainable business value that financial firms can use as weapons to win the battles in finance – that is hard. There are a zillion people that can program. How many people can influence others to help them all deliver what their users want? How many people can make software products of such high quality that billions of dollars can pump throught them? How many people can make users lives pleasant while using their software to do their daily work? I can do a fast sort, I can recite big O notation. I can do all the threading tricks you need/ want. I can talk about event stream processing, etc. Now – can I meet the other challenges? I am trying
Â
This may all sound a bit – managerial – not so – I am a programmer
I have IntelliJ and Orcas open currently (Coral8 tools too). I think the key to being a better programmer is to love it and do it. I do – and I do. Reading, experimenting, doing pet projects, and doing real projects in a domain you are interested – with other people – in is about as good as will get for being a better programmer. Other people can have a great impact on you as a programmer – and you on others.Â
-ChrisÂ
Â
You can leave a response, or trackback from your own site.
Posted .net, ESP/ CEP, programming on Saturday, July 7th, 2007.
NEsper OO CEP/ESP comes to .net. It has been a bit in the coming – but the esper 1.3 port to C# seems ready.
-CD
You can leave a response, or trackback from your own site.

 