-
Notifications
You must be signed in to change notification settings - Fork 2
HT_SINE
This API returns the Hilbert transform, sine wave (HT_SINE) values. The related REST API documentation is here
The very first thing to do before diving into HT_SINE calls is to include the right namespace.
using Avapi.AvapiHT_SINE
The HT_SINE 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_SINE from it.
...
Int_HT_SINE htsine =
connection.GetQueryObject_HT_SINE();
To perform a HT_SINE request you have 2 options:
- The request with constants:
IAvapiResponse_HT_SINE Query(string symbol,
HT_SINE_interval interval,
HT_SINE_series_type series_type);
- The request without constants:
IAvapiResponse_HT_SINE QueryPrimitive(string symbol,
string interval,
string series_type);
To perform an HT_SINE asynchronous request you have 2 options:
- The request with constants:
async Task<IAvapiResponse_HT_SINE> QueryAsync(string symbol,
HT_SINE_interval interval,
HT_SINE_series_type series_type);
- The request without constants:
async Task<IAvapiResponse_HT_SINE> QueryAsync(string symbol,
string interval,
string series_type);
The parameters below are needed to perform the HT_SINE 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_SINE_interval
- HT_SINE_series_type
HT_SINE_interval: The time interval between two consecutive data points in the time series.
public enum HT_SINE_interval
{
none,
n_1min,
n_5min,
n_15min,
n_30min,
n_60min,
daily,
weekly,
monthly
}
HT_SINE_series_type: The price type in the time series. The types supported are: close, open, high, low
public enum HT_SINE_series_type
{
none,
close,
open,
high,
low
}
The response of a HT_SINE request is an object that implements the IAvapiResponse_HT_SINE interface.
public interface IAvapiResponse_HT_SINE
{
string RawData
{
get;
}
IAvapiResponse_HT_SINE_Content Data
{
get;
}
}
The IAvapiResponse_HT_SINE 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_SINE_Content.
Complete Example of a Console App: Display the result of a HT_SINE request by using the method Query (synchronous request)
using System;
using System.IO;
using Avapi.AvapiHT_SINE;
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_SINE query object
Int_HT_SINE ht_sine =
connection.GetQueryObject_HT_SINE();
// Perform the HT_SINE request and get the result
IAvapiResponse_HT_SINE ht_sineResponse =
ht_sine.Query(
"MSFT",
Const_HT_SINE.HT_SINE_interval.n_1min,
Const_HT_SINE.HT_SINE_series_type.close);
// Printout the results
Console.WriteLine("******** RAW DATA HT_SINE ********");
Console.WriteLine(ht_sineResponse.RawData);
Console.WriteLine("******** STRUCTURED DATA HT_SINE ********");
var data = ht_sineResponse.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("SINE: " + technical.SINE);
Console.WriteLine("LEADSINE: " + technical.LEADSINE);
Console.WriteLine("DateTime: " + technical.DateTime);
Console.WriteLine("========================");
}
}
}
}
}
Complete Example of a Windows Form App: Display the result of a HT_SINE request by using the method QueryAsync (asynchronous request)
using Avapi;
using Avapi.AvapiHT_SINE
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private IAvapiConnection m_connection = AvapiConnection.Instance;
private Int_HT_SINE m_ht_sine;
private IAvapiResponse_HT_SINE m_ht_sineResponse;
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_SINE query object
m_ht_sine = m_connection.GetQueryObject_HT_SINE();
base.OnLoad(e);
}
private async void HT_SINEAsyncButton_Click(object sender, EventArgs e)
{
// Perform the HT_SINE request and get the result
m_ht_sineResponse =
await m_ht_sine.QueryAsync(
"MSFT",
Const_HT_SINE.HT_SINE_interval.n_1min,
Const_HT_SINE.HT_SINE_series_type.close);
// Show the results
resultTextBox.AppendText("******** RAW DATA HT_SINE ********" + "\n");
resultTextBox.AppendText(m_ht_sineResponse.RawData + "\n");
resultTextBox.AppendText("******** STRUCTURED DATA HT_SINE ********" + "\n");
var data = m_ht_sineResponse.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("SINE: " + technical.SINE + "\n");
resultTextBox.AppendText("LEADSINE: " + technical.LEADSINE + "\n");
resultTextBox.AppendText("DateTime: " + technical.DateTime + "\n");
resultTextBox.AppendText("========================" + "\n");
}
}
}
}
}