Skip to content

Commit

Permalink
issue connamara#128 - simply/improve TradeClient example
Browse files Browse the repository at this point in the history
  • Loading branch information
gbirchmeier committed Nov 26, 2012
1 parent 313cef4 commit 0c91864
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 40 deletions.
61 changes: 22 additions & 39 deletions Examples/TradeClient/TradeClientApp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@ namespace TradeClient
{
public class TradeClientApp : QuickFix.MessageCracker, QuickFix.IApplication
{
Session _session = null;

#region IApplication interface overrides

public void OnCreate(SessionID sessionID) { }
public void OnCreate(SessionID sessionID)
{
_session = Session.LookupSession(sessionID);
}

public void OnLogon(SessionID sessionID) { Console.WriteLine("Logon - " + sessionID.ToString()); }
public void OnLogout(SessionID sessionID) { Console.WriteLine("Logout - " + sessionID.ToString()); }

Expand Down Expand Up @@ -92,6 +98,17 @@ public void Run()
Console.WriteLine("Program shutdown.");
}

private void SendMessage(Message m)
{
if (_session != null)
_session.Send(m);
else
{
// This probably won't ever happen.
Console.WriteLine("Can't send message: session not created.");
}
}

private char QueryAction()
{
Console.Write("\n"
Expand Down Expand Up @@ -130,7 +147,7 @@ private void QueryEnterOrder()
{
m.Header.GetField(Tags.BeginString);

QuickFix.Session.SendToTarget(m);
SendMessage(m);
}
}

Expand All @@ -141,7 +158,7 @@ private void QueryCancelOrder()
QuickFix.FIX44.OrderCancelRequest m = QueryOrderCancelRequest44();

if (m != null && QueryConfirm("Cancel order"))
QuickFix.Session.SendToTarget(m);
SendMessage(m);
}

private void QueryReplaceOrder()
Expand All @@ -151,7 +168,7 @@ private void QueryReplaceOrder()
QuickFix.FIX44.OrderCancelReplaceRequest m = QueryCancelReplaceRequest44();

if (m != null && QueryConfirm("Send replace"))
QuickFix.Session.SendToTarget(m);
SendMessage(m);
}

private void QueryMarketDataRequest()
Expand All @@ -161,7 +178,7 @@ private void QueryMarketDataRequest()
QuickFix.FIX44.MarketDataRequest m = QueryMarketDataRequest44();

if (m != null && QueryConfirm("Send market data request"))
QuickFix.Session.SendToTarget(m);
SendMessage(m);
}

private bool QueryConfirm(string query)
Expand Down Expand Up @@ -192,7 +209,6 @@ private QuickFix.FIX44.NewOrderSingle QueryNewOrderSingle44()
if (ordType.getValue() == OrdType.STOP || ordType.getValue() == OrdType.STOP_LIMIT)
newOrderSingle.Set(QueryStopPx());

QueryHeader(newOrderSingle.Header);
return newOrderSingle;
}

Expand All @@ -206,7 +222,6 @@ private QuickFix.FIX44.OrderCancelRequest QueryOrderCancelRequest44()
new TransactTime(DateTime.Now));

orderCancelRequest.Set(QueryOrderQty());
QueryHeader(orderCancelRequest.Header);
return orderCancelRequest;
}

Expand All @@ -226,7 +241,6 @@ private QuickFix.FIX44.OrderCancelReplaceRequest QueryCancelReplaceRequest44()
if (QueryConfirm("New quantity"))
ocrr.Set(QueryOrderQty());

QueryHeader(ocrr.Header);
return ocrr;
}

Expand All @@ -246,9 +260,6 @@ private QuickFix.FIX44.MarketDataRequest QueryMarketDataRequest44()
message.AddGroup(marketDataEntryGroup);
message.AddGroup(symbolGroup);

QueryHeader(message.Header);

Console.WriteLine(message.ToString());
return message;
}
#endregion
Expand Down Expand Up @@ -370,34 +381,6 @@ private StopPx QueryStopPx()
return new StopPx(Convert.ToDecimal(Console.ReadLine().Trim()));
}

private void QueryHeader(Header h)
{
h.SetField(QuerySenderCompID());
h.SetField(QueryTargetCompID());
if (QueryConfirm("Use a TargetSubID"))
h.SetField(QueryTargetSubID());
}

private SenderCompID QuerySenderCompID()
{
Console.WriteLine();
Console.WriteLine("SenderCompID? ");
return new SenderCompID(Console.ReadLine().Trim());
}

private TargetCompID QueryTargetCompID()
{
Console.WriteLine();
Console.WriteLine("TargetCompID? ");
return new TargetCompID(Console.ReadLine().Trim());
}

private TargetSubID QueryTargetSubID()
{
Console.WriteLine();
Console.WriteLine("TargetSubID? ");
return new TargetSubID(Console.ReadLine().Trim());
}
#endregion
}
}
2 changes: 1 addition & 1 deletion Examples/TradeClient/tradeclient.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ ResetOnLogon=Y

[SESSION]
# inherit ConnectionType, ReconnectInterval and SenderCompID from default
BeginString=FIX.4.2
BeginString=FIX.4.4
SenderCompID=CLIENT1
TargetCompID=EXECUTOR
HeartBtInt=30
1 change: 1 addition & 0 deletions NEXT_VERSION.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ Changes since the last version:

* (minor) issue #101 - better exception for when group doesn't use proper delimiter
* (minor) issue #28 - rename interfaces to start with "I"
* (patch) issue #128 - simplify/improve TradeClient example app

0 comments on commit 0c91864

Please sign in to comment.