-
Notifications
You must be signed in to change notification settings - Fork 2
HT_DCPERIOD
This API returns the Hilbert transform, dominant cycle period (HT_DCPERIOD) values. The related REST API documentation is here
The very first thing to do before diving into HT_DCPERIOD calls is to include the right namespace.
using Avapi.AvapiHT_DCPERIOD
The HT_DCPERIOD 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 HT_DCPERIOD from it.
...
Int_HT_DCPERIOD htdcperiod =
connection.GetQueryObject_HT_DCPERIOD();
To perform a HT_DCPERIOD request you have 2 options:
- The request with constants:
IAvapiResponse_HT_DCPERIOD Query(string symbol,
HT_DCPERIOD_interval interval,
HT_DCPERIOD_series_type series_type);
- The request without constants:
IAvapiResponse_HT_DCPERIOD QueryPrimitive(string symbol,
string interval,
string series_type);
To perform an HT_DCPERIOD asynchronous request you have 2 options:
- The request with constants:
async Task<IAvapiResponse_HT_DCPERIOD> QueryAsync(string symbol,
HT_DCPERIOD_interval interval,
HT_DCPERIOD_series_type series_type);
- The request without constants:
async Task<IAvapiResponse_HT_DCPERIOD> QueryAsync(string symbol,
string interval,
string series_type);
The parameters below are needed to perform the HT_DCPERIOD request.
- symbol: The name of the equity
- interval: The time interval between two consecutive data points in the time series.
- series_type: The price type in the time series. The types supported are: close, open, high, low
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:
- HT_DCPERIOD_interval
- HT_DCPERIOD_series_type
HT_DCPERIOD_interval: The time interval between two consecutive data points in the time series.
public enum HT_DCPERIOD_interval
{
none,
n_1min,
n_5min,
n_15min,
n_30min,
n_60min,
daily,
weekly,
monthly
}
HT_DCPERIOD_series_type: The price type in the time series. The types supported are: close, open, high, low
public enum HT_DCPERIOD_series_type
{
none,
close,
open,
high,
low
}
The response of a HT_DCPERIOD request is an object that implements the IAvapiResponse_HT_DCPERIOD interface.
public interface IAvapiResponse_HT_DCPERIOD
{
string RawData
{
get;
}
IAvapiResponse_HT_DCPERIOD_Content Data
{
get;
}
}
The IAvapiResponse_HT_DCPERIOD 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_HT_DCPERIOD_Content.
Complete Example of a Console App: Display the result of a HT_DCPERIOD request by using the method Query (synchronous request)
using System;
using System.IO;
using Avapi.AvapiHT_DCPERIOD;
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 HT_DCPERIOD query object
Int_HT_DCPERIOD ht_dcperiod =
connection.GetQueryObject_HT_DCPERIOD();
// Perform the HT_DCPERIOD request and get the result
IAvapiResponse_HT_DCPERIOD ht_dcperiodResponse =
ht_dcperiod.Query(
"MSFT",
Const_HT_DCPERIOD.HT_DCPERIOD_interval.n_1min,
Const_HT_DCPERIOD.HT_DCPERIOD_series_type.close);
// Printout the results
Console.WriteLine("******** RAW DATA HT_DCPERIOD ********");
Console.WriteLine(ht_dcperiodResponse.RawData);
Console.WriteLine("******** STRUCTURED DATA HT_DCPERIOD ********");
var data = ht_dcperiodResponse.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("SeriesType: " + data.MetaData.SeriesType);
Console.WriteLine("TimeZone: " + data.MetaData.TimeZone);
Console.WriteLine("========================");
Console.WriteLine("========================");
foreach (var technical in data.TechnicalIndicator)
{
Console.WriteLine("DCPERIOD: " + technical.DCPERIOD);
Console.WriteLine("DateTime: " + technical.DateTime);
Console.WriteLine("========================");
}
}
}
}
}
Complete Example of a Windows Form App: Display the result of a HT_DCPERIOD request by using the method QueryAsync (asynchronous request)
using Avapi;
using Avapi.AvapiHT_DCPERIOD
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private IAvapiConnection m_connection = AvapiConnection.Instance;
private Int_HT_DCPERIOD m_ht_dcperiod;
private IAvapiResponse_HT_DCPERIOD m_ht_dcperiodResponse;
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 HT_DCPERIOD query object
m_ht_dcperiod = m_connection.GetQueryObject_HT_DCPERIOD();
base.OnLoad(e);
}
private async void HT_DCPERIODAsyncButton_Click(object sender, EventArgs e)
{
// Perform the HT_DCPERIOD request and get the result
m_ht_dcperiodResponse =
await m_ht_dcperiod.QueryAsync(
"MSFT",
Const_HT_DCPERIOD.HT_DCPERIOD_interval.n_1min,
Const_HT_DCPERIOD.HT_DCPERIOD_series_type.close);
// Show the results
resultTextBox.AppendText("******** RAW DATA HT_DCPERIOD ********" + "\n");
resultTextBox.AppendText(m_ht_dcperiodResponse.RawData + "\n");
resultTextBox.AppendText("******** STRUCTURED DATA HT_DCPERIOD ********" + "\n");
var data = m_ht_dcperiodResponse.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("SeriesType: " + data.MetaData.SeriesType + "\n");
resultTextBox.AppendText("TimeZone: " + data.MetaData.TimeZone + "\n");
resultTextBox.AppendText("========================" + "\n");
resultTextBox.AppendText("========================" + "\n");
foreach (var technical in data.TechnicalIndicator)
{
resultTextBox.AppendText("DCPERIOD: " + technical.DCPERIOD + "\n");
resultTextBox.AppendText("DateTime: " + technical.DateTime + "\n");
resultTextBox.AppendText("========================" + "\n");
}
}
}
}
}