void ArthikaHFTListener.positionHeartbeatEvent(ArthikaHFT.positionHeartbeat positionHeartbeatList)
 {
     Console.Write("Asset: ");
     for (int i = 0; i < positionHeartbeatList.asset.Count; i++)
     {
         Console.Write(positionHeartbeatList.asset.ElementAt(i));
         if (i < positionHeartbeatList.asset.Count - 1)
         {
             Console.Write(",");
         }
     }
     Console.Write(" Security: ");
     for (int i = 0; i < positionHeartbeatList.security.Count; i++)
     {
         Console.Write(positionHeartbeatList.security.ElementAt(i));
         if (i < positionHeartbeatList.security.Count - 1)
         {
             Console.Write(", ");
         }
     }
     Console.Write(" Account: ");
     for (int i = 0; i < positionHeartbeatList.account.Count; i++)
     {
         Console.Write(positionHeartbeatList.account.ElementAt(i));
         if (i < positionHeartbeatList.account.Count - 1)
         {
             Console.Write(",");
         }
     }
     Console.WriteLine();
 }
Example #2
0
    public static void Main0(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        List <ArthikaHFT.accountTick> accountTickList = wrapper.getAccount();

        foreach (ArthikaHFT.accountTick tick in accountTickList)
        {
            Console.WriteLine("Name: " + tick.name + " Style: " + tick.style + " Leverage: " + tick.leverage);
        }

        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        foreach (ArthikaHFT.tinterfaceTick tick in tinterfaceTickList)
        {
            Console.WriteLine("Name: " + tick.name + " Account: " + tick.account + " Commissions: " + tick.commissions);
        }

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main4(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // POSITION POLLING

        // get accounts
        List<ArthikaHFT.accountTick> accountTickList = wrapper.getAccount();

        Console.WriteLine("Starting Polling1");
        ArthikaHFT.positionTick positionTickList1 = wrapper.getPosition(null, new List<string> { "EUR/USD", "GBP/JPY", "GBP/USD" }, null);
        Console.WriteLine("StrategyPL: " + positionTickList1.accountingTick.strategyPL + " TotalEquity: " + positionTickList1.accountingTick.totalequity + " UsedMargin: " + positionTickList1.accountingTick.usedmargin + " FreeMargin: " + positionTickList1.accountingTick.freemargin);
        foreach (ArthikaHFT.assetPositionTick tick in positionTickList1.assetPositionTickList)
        {
            Console.WriteLine("Asset: " + tick.asset + " Account: " + tick.account + " Exposure: " + tick.exposure + " TotalRisk: " + tick.totalrisk);
        }
        foreach (ArthikaHFT.securityPositionTick tick in positionTickList1.securityPositionTickList)
        {
            Console.WriteLine("Security: " + tick.security + " Account: " + tick.account + " Equity: " + tick.equity + " Exposure: " + tick.exposure + " Price: " + tick.price.ToString("F" + tick.pips) + " Pips: " + tick.pips);
        }
        Console.WriteLine("Polling1 Finished");

        Console.WriteLine("Starting Polling2");
        List<string> accountlist = null;
        if (accountTickList != null && accountTickList.Count > 1)
        {
            accountlist = new List<string>();
            accountlist.Add(accountTickList[0].name);
            accountlist.Add(accountTickList[1].name);
        }
        ArthikaHFT.positionTick positionTickList2 = wrapper.getPosition(new List<string> { "EUR", "GBP", "JPY", "USD" }, null, accountlist);
        Console.WriteLine("StrategyPL: " + positionTickList2.accountingTick.strategyPL + " TotalEquity: " + positionTickList2.accountingTick.totalequity + " UsedMargin: " + positionTickList2.accountingTick.usedmargin + " FreeMargin: " + positionTickList2.accountingTick.freemargin);
        foreach (ArthikaHFT.assetPositionTick tick in positionTickList2.assetPositionTickList)
        {
            Console.WriteLine("Asset: " + tick.asset + " Account: " + tick.account + " Exposure: " + tick.exposure + " TotalRisk: " + tick.totalrisk);
        }
        foreach (ArthikaHFT.securityPositionTick tick in positionTickList2.securityPositionTickList)
        {
            Console.WriteLine("Security: " + tick.security + " Account: " + tick.account + " Equity: " + tick.equity + " Exposure: " + tick.exposure + " Price: " + tick.price.ToString("F" + tick.pips) + " Pips: " + tick.pips);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
Example #4
0
    public static void Main2(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // PRICE POLLING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        Console.WriteLine("Starting Polling1");
        List <string> tinterfacelist = null;

        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List <string>();
            tinterfacelist.Add(tinterfaceTickList[1].name);
        }
        List <ArthikaHFT.priceTick> priceTickList1 = wrapper.getPrice(new List <string> {
            "EUR/USD", "EUR/GBP", "EUR/JPY", "GBP/JPY", "GBP/USD", "USD/JPY"
        }, tinterfacelist, ArthikaHFT.GRANULARITY_TOB, 1);

        foreach (ArthikaHFT.priceTick tick in priceTickList1)
        {
            Console.WriteLine("Security: " + tick.security + " Price: " + tick.price.ToString("F" + tick.pips) + " Side: " + tick.side + " TI: " + tick.tinterface + " Liquidity: " + tick.liquidity);
        }
        Console.WriteLine("Polling1 Finished");

        Console.WriteLine("Starting Polling2");
        List <ArthikaHFT.priceTick> priceTickList2 = wrapper.getPrice(new List <string> {
            "EUR/USD"
        }, null, ArthikaHFT.GRANULARITY_FAB, 4);

        foreach (ArthikaHFT.priceTick tick in priceTickList2)
        {
            Console.WriteLine("Security: " + tick.security + " Price: " + tick.price.ToString("F" + tick.pips) + " Side: " + tick.side + " TI: " + tick.tinterface + " Liquidity: " + tick.liquidity);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main14(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // HISTORICAL PRICE POLLING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        Console.WriteLine("Starting Candle list 1");
        List <String> tinterfacelist = null;

        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List <string>();
            tinterfacelist.Add(tinterfaceTickList[1].name);
        }
        List <ArthikaHFT.candleTick> candleTickList1 = wrapper.getHistoricalPrice(new List <string> {
            "EUR/USD", "EUR/GBP", "EUR/JPY", "GBP/JPY", "GBP/USD", "USD/JPY"
        }, tinterfacelist, ArthikaHFT.CANDLE_GRANULARITY_10MINUTES, ArthikaHFT.SIDE_ASK, 5);

        foreach (ArthikaHFT.candleTick tick in candleTickList1)
        {
            Console.WriteLine("Security: " + tick.security + " tinterface: " + tick.tinterface + " TimeStamp: " + tick.timestamp + " Side: " + tick.side + " Open: " + tick.open + " High: " + tick.high + " Low: " + tick.low + " Close: " + tick.close + " Ticks: " + tick.ticks);
        }
        Console.WriteLine("Candle list 1 Finished");

        Console.WriteLine("Starting Candle list 2");
        List <ArthikaHFT.candleTick> candleTickList2 = wrapper.getHistoricalPrice(new List <string> {
            "EUR/USD"
        }, null, ArthikaHFT.CANDLE_GRANULARITY_30MINUTES, ArthikaHFT.SIDE_BID, 3);

        foreach (ArthikaHFT.candleTick tick in candleTickList2)
        {
            Console.WriteLine("Security: " + tick.security + " tinterface: " + tick.tinterface + " TimeStamp: " + tick.timestamp + " Side: " + tick.side + " Open: " + tick.open + " High: " + tick.high + " Low: " + tick.low + " Close: " + tick.close + " Ticks: " + tick.ticks);
        }
        Console.WriteLine("Candle list 2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main12(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // STRATEGY

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        tinterface1 = tinterfaceTickList[0].name;
        if (tinterfaceTickList.Count > 1)
        {
            tinterface2 = tinterfaceTickList[1].name;
        }
        else
        {
            tinterface2 = tinterfaceTickList[0].name;
        }
        List <string> tinterfacelist = null;

        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List <string>();
            tinterfacelist.Add(tinterface1);
            tinterfacelist.Add(tinterface2);
        }

        // Open price streaming
        string id1 = wrapper.getPriceBegin(new List <string> {
            "EUR/USD"
        }, tinterfacelist, ArthikaHFT.GRANULARITY_TOB, 1, interval, new ArthikaHFTListenerImp12());

        Thread.Sleep(20000);

        // Close price streaming
        wrapper.getPriceEnd(id1);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main6(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // ORDER POLLING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        Console.WriteLine("Starting Polling1");
        List <ArthikaHFT.orderTick> orderTickList1 = wrapper.getOrder(new List <string> {
            "EUR/USD", "GBP/JPY", "GBP/USD"
        }, null, null);

        foreach (ArthikaHFT.orderTick tick in orderTickList1)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling1 Finished");

        Console.WriteLine("Starting Polling2");
        List <string> tinterfacelist = null;

        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List <String>();
            tinterfacelist.Add(tinterfaceTickList[0].name);
            tinterfacelist.Add(tinterfaceTickList[1].name);
        }
        List <ArthikaHFT.orderTick> orderTickList2 = wrapper.getOrder(null, tinterfacelist, null);

        foreach (ArthikaHFT.orderTick tick in orderTickList2)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main6(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // ORDER POLLING

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        Console.WriteLine("Starting Polling1");
        List<ArthikaHFT.orderTick> orderTickList1 = wrapper.getOrder(new List<string> { "EUR/USD", "GBP/JPY", "GBP/USD" }, null, null);
        foreach (ArthikaHFT.orderTick tick in orderTickList1)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling1 Finished");

        Console.WriteLine("Starting Polling2");
        List<string> tinterfacelist = null;
        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List<String>();
            tinterfacelist.Add(tinterfaceTickList[0].name);
            tinterfacelist.Add(tinterfaceTickList[1].name);
        }
        List<ArthikaHFT.orderTick> orderTickList2 = wrapper.getOrder(null, tinterfacelist, null);
        foreach (ArthikaHFT.orderTick tick in orderTickList2)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
 void ArthikaHFTListener.orderHeartbeatEvent(ArthikaHFT.orderHeartbeat orderHeartbeat)
 {
     Console.Write("Security: ");
     for (int i = 0; i < orderHeartbeat.security.Count; i++)
     {
         Console.Write(orderHeartbeat.security.ElementAt(i));
         if (i < orderHeartbeat.security.Count - 1)
         {
             Console.Write(", ");
         }
     }
     Console.Write(" Interface: ");
     for (int i = 0; i < orderHeartbeat.tinterface.Count; i++)
     {
         Console.Write(orderHeartbeat.tinterface.ElementAt(i));
         if (i < orderHeartbeat.tinterface.Count - 1)
         {
             Console.Write(",");
         }
     }
     Console.WriteLine();
 }
    public static void Main10(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // CANCEL PENDING ORDER WITH ORDER STREAMING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();
        string tinterface1 = tinterfaceTickList[0].name;

        // Open order streaming
        ArthikaHFTListenerImp10 listener = new ArthikaHFTListenerImp10();
        string id1 = wrapper.getOrderBegin(null, null, null, interval, listener);

        Thread.Sleep(5000);

        // get current price
        double price = 0.0;
        List <ArthikaHFT.priceTick> priceTickList1 = wrapper.getPrice(new List <string> {
            "EUR/USD"
        }, new List <string> {
            tinterface1
        }, ArthikaHFT.GRANULARITY_TOB, 1);

        foreach (ArthikaHFT.priceTick tick in priceTickList1)
        {
            price = tick.price;
        }

        // Create pending order. If buy, order price must be lower than current price
        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security    = "EUR/USD";
        order1.tinterface  = tinterface1;
        order1.quantity    = 500000;
        order1.side        = ArthikaHFT.SIDE_BUY;
        order1.type        = ArthikaHFT.TYPE_LIMIT;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;
        order1.price       = price - 0.01;
        List <ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List <ArthikaHFT.orderRequest> {
            order1
        });
        int tempid = -1;

        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
            tempid = orderresponse.tempid;
        }
        Thread.Sleep(5000);

        // Cancel pending order
        Console.WriteLine("Cancel order");
        String fixid = listener.fixidDictionary[tempid];
        List <ArthikaHFT.cancelTick> cancelList = wrapper.cancelOrder(new List <string> {
            fixid
        });

        foreach (ArthikaHFT.cancelTick cancelresponse in cancelList)
        {
            Console.WriteLine("FixId: " + cancelresponse.fixid + " Result: " + cancelresponse.result);
        }
        Console.WriteLine("Order canceled");
        Thread.Sleep(2000);

        // Close order streaming
        wrapper.getOrderEnd(id1);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main13(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // MULTIPLE ORDER CREATION

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();
        string tinterface1 = tinterfaceTickList[0].name;
        string tinterface2;
        if (tinterfaceTickList.Count > 1)
        {
            tinterface2 = tinterfaceTickList[1].name;
        }
        else
        {
            tinterface2 = tinterfaceTickList[0].name;
        }

        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security = "EUR/USD";
        order1.tinterface = tinterface2;
        order1.quantity = 1000000;
        order1.side = ArthikaHFT.SIDE_BUY;
        order1.type = ArthikaHFT.TYPE_MARKET;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;

        ArthikaHFT.orderRequest order2 = new ArthikaHFT.orderRequest();
        order2.security = "EUR/USD";
        order2.tinterface = tinterface1;
        order2.quantity = 1000000;
        order2.side = ArthikaHFT.SIDE_SELL;
        order2.type = ArthikaHFT.TYPE_MARKET;
        order2.timeinforce = ArthikaHFT.VALIDITY_DAY;

        ArthikaHFT.orderRequest order3 = new ArthikaHFT.orderRequest();
        order3.security = "EUR/USD";
        order3.tinterface = tinterface2;
        order3.quantity = 2000000;
        order3.side = ArthikaHFT.SIDE_BUY;
        order3.type = ArthikaHFT.TYPE_MARKET;
        order3.timeinforce = ArthikaHFT.VALIDITY_DAY;

        ArthikaHFT.orderRequest order4 = new ArthikaHFT.orderRequest();
        order4.security = "EUR/USD";
        order4.tinterface = tinterface1;
        order4.quantity = 2000000;
        order4.side = ArthikaHFT.SIDE_SELL;
        order4.type = ArthikaHFT.TYPE_MARKET;
        order4.timeinforce = ArthikaHFT.VALIDITY_DAY;

        ArthikaHFT.orderRequest order5 = new ArthikaHFT.orderRequest();
        order5.security = "EUR/USD";
        order5.tinterface = tinterface2;
        order5.quantity = 1000000;
        order5.side = ArthikaHFT.SIDE_BUY;
        order5.type = ArthikaHFT.TYPE_MARKET;
        order5.timeinforce = ArthikaHFT.VALIDITY_DAY;

        ArthikaHFT.orderRequest order6 = new ArthikaHFT.orderRequest();
        order6.security = "EUR/USD";
        order6.tinterface = tinterface1;
        order6.quantity = 1000000;
        order6.side = ArthikaHFT.SIDE_SELL;
        order6.type = ArthikaHFT.TYPE_MARKET;
        order6.timeinforce = ArthikaHFT.VALIDITY_DAY;

        Console.WriteLine("Starting Polling1");
        List<ArthikaHFT.orderTick> orderTickList1 = wrapper.getOrder(new List<string> { "EUR/USD" }, null, null);
        foreach (ArthikaHFT.orderTick tick in orderTickList1)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling1 Finished");
        Thread.Sleep(5000);

        Console.WriteLine("Sending order");
        List<ArthikaHFT.orderRequest> orderList1 = wrapper.setOrder(new List<ArthikaHFT.orderRequest> { order1, order2, order3, order4, order5, order6, order1, order2, order3, order4, order5, order6, order1, order2, order3, order4, order5, order6 });
        foreach (ArthikaHFT.orderRequest orderresponse in orderList1)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
        }
        List<ArthikaHFT.orderRequest> orderList2 = wrapper.setOrder(new List<ArthikaHFT.orderRequest> { order1, order2, order3, order4, order5, order6, order1, order2, order3, order4, order5, order6, order1, order2, order3, order4, order5, order6 });
        foreach (ArthikaHFT.orderRequest orderresponse in orderList2)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
        }
        List<ArthikaHFT.orderRequest> orderList3 = wrapper.setOrder(new List<ArthikaHFT.orderRequest> { order1, order2, order3, order4, order5, order6, order1, order2, order3, order4, order5, order6, order1, order2, order3, order4, order5, order6 });
        foreach (ArthikaHFT.orderRequest orderresponse in orderList3)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
        }
        Console.WriteLine("Order sended");
        Thread.Sleep(5000);

        Console.WriteLine("Starting Polling2");
        List<ArthikaHFT.orderTick> orderTickList2 = wrapper.getOrder(new List<string> { "EUR/USD" }, null, null);
        foreach (ArthikaHFT.orderTick tick in orderTickList2)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.finishedquantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main3(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // POSITION STREAMING

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        string tinterface1 = tinterfaceTickList[0].name;
        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security = "EUR/USD";
        order1.tinterface = tinterface1;
        order1.quantity = 400000;
        order1.side = ArthikaHFT.SIDE_SELL;
        order1.type = ArthikaHFT.TYPE_LIMIT;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;
        order1.price = 1.15548;

        string tinterface2;
        if (tinterfaceTickList.Count > 1)
        {
            tinterface2 = tinterfaceTickList[1].name;
        }
        else
        {
            tinterface2 = tinterfaceTickList[0].name;
        }
        ArthikaHFT.orderRequest order2 = new ArthikaHFT.orderRequest();
        order2.security = "GBP/USD";
        order2.tinterface = tinterface2;
        order2.quantity = 500000;
        order2.side = ArthikaHFT.SIDE_BUY;
        order2.type = ArthikaHFT.TYPE_LIMIT;
        order2.timeinforce = ArthikaHFT.VALIDITY_FILLORKILL;
        order2.price = 1.67389;

        // Open position streaming
        string id1 = wrapper.getPositionBegin(null, new List<string> { "EUR/USD", "GBP/USD" }, null, interval, new ArthikaHFTListenerImp3());
        Thread.Sleep(5000);

        // Create two orders
        List<ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List<ArthikaHFT.orderRequest> { order1, order2 });
        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
        }
        Thread.Sleep(5000);

        // Close position streaming
        wrapper.getPositionEnd(id1);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main3(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // POSITION STREAMING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        string tinterface1 = tinterfaceTickList[0].name;

        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security    = "EUR/USD";
        order1.tinterface  = tinterface1;
        order1.quantity    = 400000;
        order1.side        = ArthikaHFT.SIDE_SELL;
        order1.type        = ArthikaHFT.TYPE_LIMIT;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;
        order1.price       = 1.15548;

        string tinterface2;

        if (tinterfaceTickList.Count > 1)
        {
            tinterface2 = tinterfaceTickList[1].name;
        }
        else
        {
            tinterface2 = tinterfaceTickList[0].name;
        }
        ArthikaHFT.orderRequest order2 = new ArthikaHFT.orderRequest();
        order2.security    = "GBP/USD";
        order2.tinterface  = tinterface2;
        order2.quantity    = 500000;
        order2.side        = ArthikaHFT.SIDE_BUY;
        order2.type        = ArthikaHFT.TYPE_LIMIT;
        order2.timeinforce = ArthikaHFT.VALIDITY_FILLORKILL;
        order2.price       = 1.67389;

        // Open position streaming
        string id1 = wrapper.getPositionBegin(null, new List <string> {
            "EUR/USD", "GBP/USD"
        }, null, interval, new ArthikaHFTListenerImp3());

        Thread.Sleep(5000);

        // Create two orders
        List <ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List <ArthikaHFT.orderRequest> {
            order1, order2
        });

        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
        }
        Thread.Sleep(5000);

        // Close position streaming
        wrapper.getPositionEnd(id1);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
Example #14
0
    public static void Main9(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // MODIFY PENDING ORDER WITH ORDER POLLING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();
        string tinterface1 = tinterfaceTickList[0].name;

        Console.WriteLine("Starting Polling1");
        List <ArthikaHFT.orderTick> orderTickList1 = wrapper.getOrder(null, null, new List <string> {
            ArthikaHFT.ORDERTYPE_PENDING
        });

        foreach (ArthikaHFT.orderTick tick in orderTickList1)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status + " Price: " + tick.limitprice);
        }
        Console.WriteLine("Polling1 Finished");
        Thread.Sleep(2000);

        // get current price
        double price = 0.0;
        List <ArthikaHFT.priceTick> priceTickList1 = wrapper.getPrice(new List <string> {
            "EUR/USD"
        }, new List <string> {
            tinterface1
        }, ArthikaHFT.GRANULARITY_TOB, 1);

        foreach (ArthikaHFT.priceTick tick in priceTickList1)
        {
            price = tick.price;
        }

        // Create pending order. If buy, order price must be lower than current price
        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security    = "EUR/USD";
        order1.tinterface  = tinterface1;
        order1.quantity    = 500000;
        order1.side        = ArthikaHFT.SIDE_BUY;
        order1.type        = ArthikaHFT.TYPE_LIMIT;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;
        order1.price       = price - 0.01;

        Console.WriteLine("Sending order");
        int    tempid = -1;
        string fixid  = "";
        List <ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List <ArthikaHFT.orderRequest> {
            order1
        });

        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
            tempid = orderresponse.tempid;
        }
        Console.WriteLine("Order sended order");
        Thread.Sleep(2000);

        Console.WriteLine("Starting Polling2");
        List <ArthikaHFT.orderTick> orderTickList2 = wrapper.getOrder(null, null, new List <string> {
            ArthikaHFT.ORDERTYPE_PENDING
        });

        foreach (ArthikaHFT.orderTick tick in orderTickList2)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status + " Price: " + tick.limitprice);
            if (tempid == tick.tempid)
            {
                fixid = tick.fixid;
            }
        }
        Console.WriteLine("Polling2 Finished");
        Thread.Sleep(2000);

        Console.WriteLine("Modify order");
        ArthikaHFT.modOrder ordermod = new ArthikaHFT.modOrder();
        ordermod.fixid    = fixid;
        ordermod.price    = price - 0.015;
        ordermod.quantity = 200000;
        List <ArthikaHFT.modifyTick> modifyList = wrapper.modifyOrder(new List <ArthikaHFT.modOrder> {
            ordermod
        });

        foreach (ArthikaHFT.modifyTick modifyresponse in modifyList)
        {
            Console.WriteLine("FixId: " + modifyresponse.fixid + " Result: " + modifyresponse.result);
        }
        Console.WriteLine("Order modified");
        Thread.Sleep(2000);

        Console.WriteLine("Starting Polling3");
        List <ArthikaHFT.orderTick> orderTickList3 = wrapper.getOrder(null, null, new List <string> {
            ArthikaHFT.ORDERTYPE_PENDING
        });

        foreach (ArthikaHFT.orderTick tick in orderTickList3)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status + " Price: " + tick.limitprice);
        }
        Console.WriteLine("Polling3 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main7(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // ORDER CREATION

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        string tinterface;

        if (tinterfaceTickList.Count > 1)
        {
            tinterface = tinterfaceTickList[1].name;
        }
        else
        {
            tinterface = tinterfaceTickList[0].name;
        }

        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security   = "EUR/USD";
        order1.tinterface = tinterface;
        order1.quantity   = 500000;
        order1.side       = ArthikaHFT.SIDE_BUY;
        order1.type       = ArthikaHFT.TYPE_MARKET;

        Console.WriteLine("Starting Polling1");
        List <ArthikaHFT.orderTick> orderTickList1 = wrapper.getOrder(new List <string> {
            "EUR/USD"
        }, new List <string> {
            tinterface
        }, null);

        foreach (ArthikaHFT.orderTick tick in orderTickList1)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling1 Finished");
        Thread.Sleep(2000);

        Console.WriteLine("Sending order");
        List <ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List <ArthikaHFT.orderRequest> {
            order1
        });

        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
        }
        Console.WriteLine("Order sended");
        Thread.Sleep(2000);

        Console.WriteLine("Starting Polling2");
        List <ArthikaHFT.orderTick> orderTickList2 = wrapper.getOrder(new List <string> {
            "EUR/USD"
        }, new List <string> {
            tinterface
        }, null);

        foreach (ArthikaHFT.orderTick tick in orderTickList2)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main4(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // POSITION POLLING

        // get accounts
        List <ArthikaHFT.accountTick> accountTickList = wrapper.getAccount();

        Console.WriteLine("Starting Polling1");
        ArthikaHFT.positionTick positionTickList1 = wrapper.getPosition(null, new List <string> {
            "EUR/USD", "GBP/JPY", "GBP/USD"
        }, null);
        Console.WriteLine("StrategyPL: " + positionTickList1.accountingTick.strategyPL + " TotalEquity: " + positionTickList1.accountingTick.totalequity + " UsedMargin: " + positionTickList1.accountingTick.usedmargin + " FreeMargin: " + positionTickList1.accountingTick.freemargin);
        foreach (ArthikaHFT.assetPositionTick tick in positionTickList1.assetPositionTickList)
        {
            Console.WriteLine("Asset: " + tick.asset + " Account: " + tick.account + " Exposure: " + tick.exposure + " TotalRisk: " + tick.totalrisk);
        }
        foreach (ArthikaHFT.securityPositionTick tick in positionTickList1.securityPositionTickList)
        {
            Console.WriteLine("Security: " + tick.security + " Account: " + tick.account + " Equity: " + tick.equity + " Exposure: " + tick.exposure + " Price: " + tick.price.ToString("F" + tick.pips) + " Pips: " + tick.pips);
        }
        Console.WriteLine("Polling1 Finished");

        Console.WriteLine("Starting Polling2");
        List <string> accountlist = null;

        if (accountTickList != null && accountTickList.Count > 1)
        {
            accountlist = new List <string>();
            accountlist.Add(accountTickList[0].name);
            accountlist.Add(accountTickList[1].name);
        }
        ArthikaHFT.positionTick positionTickList2 = wrapper.getPosition(new List <string> {
            "EUR", "GBP", "JPY", "USD"
        }, null, accountlist);
        Console.WriteLine("StrategyPL: " + positionTickList2.accountingTick.strategyPL + " TotalEquity: " + positionTickList2.accountingTick.totalequity + " UsedMargin: " + positionTickList2.accountingTick.usedmargin + " FreeMargin: " + positionTickList2.accountingTick.freemargin);
        foreach (ArthikaHFT.assetPositionTick tick in positionTickList2.assetPositionTickList)
        {
            Console.WriteLine("Asset: " + tick.asset + " Account: " + tick.account + " Exposure: " + tick.exposure + " TotalRisk: " + tick.totalrisk);
        }
        foreach (ArthikaHFT.securityPositionTick tick in positionTickList2.securityPositionTickList)
        {
            Console.WriteLine("Security: " + tick.security + " Account: " + tick.account + " Equity: " + tick.equity + " Exposure: " + tick.exposure + " Price: " + tick.price.ToString("F" + tick.pips) + " Pips: " + tick.pips);
        }
        Console.WriteLine("Polling2 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main12(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // STRATEGY

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();
        tinterface1 = tinterfaceTickList[0].name;
        if (tinterfaceTickList.Count > 1)
        {
            tinterface2 = tinterfaceTickList[1].name;
        }
        else
        {
            tinterface2 = tinterfaceTickList[0].name;
        }
        List<string> tinterfacelist = null;
        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List<string>();
            tinterfacelist.Add(tinterface1);
            tinterfacelist.Add(tinterface2);
        }

        // Open price streaming
        string id1 = wrapper.getPriceBegin(new List<string> { "EUR/USD" }, tinterfacelist, ArthikaHFT.GRANULARITY_TOB, 1, interval, new ArthikaHFTListenerImp12());
        Thread.Sleep(20000);

        // Close price streaming
        wrapper.getPriceEnd(id1);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main10(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // CANCEL PENDING ORDER WITH ORDER STREAMING

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();
        string tinterface1 = tinterfaceTickList[0].name;

        // Open order streaming
        ArthikaHFTListenerImp10 listener = new ArthikaHFTListenerImp10();
        string id1 = wrapper.getOrderBegin(null, null, null, interval, listener);
        Thread.Sleep(5000);

        // get current price
        double price = 0.0;
        List<ArthikaHFT.priceTick> priceTickList1 = wrapper.getPrice(new List<string> { "EUR/USD" }, new List<string> { tinterface1 }, ArthikaHFT.GRANULARITY_TOB, 1);
        foreach (ArthikaHFT.priceTick tick in priceTickList1)
        {
            price = tick.price;
        }

        // Create pending order. If buy, order price must be lower than current price
        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security = "EUR/USD";
        order1.tinterface = tinterface1;
        order1.quantity = 500000;
        order1.side = ArthikaHFT.SIDE_BUY;
        order1.type = ArthikaHFT.TYPE_LIMIT;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;
        order1.price = price - 0.01;
        List<ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List<ArthikaHFT.orderRequest> { order1 });
        int tempid = -1;
        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
            tempid = orderresponse.tempid;
        }
        Thread.Sleep(5000);

        // Cancel pending order
        Console.WriteLine("Cancel order");
        String fixid = listener.fixidDictionary[tempid];
        List<ArthikaHFT.cancelTick> cancelList = wrapper.cancelOrder(new List<string> { fixid });
        foreach (ArthikaHFT.cancelTick cancelresponse in cancelList)
        {
            Console.WriteLine("FixId: " + cancelresponse.fixid + " Result: " + cancelresponse.result);
        }
        Console.WriteLine("Order canceled");
        Thread.Sleep(2000);

        // Close order streaming
        wrapper.getOrderEnd(id1);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
 void ArthikaHFTListener.accountingEvent(ArthikaHFT.accountingTick accountingTick)
 {
     Console.WriteLine("StrategyPL: " + accountingTick.strategyPL + " TotalEquity: " + accountingTick.totalequity + " UsedMargin: " + accountingTick.usedmargin + " FreeMargin: " + accountingTick.freemargin);
 }
    public static void Main8(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // CANCEL PENDING ORDER WITH ORDER POLLING

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();
        string tinterface1 = tinterfaceTickList[0].name;

        Console.WriteLine("Starting Polling1");
        List<ArthikaHFT.orderTick> orderTickList1 = wrapper.getOrder(null, null, new List<string> { ArthikaHFT.ORDERTYPE_PENDING, ArthikaHFT.ORDERTYPE_CANCELED });
        foreach (ArthikaHFT.orderTick tick in orderTickList1)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status + " Price: " + tick.limitprice);
        }
        Console.WriteLine("Polling1 Finished");
        Thread.Sleep(2000);

        // get current price
        double price = 0.0;
        List<ArthikaHFT.priceTick> priceTickList1 = wrapper.getPrice(new List<string> { "EUR/USD" }, new List<string> { tinterface1 }, ArthikaHFT.GRANULARITY_TOB, 1);
        foreach (ArthikaHFT.priceTick tick in priceTickList1)
        {
            price = tick.price;
        }

        // Create pending order. If buy, order price must be lower than current price
        ArthikaHFT.orderRequest order1 = new ArthikaHFT.orderRequest();
        order1.security = "EUR/USD";
        order1.tinterface = tinterface1;
        order1.quantity = 500000;
        order1.side = ArthikaHFT.SIDE_BUY;
        order1.type = ArthikaHFT.TYPE_LIMIT;
        order1.timeinforce = ArthikaHFT.VALIDITY_DAY;
        order1.price = price - 0.01;

        Console.WriteLine("Sending order");
        int tempid = -1;
        string fixid = "";
        List<ArthikaHFT.orderRequest> orderList = wrapper.setOrder(new List<ArthikaHFT.orderRequest> { order1 });
        foreach (ArthikaHFT.orderRequest orderresponse in orderList)
        {
            Console.WriteLine("Id: " + orderresponse.tempid + " Security: " + orderresponse.security + " Side: " + orderresponse.side + " Quantity: " + orderresponse.quantity + " Price: " + orderresponse.price + " Type: " + orderresponse.type);
            tempid = orderresponse.tempid;
        }
        Console.WriteLine("Order sended order");
        Thread.Sleep(2000);

        Console.WriteLine("Starting Polling2");
        List<ArthikaHFT.orderTick> orderTickList2 = wrapper.getOrder(null, null, new List<string> { ArthikaHFT.ORDERTYPE_PENDING, ArthikaHFT.ORDERTYPE_CANCELED });
        foreach (ArthikaHFT.orderTick tick in orderTickList2)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status + " Price: " + tick.limitprice);
            if (tempid == tick.tempid)
            {
                fixid = tick.fixid;
            }
        }
        Console.WriteLine("Polling2 Finished");
        Thread.Sleep(2000);

        Console.WriteLine("Cancel order");
        List<ArthikaHFT.cancelTick> cancelList = wrapper.cancelOrder(new List<string> { fixid });
        foreach (ArthikaHFT.cancelTick cancelresponse in cancelList)
        {
            Console.WriteLine("FixId: " + cancelresponse.fixid + " Result: " + cancelresponse.result);
        }
        Console.WriteLine("Order canceled");
        Thread.Sleep(2000);

        Console.WriteLine("Starting Polling3");
        List<ArthikaHFT.orderTick> orderTickList3 = wrapper.getOrder(null, null, new List<string> { ArthikaHFT.ORDERTYPE_PENDING, ArthikaHFT.ORDERTYPE_CANCELED });
        foreach (ArthikaHFT.orderTick tick in orderTickList3)
        {
            Console.WriteLine("TempId: " + tick.tempid + " OrderId: " + tick.orderid + " Security: " + tick.security + " Account: " + tick.account + " Quantity: " + tick.quantity + " Type: " + tick.type + " Side: " + tick.side + " Status: " + tick.status + " Price: " + tick.limitprice);
        }
        Console.WriteLine("Polling3 Finished");

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
    public static void Main1(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();
        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // PRICE STREAMING

        // get tinterfaces
        List<ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        // Open first price streaming for one security in all tinterfaces
        string id1 = wrapper.getPriceBegin(new List<string> { "GBP/USD" }, null, ArthikaHFT.GRANULARITY_TOB, 1, interval, new ArthikaHFTListenerImp1());
        Thread.Sleep(5000);

        // Open second price streaming for two securities in the two first tinterfaces
        List<String> tinterfacelist = null;
        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List<string>();
            tinterfacelist.Add(tinterfaceTickList.ElementAt(0).name);
            tinterfacelist.Add(tinterfaceTickList.ElementAt(1).name);
        }
        string id2 = wrapper.getPriceBegin(new List<string> { "EUR/USD", "GBP/JPY" }, tinterfacelist, ArthikaHFT.GRANULARITY_FAB, 2, interval, new ArthikaHFTListenerImp1());
        Thread.Sleep(5000);

        // Close second price streaming
        wrapper.getPriceEnd(id2);
        Thread.Sleep(5000);

        // Close first price streaming
        wrapper.getPriceEnd(id1);
        Thread.Sleep(5000);

        // Open third price streaming for six securities in the first tinterface
        if (tinterfaceTickList != null && tinterfaceTickList.Count > 0)
        {
            tinterfacelist = new List<string>();
            tinterfacelist.Add(tinterfaceTickList.ElementAt(0).name);
        }
        string id3 = wrapper.getPriceBegin(new List<string> { "EUR/USD", "EUR/GBP", "EUR/JPY", "GBP/JPY", "GBP/USD", "USD/JPY" }, tinterfacelist, ArthikaHFT.GRANULARITY_TOB, 1, interval, new ArthikaHFTListenerImp1());
        Thread.Sleep(5000);

        // Close third price streaming
        wrapper.getPriceEnd(id3);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }
Example #22
0
    public static void Main1(string[] args)
    {
        // get properties from file
        getProperties();

        wrapper = new ArthikaHFT(domain, url_stream, url_polling, url_challenge, url_token, user, password, authentication_port, request_port, ssl, ssl_cert);

        bool auth = wrapper.doAuthentication();

        if (!auth)
        {
            Console.WriteLine("Authentication failed");
            Console.Read();
            return;
        }

        // PRICE STREAMING

        // get tinterfaces
        List <ArthikaHFT.tinterfaceTick> tinterfaceTickList = wrapper.getInterface();

        // Open first price streaming for one security in all tinterfaces
        string id1 = wrapper.getPriceBegin(new List <string> {
            "GBP/USD"
        }, null, ArthikaHFT.GRANULARITY_TOB, 1, interval, new ArthikaHFTListenerImp1());

        Thread.Sleep(5000);

        // Open second price streaming for two securities in the two first tinterfaces
        List <String> tinterfacelist = null;

        if (tinterfaceTickList != null && tinterfaceTickList.Count > 1)
        {
            tinterfacelist = new List <string>();
            tinterfacelist.Add(tinterfaceTickList.ElementAt(0).name);
            tinterfacelist.Add(tinterfaceTickList.ElementAt(1).name);
        }
        string id2 = wrapper.getPriceBegin(new List <string> {
            "EUR/USD", "GBP/JPY"
        }, tinterfacelist, ArthikaHFT.GRANULARITY_FAB, 2, interval, new ArthikaHFTListenerImp1());

        Thread.Sleep(5000);

        // Close second price streaming
        wrapper.getPriceEnd(id2);
        Thread.Sleep(5000);

        // Close first price streaming
        wrapper.getPriceEnd(id1);
        Thread.Sleep(5000);

        // Open third price streaming for six securities in the first tinterface
        if (tinterfaceTickList != null && tinterfaceTickList.Count > 0)
        {
            tinterfacelist = new List <string>();
            tinterfacelist.Add(tinterfaceTickList.ElementAt(0).name);
        }
        string id3 = wrapper.getPriceBegin(new List <string> {
            "EUR/USD", "EUR/GBP", "EUR/JPY", "GBP/JPY", "GBP/USD", "USD/JPY"
        }, tinterfacelist, ArthikaHFT.GRANULARITY_TOB, 1, interval, new ArthikaHFTListenerImp1());

        Thread.Sleep(5000);

        // Close third price streaming
        wrapper.getPriceEnd(id3);

        Console.WriteLine("Press Enter to exit");
        Console.Read();
    }