They're not simple questions to answer Sidhartha because there's many issues involved, but I'll try explain as briefly as I can. In short, yes it's doable. How long it would take depends on various factors, but a month for a decent programmer would be about right.
Performance wise, the only issue is the speed of GDI. Logistically, the only issue is data. GDI is slow, but that's not necessarily a problem as long as it's fast enough for the purpose. How fast do you want it? How fast does Market Delta update? You could write your own drawing routines for GDI but I don't know if it'd make much difference to using Tomasz gfx calls. If you wanted 50+ fps updates you could use DirectX. These things are always a matter of effort vs practicality vs cost. The easiest cheapest solution is generally to just buy a faster computer.:) As it stands, my comp is five years old and the performance isn't much of an issue for my use. I'd simply upgrade before I wasted a second coding my own GDI or DirectX routines. The biggest problem is data. The only place to get Bid/Ask data within AB is the Time & Sales window. You can do this either directly or via the clipboard. There are pros and cons to both. You also need an historical source for which I use QCollector. This can update in realtime but that also has some issues with how fast you can access it. They're all imperfect solutions and frankly a headache. If money wasn't an issue, the best solution would be to just pay for the eSignal ADK and get the data straight from the horses mouth. You'd be struggling for realtime performance in anything other than C. There's no real point using anything else. The instrument I trade is low volume and that has around 1 million trades per 3 month contract. The US futures could have well over 10 times that amount, then at least triple that for the bid/ask data. You need a horsepower language to process that much data. The only thing I have in afl are the settings from the Parameters window. A single call to the plugin does everything else. Once the trade data is in memory, I then process on this for whatever I need, pivot/interval footprints, volume profiles, block trades etc, then render it. You generally only need to process a subset of this data in realtime, but even a million trades only takes maybe 50ms depending on the routine. For large datasets, you just cache the results. Realtime updates from then on are literally a 0-1ms affair. This is why rendering is the only performance bottleneck. Hope that helps. I've seen Market Delta pictures but haven't used it so don't know where it's limitations are. Writing your own is useful cos you can get whatever you want from the data and display it however you want. But I'd seriously consider the need if you already have Market Delta as it's not necessarily an easy task. I've got mine to a working stage but I'll likely be making fixes and changes to it for weeks as I find out what suits. If you paid someone else to code it, I don't know how that would work out in practical terms in regards to making changes and what not. It'd be massively expensive. Regards, Jules. --- In [email protected], "sidhartha70" <sidharth...@...> wrote: > > Reason I ask Jules is that I currently use AB and MarketDelta concurrently... > Obviously it would be nice to migrate to one platform and really take control > of the output in ways I probably couldn't even manage under MarketDelta. > I hadn't taken on the task you seem to have because, > > 1. I wasn't convinced it could be done logistically or with enough speed to > make it a goer without it being written natively by TJ. > > 2. I wasn't sure, and still aren't, just how big a task it would be. Do you > think the bulk has to be written in C++...? For a decent one man programmer > are we talking 1 month or 4 months time requirement...? > > Any feedback would be great... > > Cheers > > > > > --- In [email protected], "jooleanlogic" <juliangoodsell@> wrote: > > > > It took a while Sidharta.:) > > > > Depends how fast you mean by realtime? The chart in the picture takes > > around 70ms on my p4 3.2ghz. > > The only real bottleneck is the GDI drawing so performance is almost > > entirely dependent on how much is being rendered. > > If you turn "Display chart timing on" in Preferences->Miscellaneous, the > > following code should give you an idea of the cost of rendering. You'll see > > it's highly variable. > > > > > > GfxSelectFont("", 8, 400); > > GfxSetBkMode(1); > > > > rows = Param("Rows", 50, 0, 500); > > Cols = Param("Cols", 50, 0, 500); > > showText = ParamToggle("Show Text", "No|Yes"); > > fastText = ParamToggle("Fast Text", "No|Yes"); > > switchColors = ParamToggle("Switch Colors", "No|Yes"); > > bswitch = True; > > > > cellHeight = Status("pxchartheight") / rows; > > cellWidth = Status("pxchartwidth") / Cols; > > > > for (row=0; row<rows; row++){ > > y = row * cellHeight; > > for (Col=0; Col<Cols; Col++){ > > x = Col*CellWidth; > > > > if (switchColors){ > > bswitch = !bswitch; > > if (bswitch) > > GfxSelectSolidBrush(colorLightBlue); > > else > > GfxSelectSolidBrush(colorLightOrange); > > } > > > > GfxRectangle(x, y, x+CellWidth, y+CellHeight); > > if (showText){ > > if (fastText) > > GfxTextOut("blah", x, y); > > else > > GfxDrawText("blah", x, y, x+CellWidth, > > y+CellHeight); > > } > > } > > } > > > > > > > > > > --- In [email protected], "sidhartha70" <sidhartha70@> wrote: > > > > > > Jules, out of interest 2 questions if I can... > > > > > > 1. How long did it take you to write...? > > > 2. Does it run fast enough to be fully operational in real time > > > trading...? > > > > > > Thanks > > > > > > --- In [email protected], "jooleanlogic" <juliangoodsell@> wrote: > > > > > > > > Thanks. Yes I'm aware of Market Delta and yes, c++ and gfx. > > > > > > > > > >
