Automated Currency and ETF Arbitrage Journal

Discussion in 'Automated Trading' started by robbob, Jul 23, 2012.

  1. robbob

    robbob

    Hi All,

    I've decided to journal about a couple of automated strategies that I've been working on and their performance. One strategy uses support/resistance to generate signals, with the AUD/NZD currency pair that is being traded in production. I'm also trading USD/SGD, HKD/JPY and EUR/DKK in a live account as well, but only with minimal position sizes until I get enough trades to see how the system performs. This strategy usually trades between 1-4 times per day, per currency pair

    I've also been working on an ETF arbitrage strategy that trades based on daily bars. This strategy usually places 1-2 trades per week.

    I'll update weekly on the results of each strategy.

    As far as the software itself goes, I've written a desktop application in Java utilizing Interactive Brokers Java API to handle the market data and trades.

    Results up to this point can be viewed on my blog.

    http://LimitUpTrading.wordpress.com
    twitter: http://www.twitter.com/LimitUpTrading

    Cheers!
     
  2. robbob

    robbob

    Weekly update from last week (starting 7/15/12). The AUD/NZD strategy has had the following results, trading live (All results include commissions):

    Trades: 14
    % Winning Trades: 64.3%
    Avg. Trade (ticks): +1.04
    Total (ticks): +14.6

    Statistics since the system began running in the live account (3/11/12):

    Trades: 308
    % Winning Trades: 77.6%
    Avg. Trade (ticks): +1.31
    Total (ticks): +407.1
     
  3. robbob

    robbob

    Well this doesn’t give me warm fuzzies, but I thought that I would share. IB does its nightly reset at 9pm PDT at which time the Trader Workstation (TWS) and IB Gateway will briefly lose their connections to the server. After a few seconds the apps reconnect and everything goes fine.

    Tonight however when I returned to my computer at about 9:30pm PDT, both TWS and IB Gateway were prompting me to re-enter my username and password. Which means that Arb Trader was not connected to IB monitoring its trades because somehow I had been logged out.

    I entered my username and password in both TWS and IB Gateway. TWS reconnected, but I didn’t check the Gateway because I had assumed it has as well. After about 20 minutes I cleared my desktop to find IB Gateway frozen (screenshot below).

    I don’t think that this is a condition that can be programmed for except to send me a notification that the connection has gone bad. I had to shutdown the IB Gateway and restart it in order to get the Arb Trader application to connect to it again.

    [​IMG]
     
  4. robbob

    robbob

    Live by the sword, die by the sword. The AUD/NZD strategy took a bit hit this week losing 114 ticks. I was on the wrong end of a bad fill this week. IdealPro (currency exchange venue IB uses) is supposed to be closed from 14:00 to 14:15 each day. I was filled on a order at 14:01 when the price spiked down. I contracted IB and asked how I was filled AFTER the market was supposedly closed. They explained that the IdealPro ‘closed’ time is like a rolling shutdown where each bank that acts as a market maker will begin their shutdown period starting at 14:00, but some banks may still be online for a few minutes. So basically, liquidity disappears starting at 14:00 until all banks are offline.

    This is the first week that I also begin trading EUR/DKK, HKD/JPY, and USD/SGD with minimal position sizes in the live account to see how they perform. All results include commission.

    Week of 7/15/12

    AUD/NZD
    Trades: 17
    Winning Trades: 76.5%
    Total P/L: -114 ticks

    USD/SGD
    Trades: 18
    Winning Trades: 72.2%
    Total P/L: -70.6 ticks

    HKD/JPY
    Trades: 13
    Winning Trades: 76.9%
    Total P/L: +0.90 ticks

    EUR/DKK
    Trades: 16
    Winning Trades: 87.5%
    Total P/L: +26.9 ticks



    Total since inception (3/11/12)
    AUD/NZD
    Trades: 325
    Winning Trades: 77.5%
    Total P/L: +293.1 ticks


    Update on Progress of the Arb Trader Application

    Currency Strategy

    This week I will be moving to live trading the following features/bugfixes.
    • Ensure that all orders are cancelled by the IdealPro close time of 14:00, and resubmitted by the 14:15 open time.
    • Make sure trades placed on Sunday evening have the correct parameters based ONLY on Sunday’s hourly prices, and not on Friday’s
    • Add timestamp to output that is displayed in the app’s text area.

    End-of-Day ETF arb strategy

    This strategy has closed 1 round turn trade at this point. The strategy takes its positions near the close of the market. It begins looking for entry/exit signals 1 minute before the market closes. I will be taking this value down to 15 seconds before the market closes instead.
     
  5. Nym

    Nym

    I definitively like your journal as I am thinking to implement something similar!
     
  6. robbob

    robbob

    Thanks! I should have an update with last week's trading results up later today or tomorrow.
     
  7. robbob

    robbob

    This was a pretty good week for the AUD/NZD and USD/SGD pairs, both posting a nice gain of around 40 ticks each. The HKD/JPY and EUR/DKK pairs didn’t fare so well however, both posting moderate losses on the week. I should mention that the only other pair other than AUD/NZD that performed well in backtests was EUR/DKK. No data was available through TradeStation to test HKD/JPY and USD/SGD did not backtest well, however I still wanted to see how it would perform in live trading.

    This weeks number are below. All results include commission.

    Week of 7/29/12

    AUD/NZD
    Trades: 18
    Winning Trades: 88.8%
    Total P/L: +40.3 ticks

    USD/SGD
    Trades: 23
    Winning Trades: 87.0%
    Total P/L: +39.7 ticks

    HKD/JPY
    Trades: 12
    Winning Trades: 58.3%
    Total P/L: -6.2 ticks

    EUR/DKK
    Trades: 13
    Winning Trades: 76.9%
    Total P/L: -14.9 ticks



    Total since inception (3/11/12)
    AUD/NZD
    Trades: 325
    Winning Trades: 77.5%
    Total P/L: +293.1 ticks

    Total since inception (7/22/12)
    USD/SGD
    Trades: 41
    Winning Trades: 80.5%
    Total P/L: -30.9 ticks

    HKD/JPY
    Trades: 25
    Winning Trades: 68.0%
    Total P/L: -5.3 ticks

    EUR/DKK
    Trades: 29
    Winning Trades: 82.8%
    Total P/L: +12.0 ticks

    Update on Progress of the Arb Trader Application

    Currency Strategy

    This week I will be moving to live trading the following features/bugfixes.
    • Bugfix for date/time comparisons that was preventing the system from starting. The system is off beginning Friday at 14:15 until Sunday 15:00. The bug caused the system to not place any new entry orders.

    End-of-Day ETF arb strategy
    No updates are planned for this strategy this week.

    Intraday ETF arb strategy
    • Initial testing has started for this strategy in the paper trade account and is currently trading one pair.
     
  8. robbob

    robbob

    This past week closed out with small loses for all pairs except for EUR/DKK which closed up a couple of ticks.

    This week’s number are below. All results include commission.

    Week of 8/5/12

    AUD/NZD
    Trades: 16
    Winning Trades: 68.9%
    Total P/L: -4.5 ticks

    USD/SGD
    Trades: 13
    Winning Trades: 69.2%
    Total P/L: -1.3 ticks

    HKD/JPY
    Trades: 17
    Winning Trades: 76.4%
    Total P/L: -1.4 ticks

    EUR/DKK
    Trades: 14
    Winning Trades: 85.7%
    Total P/L: +2.1 ticks



    Total since inception (3/11/12)
    AUD/NZD
    Trades: 359
    Winning Trades: 77.7%
    Total P/L: +328.9 ticks

    Total since inception (7/22/12)
    USD/SGD
    Trades: 54
    Winning Trades: 77.8%
    Total P/L: -32.2 ticks

    HKD/JPY
    Trades: 42
    Winning Trades: 71.4%
    Total P/L: -6.7 ticks

    EUR/DKK
    Trades: 43
    Winning Trades: 83.7%
    Total P/L: +14.1 ticks

    Update on Progress of the Arb Trader Application

    Currency Strategy

    This week I will be moving to live trading the following features/bugfixes.
    • My real-time bar API that is generating hourly bars is firing events at 59 minutes past the hour, rather than right on the hour. This is causing issues at 2PM PDT when IdealPro closes for 15 minutes
    • Stop prices: In some instances the stop price for a pair was set to the entry price and the position was immediately stopped out.
    • IB is throwing “Duplicate Order ID” errors. I believe this is tied to the fact that the system is sending new orders just before IdealPro closes.

    End-of-Day ETF arb strategy
    No updates are planned for this strategy this week.

    Intraday ETF arb strategy
    • I’ve added 2 more pairs to this strategy and have modified the strategy to collect bid/ask data for each of the pairs. This is still running in the paper trade account.
    • This week will continue testing for the 3 pairs.
     
  9. j2ee

    j2ee

    Nice journal. How is your overall result so far? What do you trade in IB for your FX?
     
  10. robbob

    robbob

    Thank You! Currently the strategy is just trading full position sizes with AUD/NZD and small position sizes with HDK/JPY, USD/SGD and EUR/DKK to get an idea of how they preform in a live account vs. IB's paper trade account.

    I have a couple of other strategies that I trade as well as have a few different core positions held as long term investments. I'll likely get my overall monthly trading results since 2003 up on my blog at some point.
     
    #10     Aug 15, 2012