-
Couldn't load subscription status.
- Fork 2
HT_PHASOR
This API returns the Hilbert transform, phasor components (HT_PHASOR) values. The related REST API documentation is here
The very first thing to do before diving into HT_PHASOR calls is to include the right namespace.
using Avapi.AvapiHT_PHASOR
The HT_PHASOR 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_PHASOR from it.
...
Int_HT_PHASOR htphasor =
connection.GetQueryObject_HT_PHASOR();
To perform a HT_PHASOR request you have 2 options:
- The request with constants:
IAvapiResponse_HT_PHASOR Query(string symbol,
HT_PHASOR_interval interval,
HT_PHASOR_series_type series_type);
- The request without constants:
IAvapiResponse_HT_PHASOR QueryPrimitive(string symbol,
string interval,
string series_type);
To perform an HT_PHASOR asynchronous request you have 2 options:
- The request with constants:
async Task<IAvapiResponse_HT_PHASOR> QueryAsync(string symbol,
HT_PHASOR_interval interval,
HT_PHASOR_series_type series_type);
- The request without constants:
async Task<IAvapiResponse_HT_PHASOR> QueryAsync(string symbol,
string interval,
string series_type);
The parameters below are needed to perform the HT_PHASOR 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_PHASOR_interval
- HT_PHASOR_series_type
HT_PHASOR_interval: The time interval between two consecutive data points in the time series.
public enum HT_PHASOR_interval
{
none,
n_1min,
n_5min,
n_15min,
n_30min,
n_60min,
daily,
weekly,
monthly
}
HT_PHASOR_series_type: The price type in the time series. The types supported are: close, open, high, low
public enum HT_PHASOR_series_type
{
none,
close,
open,
high,
low
}
The response of a HT_PHASOR request is an object that implements the IAvapiResponse_HT_PHASOR interface.
public interface IAvapiResponse_HT_PHASOR
{
string RawData
{
get;
}
IAvapiResponse_HT_PHASOR_Content Data
{
get;
}
}
The IAvapiResponse_HT_PHASOR 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_PHASOR_Content.
Complete Example of a Console App: Display the result of a HT_PHASOR request by using the method Query (synchronous request)
using System;
using System.IO;
using Avapi.AvapiHT_PHASOR;
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_PHASOR query object
Int_HT_PHASOR ht_phasor =
connection.GetQueryObject_HT_PHASOR();
// Perform the HT_PHASOR request and get the result
IAvapiResponse_HT_PHASOR ht_phasorResponse =
ht_phasor.Query(
"MSFT",
Const_HT_PHASOR.HT_PHASOR_interval.n_1min,
Const_HT_PHASOR.HT_PHASOR_series_type.close);
// Printout the results
Console.WriteLine("******** RAW DATA HT_PHASOR ********");
Console.WriteLine(ht_phasorResponse.RawData);
Console.WriteLine("******** STRUCTURED DATA HT_PHASOR ********");
var data = ht_phasorResponse.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("PHASE: " + technical.PHASE);
Console.WriteLine("QUADRATURE: " + technical.QUADRATURE);
Console.WriteLine("DateTime: " + technical.DateTime);
Console.WriteLine("========================");
}
}
}
}
}
Complete Example of a Windows Form App: Display the result of a HT_PHASOR request by using the method QueryAsync (asynchronous request)
using Avapi;
using Avapi.AvapiHT_PHASOR
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private IAvapiConnection m_connection = AvapiConnection.Instance;
private Int_HT_PHASOR m_ht_phasor;
private IAvapiResponse_HT_PHASOR m_ht_phasorResponse;
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_PHASOR query object
m_ht_phasor = m_connection.GetQueryObject_HT_PHASOR();
base.OnLoad(e);
}
private async void HT_PHASORAsyncButton_Click(object sender, EventArgs e)
{
// Perform the HT_PHASOR request and get the result
m_ht_phasorResponse =
await m_ht_phasor.QueryAsync(
"MSFT",
Const_HT_PHASOR.HT_PHASOR_interval.n_1min,
Const_HT_PHASOR.HT_PHASOR_series_type.close);
// Show the results
resultTextBox.AppendText("******** RAW DATA HT_PHASOR ********" + "\n");
resultTextBox.AppendText(m_ht_phasorResponse.RawData + "\n");
resultTextBox.AppendText("******** STRUCTURED DATA HT_PHASOR ********" + "\n");
var data = m_ht_phasorResponse.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("PHASE: " + technical.PHASE + "\n");
resultTextBox.AppendText("QUADRATURE: " + technical.QUADRATURE + "\n");
resultTextBox.AppendText("DateTime: " + technical.DateTime + "\n");
resultTextBox.AppendText("========================" + "\n");
}
}
}
}
}