Trading Evolution

Markets are never wrong - opinions often are

List of free iPhone apps to check stock quotes

Yahoo Finance 

Description

Follow the stocks and get personalized news and alerts. Access real-time information and investment updates to stay on top of the market.

Features
• Add stocks to your watchlist to get real-time quotes and a personalized news stream
• Find all the financial information you need
• Go beyond stocks and track currencies, commodities and more

 

investing.com

Features

• Real Time - Live quotes for over 40,000 financial instruments, traded on over 70 global exchanges, constantly updated
• Economic Calendar - Global economic events and updates in real time, including post factum statements
• Live Charts - Follow price movements for financial instruments, all in real time
• Portfolio - Easily build your customized portfolio as a personal tracker to monitor your favorite financial instruments
• Breaking News - Alerts and notifications on major global economic events as they happen
• Opinion & Analysis - The latest articles and reports from financial industry’s top experts
• Technical Analysis - Live signals based on our advanced technical indicator system, presented in a perfect manner for trading and easily comprehensible for retrieving information
• Emerging Markets - Extensive coverage of world economies outside of the Group of Ten (G-10)
• Earnings Calendar - Track companies and entities who are expected to release earnings reports within the upcoming time-frames

 

TT Mobile

TT Mobile is a trading app for professional derivatives traders worldwide. Access and trade the leading international exchanges and liquidity platforms including CME, ICE, Eurex, EEX, eSpeed, NFX and others from your mobile device with this feature-rich, intuitive app. With TT in your pocket, you can keep watch on the markets and your orders when you’re away from your trading workstation.

The app gives you the ability to:
• View market data from all TT-supported markets
• Enter, monitor, adjust and cancel orders from an order ticket or MD Trader® ladder
• Access fills, positions and complete audit trail history back to the day your account was created

Features
• Market watchlist
• Market-centric view of orders and positions
• Trading from order ticket
• Trading and order management from MD Trader ladder
• Order management screen
• Fills and positions
• Forever Audit Trail

How to send an order to IB TWS in just 68 lines

Below is C# code snippet to send buy 100 shares of SPY at market order. Code is pretty much self-explanatory. Connect, PlaceOrder, Disconnect and we are done.

class Program
{
	static IBWrapper _ibWrapper;
	static IBApi.Contract _ibContract;
	static IBApi.Order _ibOrder;

	static ManualResetEvent _connectedEvent = new ManualResetEvent(false);
	static ManualResetEvent _orderSubmittedEvent = new ManualResetEvent(false);

	static void Main(string[] args)
	{
		try
		{
			_ibWrapper = new IBWrapper();

			// Subscribe to events
			_ibWrapper.ClientConnected      += IbWrapper_ClientConnected;
			_ibWrapper.OrderStatusEvent     += IbWrapper_OrderStatusEvent;
			_ibWrapper.Error                += IbWrapper_Error;

			// Connect to TWS
			_ibWrapper.Connect("127.0.0.1", 7496, 0);
			if (!_ibWrapper.IBClient.IsConnected())
			{
				Console.WriteLine("Failed to connect to TWS");
				return;
			}

			_connectedEvent.WaitOne();

			_ibContract = new IBApi.Contract() { Symbol = "SPY", SecType="STK", Exchange = "SMART", PrimaryExch = "Nasdaq" };
			_ibOrder = new IBApi.Order() { Action = "BUY", OrderType = "MKT", Tif = "DAY", TotalQuantity = 100, Transmit = true, OrderId = _ibWrapper.NextOrderId++ };

			_ibWrapper.IBClient.placeOrder(_ibOrder.OrderId, _ibContract, _ibOrder);
			_orderSubmittedEvent.WaitOne();
			Console.WriteLine("Disconnect");

			_ibWrapper.Disconnect();
		}
		catch (Exception e)
		{
			Console.WriteLine(e.Message);
		}
	}

	private static void IbWrapper_ClientConnected(object sender, EventArgs e)
	{
		Console.WriteLine("Connected");
		_connectedEvent.Set();
	}

	private static void IbWrapper_OrderStatusEvent(object sender, OrderStatusEventArgs e)
	{
		if (_ibOrder != null && _ibOrder.OrderId == e.OrderId)
		{
			Console.WriteLine("Order status: " + e.Status);
			_orderSubmittedEvent.Set();
		}
	}

	private static void IbWrapper_Error(object sender, ErrorEventArgs e)
	{
		Console.WriteLine(string.Format("Error: {0}.", e.Error));

		_connectedEvent.Set();
		_orderSubmittedEvent.Set();
	}
}