Andy wrote :
>Yes. IB offer a good brokerage service with an API that requires a Java >app to be launched to use it (don't ask me why). There are a couple of >other brokers with an API but they don't allow non-US residents to open >accounts. Which brokerages have APIs? ( I am a US resident ) Is there a Smalltalk package that works the API directly without going through Java? Is there a Smalltalk trading API of any sort that I can just get? >One thing we might do is to build the Portfolio Analyser into a >standalone product and sell that. It could be integrated with Dolphin >(i.e. using Smalltalk to develop the strategies) or be sold as an >add-on to TradeStation (where their EasyLanguage is used for >programming). But that is really something for next year. We certainly >won't sell the actual systems since, if we are trading them ourselves, >we'd want to be sure that they don't get overloaded and lose their edge. >So the real point of doing it was to trade the systems and that will, >hopefully, give us more flexibility with developing and selling >Dolphin. So, right now, it's on with D6... Have you done anything with this Portfolio Analyser idea? ANSWER-: I see that you have-:( http://www.alchemetrics.org/ ) Are there charting addons for Dolphin Smalltalk? Candlesticks? Bar charts? etc? Can you draw trendlines on them via Smalltalk? I have a simple charting thing that extends Scribble. It's not much to look at but it works well. I have built a trading system simulator that is supposed to be able to use CBOE options data tables to simulate systems that use options. It is based on Smalltalk Generators. It is coded in Smalltalk 2.1 patch level 2. I am thinking about trying to get it to work with TBSP options data but it is hard to figure out which option symbols go with which stocks from the data. There is a symbol file that comes out daily but it doesn't seem to have any way to get it historically. Which is dumb. I have been trying to collect it on a daily basis in case I try to use http://www.tbsp.com data. Do you know of a good place to get historical options data that doesn't have this kind of symbol problem? I built all of this stuff but never used it because I could not interact in a forum or via e-mail to get info because I am crazy. And so certain things just seemed too daunting to find out about. Plus I kept getting distracted by a million different things. But now I take expensive medicines that keep down the crazy part so I will try again. But I need help. It's too much for me to do by myself. That's why I am coming here. But this time with questions and not just an endless stream of talk. This time I will actually come back to try to get the answers. Something I could never do before. I would like to publish all this stuff if I can ever get it packaged up. I have like 200 packages and it's just a mess. I would like help with it so that is why I want to publish it. Perhaps it could be published as an addon to D6? I like to use text based user interfaces based on text selection evaluation because they are more flexible and powerful than GUIs and there is a record of what you did. Also they should be more portable across different Smalltalks. Plus you can have a stable of commonly used commands just sitting in a text file(s). I have a copy command that I use like this for incremental backups. I was trying to use a smart backup thing but it would crash when it ran out of ram( written in C no doubt ) so it's back to the copy command which works good. |
Kego
I have no idea about the answers to most of your questions, but... > Are there charting addons for Dolphin Smalltalk? > Candlesticks? Bar charts? etc? Can you draw trendlines > on them via Smalltalk? I think Andy's said that they use Steema's TChart ActiveX control rather than creating a native Smalltalk implementation. > I would like to publish all this stuff if I can ever get it > packaged up. I have like 200 packages and it's just > a mess. It's probably not /that/ much of a mess; you must have reasonably clean structures and organisation, or there would be lots of circular dependencies, and Dolphin wouldn't even let you same most of the packages. I'm pretty sure, though, that you'll have to split the packages into groups of some kind before many people will want to look at them (that doesn't necessarily mean making /any/ code changes). You'd find that easier to do in a later version of Dolphin than 2.1, because at some point (I forget when) Dolphin gained the ability to store packages in separate folders and still be able to load them reasonably easily. > I would like help with it so that is why I want > to publish it. I don't speak for anyone else, but I suspect that you'll have to split stuff up a bit and migrate to (at least) Dolphin 4 -- ideally Dolphin 6 (there have been free versions of all three). I know that if you did that I'd be interested to see your "generator" stuff (you mentioned it here some months ago), which sounds like an interesting framework. -- chris |
Thanks for the Steema's TChart ActiveX control info.
How can I find out if I can draw trendlines on those charts? I think it will be easier to extend my Scribble charts. for now. I will try to split the packages into groups of some kind. There are a lot of them that are just ideas for things that were never actually coded up or debugged. There is some stuff to make Smalltalk act like Prolog for instance. I tried to make it using continuation passing style but I never quite got there clearly. I could get rid of a lot of those. Or group them. I was thinking of a Package that would install all the other Packages. I guess I could make it so that you can select which group to install. If there is one thing my stuff is it's highly documented. Chris Uppal wrote: > Kego > > I have no idea about the answers to most of your questions, but... > > > Are there charting addons for Dolphin Smalltalk? > > Candlesticks? Bar charts? etc? Can you draw trendlines > > on them via Smalltalk? > > I think Andy's said that they use Steema's TChart ActiveX control rather than > creating a native Smalltalk implementation. > > > > I would like to publish all this stuff if I can ever get it > > packaged up. I have like 200 packages and it's just > > a mess. > > It's probably not /that/ much of a mess; you must have reasonably clean > structures and organisation, or there would be lots of circular dependencies, > and Dolphin wouldn't even let you same most of the packages. > > I'm pretty sure, though, that you'll have to split the packages into groups of > some kind before many people will want to look at them (that doesn't > necessarily mean making /any/ code changes). You'd find that easier to do in a > later version of Dolphin than 2.1, because at some point (I forget when) > Dolphin gained the ability to store packages in separate folders and still be > able to load them reasonably easily. > > > > I would like help with it so that is why I want > > to publish it. > > I don't speak for anyone else, but I suspect that you'll have to split stuff up > a bit and migrate to (at least) Dolphin 4 -- ideally Dolphin 6 (there have > been free versions of all three). I know that if you did that I'd be > interested to see your "generator" stuff (you mentioned it here some months > ago), which sounds like an interesting framework. > > -- chris |
In reply to this post by kego-2
Kego,
> Yes. IB offer a good brokerage service with an API that requires > a Java > app to be launched to use it (don't ask me why). There are a > couple of > other brokers with an API but they don't allow non-US residents > to open > accounts. > > Which brokerages have APIs? ( I am a US resident ) I know that Lime (www.limebrokerage.com) offers an API and that TradeStation (www.tradestation.com) has an automated trading facility which, with a little ingenuity, could be called from Smalltalk. I think there are several others. However, we use Interactive Brokers (www.interactivebrokers.com). They have a COM interface to their Java based trading platform. This is failrly easy to interface with from Dolphin although the (very) aynchronous nature of the API calls makes it a little tricky to program reliably. Our major problem has been getting a stable set of tests to run (and continue to run). > Is there a Smalltalk package that works the API > directly without going through Java? > Is there a Smalltalk trading API of any sort that I > can just get? We have a Dolphin package (for 6.x) that drives the API. However, it is not really in a state where we could consider releasing it -- for two reasons. First off, IB have recently changed the way their "demo" system works and this has broken about 50% of our tests. Secondly, automated trading can be quite a risky business and we'd need a hefty set of disclaimers against loss to be agreed to before we could let anyone have the code. > Have you done anything with this Portfolio Analyser idea? > ANSWER-: I see that you have-:( http://www.alchemetrics.org/ ) We have been running automated trading systems through Dolphin for about three years now. Success has been moderate, rather than outstanding. Some of the early systems, whilst they appeared hugely profitable when back tested in the Portfolio Analyser just turned out to be marginally so when running in real life. This discrepancy between the trading system model and the real-life returns is something we put a lot of effort into eliminating. We now have a series of "filters" that we run the data through to make it simulate real trades more effectively. We have been running one account for three years and over that time period the gain has been 41%. During the same period the overall market ($OEX) has also risen 32% so, to my mind, the systems used on this account have been underperforming and rather disappointing (consequently they will be retired shortly). A second account has been somewhat more successful. This account is up 30% since February 2005 whilst over the same period the general market has actually fallen by 1%. In fact, the situation is better than that since that account is actually running five automated systems but some were only introduced at the beginning of this year or later. The best performing system is the one that has been running since Feb 05 which has gained 82% over that period (it is also up 4.3% this month compared with a market fall of around -4%). All the systems only take long trades (i.e. no shorting). The Portfolio Analyser is a tool that we use constantly but, once again, it isn't really in a state that it could be released (usual problems, lack of documentation, tied to one particular data feed etc etc). We would consider licensing it to anyone who wanted to make use of it in their product but there would be a fee (as yet undecided) attached. > Are there charting addons for Dolphin Smalltalk? > Candlesticks? Bar charts? etc? Can you draw trendlines > on them via Smalltalk? I have a simple charting thing that > extends Scribble. It's not much to look at but it works well. As Chris has mentioned, we use Steema's TeeChart which has tons of useful facilities (including price bar charts). I don't think it would be too difficult to get it to draw trend lines that could be manipulated by the user. Once again this is an ActiveX control that Dolphin can interface with quite readily. There's a demo version that you could try out without committing yourself financially (or otherwise). I hope this has been of interest. Best Regards, -- Andy Bower Dolphin Support www.object-arts.com |
In reply to this post by kego-2
Kego,
> Thanks for the Steema's TChart ActiveX control info. > How can I find out if I can draw trendlines > on those charts? I think it will be easier to extend > my Scribble charts. for now. It probably would be (not that I know anything about either TChart or your Scribble chart ;-) My impression is that doing something simple with charts is almost always easier if you do it yourself. The problem comes when you (almost inevitably) want to generalise -- then everything falls apart because the "space" of possible charts is just so huge and there doesn't seem to be a natural over-arching structure to it. I once tried to put together a charting package for some stuff I needed. My first thought was to generalise as far as I conveniently could (without wasting too much effort) since that normally makes programming easier (more structure to lean on, fewer arbitrary special cases, more code sharing, etc). But that didn't work at all -- the only way I could get the thing to produced at all was to pretty-much hardwire the stuff I needed, and just ignore everything else. If I need to add something new to it, then I'll just hack that in too... > I will try to split the > packages into groups of some kind. There are a > lot of them that are just ideas for things that > were never actually coded up or debugged. I have a lot of packages like that too ;-) In fact I noticed one yesterday that had no contents at all -- and I can't even remember what I was going to put into it. > I could get rid of a lot of those. Or group them. A package which doesn't work, or is just a sketch isn't going to be interesting to anyone else. But just because a package isn't complete, or in its final form, doesn't necessarily mean that no one else would be interested. The thing is to be very clear about which is which, and to group them separately. > I was thinking of a Package that would install all > the other Packages. I guess I could make it so > that you can select which group to install. Probably a waste of time -- at least at this stage. Your problem is how to get people interested at all, not in how to make it easy for them to load /everything/. > If there is one thing my stuff is it's highly documented. :) -- chris |
In reply to this post by Andy Bower-3
Andy Bower wrote:
> I know that Lime (www.limebrokerage.com) offers an API and that > TradeStation (www.tradestation.com) has an automated trading facility > which, with a little ingenuity, could be called from Smalltalk. I think > there are several others. I know about Lime but they seem to be more for institutional customers. And TradeStation is so expensive. I don't really want to be a day trader. I want to be more of a position trader. I want to use options if possible. I still don't really know how or even if that would work. OptionsXpress has an XML based API which is probably pretty good but they don't let you download symbol data or historical data or news through it. It's just for order entry and portolio display. But they have some pretty nifty orders like bracket orders and one fill cancels the rest and one fill causes another order etc. But you can't do stocks and futures from the same account. I suppose you could make a portfolio where you took single share positions in stocks you were highly interested in and perhaps get some kind of data feedback that way by looking at the portfolio over and over during the day. I like the fact that IB lets you do futures and currencies from the same account. Not that I would do either of those things but it's nice to know they are there. Like if the dollar was in a big tail spin it might be nice to just be able to buy some yens and euros or something. A little gold. etc. > However, we use Interactive Brokers (www.interactivebrokers.com). They > have a COM interface to their Java based trading platform. This is > failrly easy to interface with from Dolphin although the (very) > aynchronous nature of the API calls makes it a little tricky to program > reliably. Our major problem has been getting a stable set of tests to > run (and continue to run). So here is how I was planning to interface to IB : Use the MegaGnostic Smalltalk JNIPrt to Java for D5 Compile the IB Java source code for their socket API into .class files? And then I have to do something to the DOS ClassPath environment variable? And somehow I run the Java but I don't know how. I downloaded Eclipse for Java. The Java SDK from sun was all commandline so forget that. I still don't know how to compile and run the IB socket API. Is there a stand alone .exe created? Is there some Java runtime that has to be running and pointed at the compiled .class files via the ClassPath? If so then where do I find this ClassPath and how to I set it? Is there a Java book out there that would just tell me how to compile and run this thing? I was looking in the IB Forum back in 2004 where there were problems with upgrades breaking. I was hoping that was no longer the case but I guess it still is. Asynchronous? I would suppose you would use different Smalltalk Processes? One to send and others to recieve? > > Is there a Smalltalk package that works the API > > directly without going through Java? > > Is there a Smalltalk trading API of any sort that I > > can just get? > > We have a Dolphin package (for 6.x) that drives the API. However, it is > not really in a state where we could consider releasing it -- for two > reasons. First off, IB have recently changed the way their "demo" > system works and this has broken about 50% of our tests. Secondly, > automated trading can be quite a risky business and we'd need a hefty > set of disclaimers against loss to be agreed to before we could let > anyone have the code. Couldn't a public D6 API be built with lots of fail safes built into it like Smalltalk is good at? Maybe that would mitigate some of the risk. The question is how could a risk tollernace policy be set up and followed. So if the system started going haywire it could stop itself from doing something unfortunate. Isn't the GPL a good enough disclamer? Or some other such like accepted license? Can people really come after you for something like that? Is it because you are software sellers and Smalltalk sellers in particular that you feel you need to have extra protection? Is it more of an emotional thing than a real legal thing? Is it because you are a visible target? Is it less of a legal thing and more that you just don't want to have someone else's public or private losses on your minds? Could such an API be developed by more than one entity so the responsibilities would be defused? I know about risk. I know about loss. I know how it feels. I don't take it lightly. I've made a lot of money and I've lost a lot of money. I need to get better at taking profits especially when leverage is involved. If I make a D5 or D6 API to IB's Java thing I will try to publish it. Is that foolish? I will try to GPL it. I'm still wondering if your concern is really a legal one or if it's something else. The market is down again and I'm happy. Well, almost happy. Not quite. There's always that not quite part. That nagging not quite that you just have to learn to live with. > > Have you done anything with this Portfolio Analyser idea? > > ANSWER-: I see that you have-:( http://www.alchemetrics.org/ ) > > We have been running automated trading systems through Dolphin for > about three years now. Success has been moderate, rather than > outstanding. Some of the early systems, whilst they appeared hugely > profitable when back tested in the Portfolio Analyser just turned out > to be marginally so when running in real life. This discrepancy between > the trading system model and the real-life returns is something we put > a lot of effort into eliminating. We now have a series of "filters" > that we run the data through to make it simulate real trades more > effectively. That's very interesting. Is it the bid ask spread? Is it that you can't get the orders in on time? There's some kind of lag in there? The options have at least a 5% bid ask spread and that means that you don't want to do a lot of trading. Maybe that makes a lot of the automated systems off limits to options. With a stock one day's data is 20 bytes or something like that but with options each day's data is like 80K or more. So how do you deal with all that data is the question. That's what the Generators try to deal with. I can do it with tbsp.com data but not historically because I can't tell which option symbols go with which stocks. How that situation can be allowed to just go on and on year after year is beyond me. Maybe I just need to talk to them or something. Maybe it's not as bad as it looks. Oh we've got all this options data but it's historically almost totally useless. How can that be? I must be wrong. I probably just need to try it. > We have been running one account for three years and over that time > period the gain has been 41%. During the same period the overall market > ($OEX) has also risen 32% so, to my mind, the systems used on this > account have been underperforming and rather disappointing > (consequently they will be retired shortly). Yes but how does it do in a bear market is the question. We have been in a bear market upleg for the last 3 years. PE's are high. Valuations are high. etc. The deficits the debt loads the double binds. You can't lower interest rates because the dollar plunges and that drives em back up again. 41% in a bear market would be something. I think 41% in 3 years is nothing to sneeze at. It depends on what your risk tollerance is. I made 41% in two weeks in January but I didn't take the profits. When you make 40% in two weeks on an entire account take the profits. It was a big pull back, I felt the bottom, things were cheap, I put the leverage way up there. But I didn't take the profits. I'm trained not to take the profits. I need to ammend that rule somehow. Sometimes I have a really low risk tollerance. And sometimes it's really high. And letting a machine do it by itself gives me the whillies. But hey. That's what the big boys are doing. What I want right now is some automated order entry that does my taxes at the same time. So you could set up a bunch of contingency orders in options for when supports or resistances are breached etc that could be executed all at once if need be. Like in this latest downleg it felt like the big boys already had contingencies all set up and waiting so one click sets it all in motion. All the positions get hedged. Or whatever. Or maybe there could be some kind of automated staggering of the orders. I have emotional troubles entering the orders all by myself sometimes. And I would like the taxes to get done automatically. > A second account has been somewhat more successful. This account is up > 30% since February 2005 whilst over the same period the general market > has actually fallen by 1%. In fact, the situation is better than that > since that account is actually running five automated systems but some > were only introduced at the beginning of this year or later. The best > performing system is the one that has been running since Feb 05 which > has gained 82% over that period (it is also up 4.3% this month compared > with a market fall of around -4%). All the systems only take long > trades (i.e. no shorting). Well that's hopeful. At least you don't have losses. I take it your risk tollerance is low. All that trading makes me leary. I'm trained not to trade if I can help it. Well you can't argue with 82%. And probably at low risk I'm assuming. If there is any way that you could tell us how you did it without leading us to make the same trades you make that would certainly be a boon. And how many of us are there here really anyway? This is a low traffic group. So unless you are trading smallcaps I can't see how much system dilution could occur. Just in general terms. Or if you could tell something that might lead us to develope other similar systems, why not? Well, it's a boon just to know about what you have said here already. That 80% in a year is possible. > The Portfolio Analyser is a tool that we use constantly but, once > again, it isn't really in a state that it could be released (usual > problems, lack of documentation, tied to one particular data feed etc > etc). We would consider licensing it to anyone who wanted to make use > of it in their product but there would be a fee (as yet undecided) > attached. That's interesting. TradeStation is tied to one data feed. If there is one thing my stuff is it's documented. It's good to know that you are flexible and willing to consider licensing. The Portfolio Analyser looks pretty impressive on http://www.alchemetrics.org/ . I have given up on trying to make a product to sell myself. But What if one made something that didn't look like much but worked well. It did its job well. It got the job done. But it wasn't all flashy and glittering with eye candy. I wonder if you could still sell it. Like if it was mostly text based. Or would that lack of flash just be a total turn off. I suppose there are things that work and are self explaining but emotionally they are not acceptable. You just can't get past the look and feel of something sometimes. > > Are there charting addons for Dolphin Smalltalk? > > Candlesticks? Bar charts? etc? Can you draw trendlines > > on them via Smalltalk? I have a simple charting thing that > > extends Scribble. It's not much to look at but it works well. > > As Chris has mentioned, we use Steema's TeeChart which has tons of > useful facilities (including price bar charts). I don't think it would > be too difficult to get it to draw trend lines that could be > manipulated by the user. Once again this is an ActiveX control that > Dolphin can interface with quite readily. There's a demo version that > you could try out without committing yourself financially (or > otherwise). I like that interface quite readily part. It seems like D6 can automatically interface with ActiveX components? Creating methods and such like. That would totally make me change my mind about dealing with ActiveX. Otherwise the learning curve just seems too high. All these type libraries and marshals and no documentation. If Dolphin could just get the ball rolling by doing the linkages automatically that would be such a mercy. That is what Dolphin now does from what I can gather. I can make workable charts just using Scribble. I can do high low close by graphing 3 lines. I get the coordinates by clicking and having the coordinates print up in a Workspace because I hate to squint at parallel lines tracking them back to the tick mark numbers. So it's nothing to look at but it works good. Trying to draw trendlines on ActiveX would be interesting but I think I'll try it using Scribble first. Making a trendline that is persistent somehow would be good. Because having to keep redrawing it by hand all the time gets to be a real chore. > I hope this has been of interest. Yes it was very interesting to hear about your experiences both good and medium good and your indications about where to look next. Thank you so much for the info. It was most informative. And generous. > Best Regards, > > -- > Andy Bower > Dolphin Support > www.object-arts.com Is there any way that you might sell your trading systems to a small group? Lots of system sellers do this without sinking the systems. Like say for $2500 or something right around there? If you had a hundred or even a thousand such people couldn't they all stay out of each other's way? Or be made to stay out of each other's way? If the system is on large caps then it aught to be able to handle 100 or 1000 people on it. Perhaps each image could come with a different config file that would keep them from treading on each other? 2500*100=250,000 2500*1000=2,500,000 Maybe it's something to think about. |
Kego,
> Use the MegaGnostic Smalltalk JNIPrt to Java for D5 That's me. (Give-or-take the odd typo ;-) > Compile the IB Java source code for their socket API into .class > files? And then I have to do something to the DOS ClassPath > environment variable? And somehow I run the Java but I don't know how. > I downloaded Eclipse for Java. The Java SDK from sun was all > commandline so forget that. I still don't know how to compile and run > the IB socket API. Is there a stand alone .exe created? Is there some > Java runtime that has to be running and pointed at the compiled .class > files via the ClassPath? If so then where do I find this ClassPath and > how to I set it? Is there a Java book out there that would just tell > me how to compile and run this thing? This isn't the place to get into details of how to build Java programs but I will say this: you don't stand a chance of using JNIPort without knowing how to build and run Java programs from the command-line. That's because the command line tool "java.exe" is a very thin skin around the Java runtime DLL, and it does almost nothing (relevant) except to pass all the options to the DLL. If you use JNIPort then you set the options via a different interface (the JNIPort settings) rather than by command-line options (plus the %CLASSPATH% environment variable) but they are exactly the same options. As for building java source code into a .class files or into a JAR file, you will probably find it easier to do with the command-line tools from the JDK than via Eclipse or Netbeans. There's a bunch of introductory material at: http://java.sun.com/docs/books/tutorial/index.html and http://java.sun.com/developer/onlineTraining/new2java/stepbystep.html And a good place to ask for Java help is the newsgroup comp.lang.java.help. However, with all that said, it seems that IB have an ActiveX interface, and I'm not sure what advantage you expect to to gain by using their Java API in preference to the ActiveX one. If you were already comfortable with using Java then it would make sense (that's probably what /I/ would do, for instance), but that doesn't apply for you. -- chris |
Free forum by Nabble | Edit this page |