Lean
$LEAN_TAG$
IntrinioConfig.cs
1
/*
2
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
3
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
using
System;
17
using
QuantConnect
.
Util
;
18
19
namespace
QuantConnect.Data.Custom.Intrinio
20
{
21
/// <summary>
22
/// Auxiliary class to access all Intrinio API data.
23
/// </summary>
24
public
static
class
IntrinioConfig
25
{
26
/// <summary>
27
/// </summary>
28
public
static
RateGate
RateGate
=
29
new
RateGate
(1, TimeSpan.FromMilliseconds(5000));
30
31
/// <summary>
32
/// Check if Intrinio API user and password are not empty or null.
33
/// </summary>
34
public
static
bool
IsInitialized
=> !
string
.IsNullOrWhiteSpace(
User
) && !
string
.IsNullOrWhiteSpace(
Password
);
35
36
/// <summary>
37
/// Intrinio API password
38
/// </summary>
39
public
static
string
Password
=
string
.Empty;
40
41
/// <summary>
42
/// Intrinio API user
43
/// </summary>
44
public
static
string
User
=
string
.Empty;
45
46
/// <summary>
47
/// Sets the time interval between calls.
48
/// For more information, please refer to: https://intrinio.com/documentation/api#limits
49
/// </summary>
50
/// <param name="timeSpan">Time interval between to consecutive calls.</param>
51
/// <remarks>
52
/// Paid subscription has limits of 1 call per second.
53
/// Free subscription has limits of 1 call per minute.
54
/// </remarks>
55
public
static
void
SetTimeIntervalBetweenCalls
(TimeSpan timeSpan)
56
{
57
RateGate
=
new
RateGate
(1, timeSpan);
58
}
59
60
/// <summary>
61
/// Set the Intrinio API user and password.
62
/// </summary>
63
public
static
void
SetUserAndPassword
(
string
user,
string
password)
64
{
65
User
= user;
66
Password
= password;
67
68
if
(!
IsInitialized
)
69
{
70
throw
new
InvalidOperationException(
"Please set a valid Intrinio user and password."
);
71
}
72
}
73
}
74
}
Common
Data
Custom
Intrinio
IntrinioConfig.cs
Generated by
1.8.17