[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automated Trading



PureBytes Links

Trading Reference Links

Justin,

Yes, Bloomberg terminal gets data from several sources, but it became too
expensive for me, so I'm changing to IB data via Lime Dynastore next week
and bye-bye Bloomberg!

For the backup I use eSignal EOD subscription and Dynaloader - this allows
me to download tick history after the hours and patch the gaps in Global
Servers databases.

My current setup is:

Computer A: A Bloomberg Terminal and Dynastore for Bloomberg on it. It works
on Bloomberg native API, not on DDE.

Computer B: TS2K (fed by Dynastore from Computer A), Dynaorder as a routing
agent and IB Trader Workstation as an execution software.

Computer C: the same with B.

Computer B is a getaway to Internet for B and C which are the part of the
internal 192.168.x.x network.
Computer A has 2 IP adresses: one is some IP in the Bloomberg network and
another one is a 192.168.x.x address to be the part of my internal network.

About execution details: I use market and stop orders in my System One. To
calculate stop levels I use the actual fill results returned by Dynaorder
functions back to my ELA code. Here's some example:

------- actual buy code: -------------
curpos = GetMarketPosition("ES", "FUT", "200312", "", 0, "");
if curpos<=0 then begin
   size = curpos*(-1)+1;
   newid = S_BuyMarket ("ES", "FUT", "200312", "", 0, "GLOBEX", "", 1);
   if newid<>"0" then begin
      WriteIntValue ("Step", 2);
      WriteStringValue("NewID", newid);
   end;
end;
-----------------------------------------------

------- actual fill check code: -------------
if step=2 and newid<>"0" then begin
   status = S_GetOrderStatus(newid);
   if status = "Filled" then begin
      reminder = S_GetOrderRemaining(newid);
      if reminder=0 then begin
          fillprice = S_GetOrderPrice(newid);
          stoplevel = fillprice+StopDistance;
          stopid = S_SellStop ("ES", "FUT", "200312", "", 0, "GLOBEX", "",
size, stoplevel);
          WriteIntValue("Step", 3);
          WriteStringValue("StopID", stopid);
      end;
   end;
end;
-----------------------------------------------

The first part of code gets the actual market position for emini and
determines the size of new buy order.
Then it places a Buy Market order and write down some external variables.
The #2 code (which is called later to check the possible execution) gets the
status of the order and, if it's "Filled", it checks if the fill was
complete (the "reminding" value should be zero) and after that gets the
actual execution price. If we had several partial fills, the last execution
price will be used.
Then I add my StopDistance (a negative value for the long positions) and
setup a Sell Stop order to exit if my loss will be more than I expect.

The actual code is much bigger of course and covers all possible situations
(I hope). The whole idea of code organization is DB's, not mine: he put my
code into ShowMe (not even Indicator :) and broke it into several parts.
Every time the code is called, it looks for an external varaible named
"Step" and determines which part of the code should be executed (i.e. should
it look for new conditions or to check the possible execution first etc).
Dynaorder provides some functions to utilize the external variables. Here's
a code sceleton:

Variables: step(0);

if LastBarOnChart then begin
    step = ReadIntValue ("Step");

    if step=0 then begin
        {.. some code ..}
        WriteIntValue("Step", 1);
    end

    else if step=1 then begin
        {.. some code ..}
        WriteIntValue("Step", 2);
    end

    else if step=2 then begin
        {.. some code ..}
        WriteIntValue("Step", 3);
    end;

    else if step=3 then begin
        {.. some code ..}
        WriteIntValue("Step", 0);
    end;

end;

What I also like about this platform is that it can be used not only from
Tradestation - i did not try that, but it seems that some people use it from
eSignal software and even from Volker's WLD :)

Andrew,
TT


----- Original Message -----
From: "Justin Fanning" <Justin@xxxxxxxxxxxxxxxx>
To: "TickTrader" <ticktrader@xxxxxxxxxxxx>
Cc: <omega-list@xxxxxxxxxx>
Sent: Wednesday, November 26, 2003 9:43 AM
Subject: Re: Automated Trading


>
> Hi Andrew,
>
> Thanks so much for the prompt answer, I was
> particularly interested you used Bloomberg also.
>
> My ultimate solution is to have a Globex terminal
> that I can both take a datafeed from as well as
> use as an execution platform, Bloomberg is a close
> second and has some advantages due to it not being
> single exchange focused.
>
> Have you been tempted by Bloomberg's Globex
> tradebook offering?  They claim to have a direct
> CME GW, I'm viewing this as a potential 'back-door'
> into direct Globex execution.
>
> http://www.cme.com/abt/news/bloomberg4821.html
>
> I've used Dynastore's DDE feed, is that how your
> extracting the data from Bloomberg?  I ended up
> writing an API interface in C++, I went this
> route so the transport layer could be IP and
> thus have significant flexibility over DDE.
>
> Could you give me a layout of how your system is
> setup, I'm particularly interested if your routing
> DDE over another transport layer (NETBIOS/IP etc),
> or feeding Bloomberg into a Global Server "hub" and
> feeding your workstations from there?
>
> With regards to the actual execution, I was unaware
> Dynastore had moved into that market, though a
> smart and logic move for them I guess.
>
> Could you run me through an actual execution.
> I have seen several solutions that fill HTML
> pages, but they usually fall down when it comes to
> receiving feedback on fills etc.
>
> How do you track fills, non/partial fills,
> entry/exit prices etc?  Does the Dynaorder code
> pass variables back to TS that can be incorporated
> into EasyLanguage? (this would seem a logical route)
>
> (I think I may have partly answered my own questions
>   on webpage http://www.dynaorder.com/efs-examples.asp
>   I can see DLL variables going back into TS)
>
> I'm very interested in your whole setup as your
> travelling the path I plan to travel in the next
> weeks/months.
>
> Kind Regards,
>
>
> Justin
>
> ---
>
> TickTrader wrote:
> > Justin,
> >
> > I'm trading eminis with Interactive Brokers using Dynaorder and TS2k
(two
> > systems on two puters).
> > Both systems are fed by Bloomberg via the same company's feeder
(Dynastore).
> >
> > It took some time to establish a stable quote feeding to these two
computers
> > but DB made it after several visits to my office.
> >
> > As I'm trading eminis only, I'm switching to their new "Lime Edition
> > Dynastore" right now - it allows me to get rid of the expensive
Bloomberg
> > which I (almost) do not use anymore and to feed my puters with the data
from
> > Interactive Brokers (DB gives this "Lime" feeder for free to his
existing
> > users, I believe).
> >
> > He also helped me to code my systems for trade via Dynaorder and I love
this
> > platform now.
> > Of course I have made all possible precautions: I'm running IB's own
> > software to monitor the trades and to intrude into the system if
something
> > will go wrong. The whole idea was not to make a "money-box" but to
automate
> > some routine actions and to follow the strategy "by the book".
> >
> > I also expect DB's visit nearest days to install "remote execution"
> > functions of Dynaorder, which will allow me to send buy/sell orders
> > generated by my TS2k to my clients' computers for the execution.
> >
> > The platform has no "supervisor" functions, but they are planned. The
> > compatibility with other brokers is also expected soon.
> >
> > Andrew, TT
> >
> >
> > ----- Original Message -----
> > From: "Justin Fanning" <Justin@xxxxxxxxxxxxxxxx>
> > To: <omega-list@xxxxxxxxxx>
> > Sent: Tuesday, November 25, 2003 6:18 PM
> > Subject: Automated Trading
> >
> >
> >
> >>I am looking to automate some 2000i strategies.
> >>Could I get some feedback from those who have
> >>implemented such, what software, what broker etc.
> >>
> >>Do any platforms or brokers have a development
> >>environment where trades can be submitted end-to-end,
> >>but not actually executed?
> >>
> >>Also, do any platforms allow "supervisory" control
> >>over the trading activity, such as a maximum day's
> >>loss for example.  I know some institutional systems
> >>have such features where if a trader exceeds
> >>pre-set limits the execution platform won't take
> >>further instructions from them etc.
> >>
> >>Finally, has anyone tried automating the analysis
> >>& execution of several markets?  How did you do it?
> >>Several copies of TS2ki feeding a common execution
> >>platform, or all markets on one box?
> >>
> >>All assistants & thoughts warmly received.
> >>
> >>Kind Regards,
> >>
> >>
> >>Justin
> >>
> >>
> >>
> >
> >
> >
>
>
>