.NET (dot NET) Forex Data Feed API

This Forex Data API is an Application Programming Interface which helps you build custom applications using the Microsoft © .NET (dot NET) framework.

This API is provided free of charge to all ForexFeed.net clients. Please login to download this example and the .NET data API itself.

See the examples below (C# and VB) which make use of the .NET Forex Data Feed API to handle all the underlying logic. As you can see the API greatly simplifies many use cases.

Note: these are very simple examples of using the .NET Forex Data API. These examples illustrate how to retrieve data and print it to the standard System.Console.


C# (c-sharp) .NET example

using System;
using System.Collections;

// Load the ForexFeed.net API
using forexfeed.net;

class
ForexFeedExample {

   
//    ------------------------------------------
    //    EDIT THE FOLLOWING VARIABLES
    //   
   
private static string access_key = "YOUR_ACCESS_KEY";
    private static
string symbol = "EURUSD,GBPUSD,USDCHF,USDCAD,AUDUSD";
    private static
int interval = 3600;
    private static
int periods = 1;
    private static
string price = "mid";
   
   
//    END VARIABLES
    //    ------------------------------------------
    //  

    //   ------------------------------------------
    //   Main
    //  
   
static void Main() {
       
//  Create the ForexFeed Object
       
feedapi fxfeed = new feedapi(access_key, symbol, interval, periods, price);

       
//  Display the Quotes
       
printData(fxfeed);
       
//  Display the available Intervals
       
printIntervals(fxfeed);
       
//  Display the available Symbols
       
printSymbols(fxfeed);

    }


   
// '' 
    // ''  Get the data and print it to System.out
    // ''  
   
private static void printData(feedapi fxfeed) {
       
//    
        //   Fetch the Data
        //     
       
ArrayList quotes = fxfeed.getData();
       
Console.WriteLine("-------- Quotes --------");
        if (
fxfeed.getStatus().Equals("OK")) {
           
Console.WriteLine(("Number of Quotes: " + fxfeed.getNumQuotes()));
           
Console.WriteLine(("Copyright: " + fxfeed.getCopyright()));
           
Console.WriteLine(("Website: " + fxfeed.getWebsite()));
           
Console.WriteLine(("License: " + fxfeed.getLicense()));
           
Console.WriteLine(("Redistribution: " + fxfeed.getRedistribution()));
           
Console.WriteLine(("AccessPeriod: " + fxfeed.getAccessPeriod()));
           
Console.WriteLine(("AccessPerPeriod: " + fxfeed.getAccessPerPeriod()));
           
Console.WriteLine(("AccessThisPeriod: " + fxfeed.getAccessThisPeriod()));
           
Console.WriteLine(("AccessRemainingThisPeriod: " + fxfeed.getAccessPeriodRemaining()));
           
Console.WriteLine(("AccessPeriodBegan: " + fxfeed.getAccessPeriodBegan()));
           
Console.WriteLine(("NextAccessPeriodStarts: " + fxfeed.getAccessPeriodStarts()));

           
//      
            //   Get an Iterator object for the quotes ArrayList using iterator() method.
            //       
           
IEnumerator itr = quotes.GetEnumerator();

           
//      
            //   Iterate through the ArrayList iterator
            //       
           
Console.WriteLine("----------------------------------------");
           
Console.WriteLine("Iterating through Quotes...");
           
Console.WriteLine("----------------------------------------");
            while (
itr.MoveNext()){
               
Hashtable quote = ((Hashtable)(itr.Current));
               
Console.WriteLine(("Quote Symbol: " + quote["symbol"]));
               
Console.WriteLine(("Title: " + quote["title"]));
               
Console.WriteLine(("Time: " + quote["time"]));

                if ((
fxfeed.getInterval() == 1)) {
                    if (
fxfeed.getPrice().Equals("bid,ask")) {
                       
Console.WriteLine(("Bid: " + quote["bid"]));
                       
Console.WriteLine(("Ask: " + quote["ask"]));
                    }
                    else {
                       
Console.WriteLine(("Price: " + quote["price"]));
                    }
                }
                else {
                   
Console.WriteLine(("Open: " + quote["open"]));
                   
Console.WriteLine(("High: " + quote["high"]));
                   
Console.WriteLine(("Low: " + quote["low"]));
                   
Console.WriteLine(("Close: " + quote["close"]));
                }
               
Console.WriteLine("");
            }
        }
        else {
           
Console.WriteLine(("Status: " + fxfeed.getStatus()));
           
Console.WriteLine(("ErrorCode: " + fxfeed.getErrorCode()));
           
Console.WriteLine(("ErrorMessage: " + fxfeed.getErrorMessage()));
        }
    }

   
// '' 
    // ''  Print the Intervals to System.out
    // ''  
   
private static void printIntervals(feedapi fxfeed) {
       
//    
        //   Fetch the Intervals
        //     
       
Hashtable intervals = fxfeed.getAvailableIntervals(false);
       
Console.WriteLine("-------- Intervals --------");
        if (
fxfeed.getStatus().Equals("OK")) {
           
//      
            //   Get a Collection of values contained in HashMap
            //       
           
ICollection c = intervals.Values;

           
//      
            //   Obtain an Iterator for Collection
            //       
           
IEnumerator itr = c.GetEnumerator();

           
//      
            //   Iterate through the HashMap values iterator
            //       
           
while (itr.MoveNext()) {
               
Hashtable value = ((Hashtable)(itr.Current));
               
Console.WriteLine(("Interval: " + value["interval"]));
               
Console.WriteLine(("Title: " + value["title"]));
               
Console.WriteLine("");
            }
        }
        else {
           
Console.WriteLine(("Status: " + fxfeed.getStatus()));
           
Console.WriteLine(("ErrorCode: " + fxfeed.getErrorCode()));
           
Console.WriteLine(("ErrorMessage: " + fxfeed.getErrorMessage()));
        }
    }

   
// '' 
    // ''  Print the Symbols to System.out
    // ''  
   
private static void printSymbols(feedapi fxfeed) {
       
//    
        //   Fetch the Symbols
        //     
       
Hashtable symbols = fxfeed.getAvailableSymbols(false);
       
Console.WriteLine("-------- Symbols --------");
        if (
fxfeed.getStatus().Equals("OK")) {
           
//      
            //   Get a Collection of values contained in HashMap
            //       
           
ICollection c = symbols.Values;

           
//      
            //   Obtain an Iterator for Collection
            //       
           
IEnumerator itr = c.GetEnumerator();

           
//      
            //   Iterate through the HashMap values iterator
            //       
           
while (itr.MoveNext()) {
               
Hashtable value = ((Hashtable)(itr.Current));
               
Console.WriteLine(("Symbol: " + value["symbol"]));
               
Console.WriteLine(("Title: " + value["title"]));
               
Console.WriteLine(("Decimals: " + value["decimals"]));
               
Console.WriteLine("");
            }
        }
        else {
           
Console.WriteLine(("Status: " + fxfeed.getStatus()));
           
Console.WriteLine(("ErrorCode: " + fxfeed.getErrorCode()));
           
Console.WriteLine(("ErrorMessage: " + fxfeed.getErrorMessage()));
        }
    }



VB (Visual Basic) .NET example

Imports System
Imports System
.Collections

' Load the ForexFeed.net API
Imports forexfeed.net


Module ForexFeedExample

    '  
------------------------------------------
   
'   EDIT THE FOLLOWING VARIABLES
    '  
   
Private access_key As String = "YOUR_ACCESS_KEY"
   
Private symbol As String = "EURUSD,GBPUSD,USDCHF,USDCAD,AUDUSD"
   
Private interval As Integer = 3600
   
Private periods As Integer = 1
   
Private price As String = "mid"

    '   END VARIABLES
    '   
------------------------------------------
   
'  


    '  
------------------------------------------
   
'   Main
    '  
   
Sub Main()

       
' Create the ForexFeed Object
        Dim fxfeed As New feedapi(access_key, symbol, interval, periods, price)

        '
Display the Quotes
        printData
(fxfeed)

       
' Display the available Intervals
        printIntervals(fxfeed)

        '
Display the available Symbols
        printSymbols
(fxfeed)
   
End Sub




   
''' 
    ''' 
Get the data and print it to System.out
   
'''  
    Private Sub printData(ByVal fxfeed As feedapi)

        '   
        '  Fetch the Data
        '    
       
Dim quotes As ArrayList = fxfeed.getData()

       
Console.WriteLine("-------- Quotes --------")
        If
fxfeed.getStatus().Equals("OK") Then

            Console
.WriteLine("Number of Quotes: " & fxfeed.getNumQuotes())
           
Console.WriteLine("Copyright: " & fxfeed.getCopyright())
           
Console.WriteLine("Website: " & fxfeed.getWebsite())
           
Console.WriteLine("License: " & fxfeed.getLicense())
           
Console.WriteLine("Redistribution: " & fxfeed.getRedistribution())
           
Console.WriteLine("AccessPeriod: " & fxfeed.getAccessPeriod())
           
Console.WriteLine("AccessPerPeriod: " & fxfeed.getAccessPerPeriod())
           
Console.WriteLine("AccessThisPeriod: " & fxfeed.getAccessThisPeriod())
           
Console.WriteLine("AccessRemainingThisPeriod: " & fxfeed.getAccessPeriodRemaining())
           
Console.WriteLine("AccessPeriodBegan: " & fxfeed.getAccessPeriodBegan())
           
Console.WriteLine("NextAccessPeriodStarts: " & fxfeed.getAccessPeriodStarts())

           
'     
            ' 
Get an Iterator object for the quotes ArrayList using iterator() method.
           
'      
            Dim itr As Collections.IEnumerator = quotes.GetEnumerator()

            '     
            '  Iterate through the ArrayList iterator
            '      
           
Console.WriteLine("----------------------------------------")
           
Console.WriteLine("Iterating through Quotes...")
           
Console.WriteLine("----------------------------------------")
            Do While
itr.MoveNext()
               
Dim quote As Hashtable = CType(itr.Current, Hashtable)

               
Console.WriteLine("Quote Symbol: " & quote("symbol"))
               
Console.WriteLine("Title: " & quote("title"))
               
Console.WriteLine("Time: " & quote("time"))

                If
fxfeed.getInterval() = 1 Then
                   
If fxfeed.getPrice().Equals("bid,ask") Then
                        Console
.WriteLine("Bid: " & quote("bid"))
                       
Console.WriteLine("Ask: " & quote("ask"))
                    Else
                       
Console.WriteLine("Price: " & quote("price"))
                   
End If
                Else
                   
Console.WriteLine("Open: " & quote("open"))
                   
Console.WriteLine("High: " & quote("high"))
                   
Console.WriteLine("Low: " & quote("low"))
                   
Console.WriteLine("Close: " & quote("close"))
               
End If
               
Console.WriteLine("")

           
Loop

       
Else
           
Console.WriteLine("Status: " & fxfeed.getStatus())
           
Console.WriteLine("ErrorCode: " & fxfeed.getErrorCode())
           
Console.WriteLine("ErrorMessage: " & fxfeed.getErrorMessage())
       
End If

   
End Sub

   
''' 
    ''' 
Print the Intervals to System.out
   
'''  
    Private Sub printIntervals(ByVal fxfeed As feedapi)

        '   
        '  Fetch the Intervals
        '    
       
Dim intervals As Hashtable = fxfeed.getAvailableIntervals(False)


       
Console.WriteLine("-------- Intervals --------")
        If
fxfeed.getStatus().Equals("OK") Then

           
'     
            ' 
Get a Collection of values contained in HashMap
           
'      
            Dim c As ICollection = intervals.Values

            '     
            '  Obtain an Iterator for Collection
            '      
           
Dim itr As Collections.IEnumerator = c.GetEnumerator()

           
'     
            ' 
Iterate through the HashMap values iterator
           
'      
            Do While itr.MoveNext()
                Dim value As Hashtable = CType(itr.Current, Hashtable)
                Console.WriteLine("Interval: " & value("interval"))
                Console.WriteLine("Title: " & value("title"))
                Console.WriteLine("")
            Loop
        Else
            Console.WriteLine("Status: " & fxfeed.getStatus())
            Console.WriteLine("ErrorCode: " & fxfeed.getErrorCode())
            Console.WriteLine("ErrorMessage: " & fxfeed.getErrorMessage())
        End If

    End Sub

    ''' 
    '''  Print the Symbols to System.out
    '''  
   
Private Sub printSymbols(ByVal fxfeed As feedapi)

       
'   
        ' 
Fetch the Symbols
       
'    
        Dim symbols As Hashtable = fxfeed.getAvailableSymbols(False)

        Console.WriteLine("-------- Symbols --------")
        If fxfeed.getStatus().Equals("OK") Then

            '     
            '  Get a Collection of values contained in HashMap
            '      
           
Dim c As ICollection = symbols.Values

           
'     
            ' 
Obtain an Iterator for Collection
           
'      
            Dim itr As Collections.IEnumerator = c.GetEnumerator()

            '     
            '  Iterate through the HashMap values iterator
            '      
           
Do While itr.MoveNext()
               
Dim value As Hashtable = CType(itr.Current, Hashtable)
               
Console.WriteLine("Symbol: " & value("symbol"))
               
Console.WriteLine("Title: " & value("title"))
               
Console.WriteLine("Decimals: " & value("decimals"))
               
Console.WriteLine("")
           
Loop
       
Else
           
Console.WriteLine("Status: " & fxfeed.getStatus())
           
Console.WriteLine("ErrorCode: " & fxfeed.getErrorCode())
           
Console.WriteLine("ErrorMessage: " & fxfeed.getErrorMessage())
       
End If

   
End Sub

End Module