/
AlphaVantageToES - Copy.ps1
112 lines (108 loc) · 3.41 KB
/
AlphaVantageToES - Copy.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
param(
[Int32]$interval
)
$indexSettings = @"
{
"settings": {
"index": {
"number_of_replicas": "0"
}
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"symbol": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"high": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"open": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"low": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"close": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"volume": {
"type": "integer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
"@
$shardDate = Get-Date -f "yyyy.MM.dd"
try {
Invoke-WebRequest -Uri "http://192.168.0.248:9200/stock-$($shardDate)/" -Body $($indexSettings) -Method PUT -ContentType "application/json" -Verbose
}
catch{
}
$symbols = "MSFT","AMD","NVDA","CRBP","LMT","PANW"
$symbols | % {
$wr = Invoke-WebRequest -Uri "https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=$($_)&interval=$($interval)min&apikey=1PVZCB3K3UE8NKG2"
#"https://www.alphavantage.co/query?function=TIME_SERIES_WEEKLY&symbol=MSFT&apikey=1PVZCB3K3UE8NKG2"
#"https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY&symbol=MSFT&apikey=1PVZCB3K3UE8NKG2"
$json = ConvertFrom-Json -InputObject $wr.content
$jsonIdx = "Time Series ($($interval)min)"
$properties = $json.$jsonIdx |
Get-Member -MemberType Properties |
Select-Object -ExpandProperty Name
foreach ($element in $properties) {
$ht = @{}
$ht.Add("@timestamp",$element)
$ht.Add("symbol",$json.'Meta Data'.'2. Symbol')
foreach ($stock in $json.$jsonIdx.$($element)) {
$ht.Add("open", $stock.'1. open')
$ht.Add("high", $stock.'2. high')
$ht.Add("low", $stock.'3. low')
$ht.Add("close", $stock.'4. close')
$ht.Add("volume", $stock.'5. volume')
$body = $ht | ConvertTo-Json
Write-Host "Writing $($body)"
Invoke-WebRequest -Uri "http://192.168.0.248:9200/stock-$($shardDate)/_doc" -Body $body -Method POST -ContentType "application/json" -Verbose
}
$ht.Clear()
}
Start-Sleep 20
}