PowerShell: Vahur Laas, stock.ps1: Difference between revisions
Created page with '<source lang="powershell"> <# .SYNOPSIS Leiab 200 kallima NASDAQi tehnoloogiafirma aktsiate andmed ning teeb nende baasil naiivseid soovitusi osta, müüa või hoida. .NOTE…' |
(No difference)
|
Latest revision as of 04:51, 24 January 2012
<source lang="powershell">
<# .SYNOPSIS
Leiab 200 kallima NASDAQi tehnoloogiafirma aktsiate andmed ning teeb nende baasil naiivseid soovitusi osta, müüa või hoida.
.NOTES
Autor: Vahur Laas
- >
- Laeme sümbolite listi
write-host "Download symbol list" $symbolstxt = (new-object net.webclient).DownloadString("http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NASDAQ&render=download")
- Konverdime CSV'st objektiks, päise paneme ise, sest olemasolev ei ole hea
write-host "Convert" $symbols = convertfrom-csv -header Symbol,Name,LastSale,MarketCap,ADR_TSO,IPOyear,Sector,Industry,Summary_Quote $symbolstxt | select-object Symbol,LastSale,Sector
- Loome saja kalleima firma listi stringikujul eraldajaks + nagu seda vajab järgmisena kasutatav keskkond
$symlist = "" $symbols | where-object {$_.Sector -eq "technology"} | sort-object {[decimal] $_.lastsale} | select-object -last 200 | ForEach-Object {
if ($_.sector = "Technology"){
$symlist = $symlist + $_.symbol.trim() + "+"
}
}
- Sikutame sümbolite detailsed andmed
write-host "Download detailed data" $wdata = (new-object net.webclient).DownloadString("http://finance.yahoo.com/d/quotes.csv?s=" + $symlist.trim("+") + "&f=snjkl1") $data = convertfrom-csv -header Symbol,Name,Low,High,Price $wdata
- Loome väljundi jaoks tabeli struktuuri
$suggestions = New-Object system.Data.DataTable “Suggestions” $col1 = New-Object system.Data.DataColumn Symbol,([string]) $col2 = New-Object system.Data.DataColumn Name,([string]) $col3 = New-Object system.Data.DataColumn Low,([decimal]) $col4 = New-Object system.Data.DataColumn High,([decimal]) $col5 = New-Object system.Data.DataColumn Price,([decimal]) $col6 = New-Object system.Data.DataColumn Suggestion,([string])
$suggestions.columns.add($col1) $suggestions.columns.add($col2) $suggestions.columns.add($col3) $suggestions.columns.add($col4) $suggestions.columns.add($col5) $suggestions.columns.add($col6)
- Käime saadud objektid läbi ja teeme otsuse ning täidame tabeli
$data | ForEach-Object {
$suggestion = "Hold"
[decimal] $perc10 = [decimal] $_.price * 0.1
if ([decimal] $_.price -gt [decimal] $_.high - $perc10){
$Suggestion = "Sell"
}
if ([decimal] $_.price -lt [decimal] $_.low + $perc10){
$suggestion = "Buy"
}
$row = $suggestions.newrow()
$row.symbol = $_.symbol
$row.name = $_.name
$row.low = [decimal] $_.low
$row.high = [decimal] $_.high
$row.price = [decimal] $_.price
$row.suggestion = $suggestion
$suggestions.rows.add($row)
}
- Väljastame tulemuse
$suggestions| format-table -auto