-
Notifications
You must be signed in to change notification settings - Fork 2
PLUS_DI
This API returns the plus directional indicator (PLUS_DI) values. The related REST API documentation is here
The very first thing to do before diving into PLUS_DI calls is to include the right namespace.
using Avapi.AvapiPLUS_DI
The PLUS_DI object is retrieved from the Connection object.
The snippet below shows how to get the Connection object:
...
IAvapiConnection connection = AvapiConnection.Instance
connection.Connect("Your Alpha Vantage API Key !!!!");
...
Once you got the Connection object you can extract the PLUS_DI from it.
...
Int_PLUS_DI plusdi =
connection.GetQueryObject_PLUS_DI();
To perform a PLUS_DI request you have 2 options:
- The request with constants:
IAvapiResponse_PLUS_DI Query(string symbol,
PLUS_DI_interval interval,
int time_period);
- The request without constants:
IAvapiResponse_PLUS_DI QueryPrimitive(string symbol,
string interval,
string time_period);
To perform an PLUS_DI asynchronous request you have 2 options:
- The request with constants:
async Task<IAvapiResponse_PLUS_DI> QueryAsync(string symbol,
PLUS_DI_interval interval,
int time_period);
- The request without constants:
async Task<IAvapiResponse_PLUS_DI> QueryAsync(string symbol,
string interval,
string time_period);
The parameters below are needed to perform the PLUS_DI request.
- symbol: The name of the equity
- interval: The time interval between two consecutive data points in the time series.
- time_period: Number of data points used to calculate each PLUS_DI value.
Please notice that the info above are copied from the official alphavantage documentation, that you can find here.
The request with constants implies the use of different enums:
- PLUS_DI_interval
PLUS_DI_interval: The time interval between two consecutive data points in the time series.
public enum PLUS_DI_interval
{
none,
n_1min,
n_5min,
n_15min,
n_30min,
n_60min,
daily,
weekly,
monthly
}
The response of a PLUS_DI request is an object that implements the IAvapiResponse_PLUS_DI interface.
public interface IAvapiResponse_PLUS_DI
{
string RawData
{
get;
}
IAvapiResponse_PLUS_DI_Content Data
{
get;
}
}
The IAvapiResponse_PLUS_DI interface has two members: RawData and Data.
- RawData: represents the json response in string format.
- Data: It represents the parsed response in an object implementing the interface IAvapiResponse_PLUS_DI_Content.
Complete Example of a Console App: Display the result of a PLUS_DI request by using the method Query (synchronous request)
using System;
using System.IO;
using Avapi.AvapiPLUS_DI;
namespace Avapi
{
public class Example
{
static void Main()
{
// Creating the connection object
IAvapiConnection connection = AvapiConnection.Instance;
// Set up the connection and pass the API_KEY provided by alphavantage.co
connection.Connect("Your Alpha Vantage API Key !!!!");
// Get the PLUS_DI query object
Int_PLUS_DI plus_di =
connection.GetQueryObject_PLUS_DI();
// Perform the PLUS_DI request and get the result
IAvapiResponse_PLUS_DI plus_diResponse =
plus_di.Query(
"MSFT",
Const_PLUS_DI.PLUS_DI_interval.n_1min,
10);
// Printout the results
Console.WriteLine("******** RAW DATA PLUS_DI ********");
Console.WriteLine(plus_diResponse.RawData);
Console.WriteLine("******** STRUCTURED DATA PLUS_DI ********");
var data = plus_diResponse.Data;
if (data.Error)
{
Console.WriteLine(data.ErrorMessage);
}
else
{
Console.WriteLine("Symbol: " + data.MetaData.Symbol);
Console.WriteLine("Indicator: " + data.MetaData.Indicator);
Console.WriteLine("LastRefreshed: " + data.MetaData.LastRefreshed);
Console.WriteLine("Interval: " + data.MetaData.Interval);
Console.WriteLine("TimePeriod: " + data.MetaData.TimePeriod);
Console.WriteLine("TimeZone: " + data.MetaData.TimeZone);
Console.WriteLine("========================");
Console.WriteLine("========================");
foreach (var technical in data.TechnicalIndicator)
{
Console.WriteLine("PLUS_DI: " + technical.PLUS_DI);
Console.WriteLine("DateTime: " + technical.DateTime);
Console.WriteLine("========================");
}
}
}
}
}
Complete Example of a Windows Form App: Display the result of a PLUS_DI request by using the method QueryAsync (asynchronous request)
using Avapi;
using Avapi.AvapiPLUS_DI
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private IAvapiConnection m_connection = AvapiConnection.Instance;
private Int_PLUS_DI m_plus_di;
private IAvapiResponse_PLUS_DI m_plus_diResponse;
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
// Set up the connection and pass the API_KEY provided by alphavantage.co
m_connection.Connect("Your Alpha Vantage Key");
// Get the PLUS_DI query object
m_plus_di = m_connection.GetQueryObject_PLUS_DI();
base.OnLoad(e);
}
private async void PLUS_DIAsyncButton_Click(object sender, EventArgs e)
{
// Perform the PLUS_DI request and get the result
m_plus_diResponse =
await m_plus_di.QueryAsync(
"MSFT",
Const_PLUS_DI.PLUS_DI_interval.n_1min,
10);
// Show the results
resultTextBox.AppendText("******** RAW DATA PLUS_DI ********" + "\n");
resultTextBox.AppendText(m_plus_diResponse.RawData + "\n");
resultTextBox.AppendText("******** STRUCTURED DATA PLUS_DI ********" + "\n");
var data = m_plus_diResponse.Data;
if (data.Error)
{
resultTextBox.AppendText(data.ErrorMessage + "\n");
}
else
{
resultTextBox.AppendText("Symbol: " + data.MetaData.Symbol + "\n");
resultTextBox.AppendText("Indicator: " + data.MetaData.Indicator + "\n");
resultTextBox.AppendText("LastRefreshed: " + data.MetaData.LastRefreshed + "\n");
resultTextBox.AppendText("Interval: " + data.MetaData.Interval + "\n");
resultTextBox.AppendText("TimePeriod: " + data.MetaData.TimePeriod + "\n");
resultTextBox.AppendText("TimeZone: " + data.MetaData.TimeZone + "\n");
resultTextBox.AppendText("========================" + "\n");
resultTextBox.AppendText("========================" + "\n");
foreach (var technical in data.TechnicalIndicator)
{
resultTextBox.AppendText("PLUS_DI: " + technical.PLUS_DI + "\n");
resultTextBox.AppendText("DateTime: " + technical.DateTime + "\n");
resultTextBox.AppendText("========================" + "\n");
}
}
}
}
}