485 lines
17 KiB
HTML
485 lines
17 KiB
HTML
<!doctype html>
|
|
<html class="no-js" lang="">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<title>aktienbot documentation</title>
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
|
|
<link rel="stylesheet" href="../styles/style.css">
|
|
<link rel="stylesheet" href="../styles/dark.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="navbar navbar-default navbar-fixed-top visible-xs">
|
|
<a href="../" class="navbar-brand">aktienbot documentation</a>
|
|
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
|
|
</div>
|
|
|
|
<div class="xs-menu menu" id="mobile-menu">
|
|
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
|
|
</div>
|
|
|
|
<div class="container-fluid main">
|
|
<div class="row main">
|
|
<div class="hidden-xs menu">
|
|
<compodoc-menu mode="normal"></compodoc-menu>
|
|
</div>
|
|
<!-- START CONTENT -->
|
|
<div class="content interface">
|
|
<div class="content-data">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<ol class="breadcrumb">
|
|
<li>Interfaces</li>
|
|
<li
|
|
>
|
|
Stock</li>
|
|
</ol>
|
|
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li class="active">
|
|
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
|
|
</li>
|
|
<li >
|
|
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
<div class="tab-pane fade active in" id="c-info">
|
|
<p class="comment">
|
|
<h3>File</h3>
|
|
</p>
|
|
<p class="comment">
|
|
<code>src/app/Views/dashboard/dashboard.component.ts</code>
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<section>
|
|
<h3 id="index">Index</h3>
|
|
<table class="table table-sm table-bordered index-table">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<h6><b>Properties</b></h6>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<ul class="index-list">
|
|
<li>
|
|
<a href="#count"
|
|
>
|
|
count
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#currentPrice"
|
|
>
|
|
currentPrice
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#symbol"
|
|
>
|
|
symbol
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#time"
|
|
>
|
|
time
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
|
|
|
|
<section>
|
|
<h3 id="inputs">Properties</h3>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<a name="count"></a>
|
|
<span class="name "><b>count</b>
|
|
<a href="#count">
|
|
<span class="icon ion-ios-link"></span>
|
|
</a>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>count: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
|
|
</code>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<a name="currentPrice"></a>
|
|
<span class="name "><b>currentPrice</b>
|
|
<a href="#currentPrice">
|
|
<span class="icon ion-ios-link"></span>
|
|
</a>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>currentPrice: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
|
|
</code>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<a name="symbol"></a>
|
|
<span class="name "><b>symbol</b>
|
|
<a href="#symbol">
|
|
<span class="icon ion-ios-link"></span>
|
|
</a>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>symbol: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
|
</code>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-sm table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<a name="time"></a>
|
|
<span class="name "><b>time</b>
|
|
<a href="#time">
|
|
<span class="icon ion-ios-link"></span>
|
|
</a>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<code>time: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
|
</code>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td class="col-md-4">
|
|
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
</div>
|
|
|
|
|
|
<div class="tab-pane fade tab-source-code" id="c-source">
|
|
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from '@angular/core';
|
|
import { DataService } from 'src/app/Services/data.service';
|
|
import { MatDialog } from '@angular/material/dialog';
|
|
import { UserDialogComponent } from './user-dialog/user-dialog.component';
|
|
import { HelperService } from 'src/app/Helpers/helper.service';
|
|
|
|
export interface PeriodicElement {
|
|
name: string;
|
|
position: number;
|
|
weight: number;
|
|
symbol: string;
|
|
}
|
|
|
|
export interface Stock {
|
|
count: number;
|
|
currentPrice: number;
|
|
symbol: string;
|
|
time: string;
|
|
}
|
|
|
|
//symbol count lastTransaction boughtPrice currentPrice(+?)
|
|
|
|
const ELEMENT_DATA: PeriodicElement[] = [
|
|
{ position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H' },
|
|
{ position: 2, name: 'Helium', weight: 4.0026, symbol: 'He' },
|
|
{ position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li' },
|
|
];
|
|
|
|
var TRANSACTION_DATA: TransactionData[] = [];
|
|
var STOCK_DATA: Stock[] = [];
|
|
|
|
export interface TransactionData {
|
|
comment: string;
|
|
isin: string;
|
|
time: string;
|
|
count: number;
|
|
price: number;
|
|
}
|
|
|
|
@Component({
|
|
selector: 'app-dashboard',
|
|
templateUrl: './dashboard.component.html',
|
|
styleUrls: ['./dashboard.component.scss'],
|
|
})
|
|
export class DashboardComponent implements OnInit {
|
|
constructor(
|
|
private dataService: DataService,
|
|
private helper: HelperService,
|
|
public dialog: MatDialog
|
|
) {}
|
|
|
|
dataSourceTransactions: TransactionData[] = [];
|
|
dataSourceStocks: Stock[] = [];
|
|
depotCurrentValue: number = 0;
|
|
depotCost: number = 0;
|
|
profit: number = 0;
|
|
|
|
getTransactions() {
|
|
var TRANSACTION_DATA: TransactionData[] = [];
|
|
this.dataService.getTransactionData().subscribe((response: any) => {
|
|
var data = JSON.parse(response);
|
|
this.depotCost = 0;
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
this.depotCost += data.data[i].price;
|
|
TRANSACTION_DATA.push({
|
|
comment: data.data[i].comment,
|
|
isin: data.data[i].isin,
|
|
time: data.data[i].time,
|
|
count: data.data[i].count,
|
|
price: data.data[i].price,
|
|
});
|
|
}
|
|
this.dataSourceTransactions = TRANSACTION_DATA;
|
|
//TODO move to helper service
|
|
|
|
this.profit = this.depotCurrentValue - this.depotCost;
|
|
});
|
|
}
|
|
|
|
ngOnInit() {
|
|
this.dataService.getStockData().subscribe((response: any) => {
|
|
var data = JSON.parse(response);
|
|
this.depotCurrentValue = 0;
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
this.depotCurrentValue = data.data[i].current_price;
|
|
STOCK_DATA.push({
|
|
count: data.data[i].count,
|
|
currentPrice: data.data[i].current_price,
|
|
symbol: data.data[i].symbol,
|
|
time: data.data[i].last_transaction,
|
|
});
|
|
}
|
|
this.dataSourceStocks = STOCK_DATA;
|
|
//TODO move to helper service
|
|
|
|
this.profit += this.depotCurrentValue;
|
|
});
|
|
|
|
this.dataService.getTransactionData().subscribe((response: any) => {
|
|
var data = JSON.parse(response);
|
|
this.depotCost = 0;
|
|
for (let i = 0; i < data.data.length; i++) {
|
|
this.depotCost += data.data[i].price;
|
|
TRANSACTION_DATA.push({
|
|
comment: data.data[i].comment,
|
|
isin: data.data[i].isin,
|
|
time: data.data[i].time,
|
|
count: data.data[i].count,
|
|
price: data.data[i].price,
|
|
});
|
|
}
|
|
this.dataSourceTransactions = TRANSACTION_DATA;
|
|
//TODO move to helper service
|
|
|
|
this.profit -= this.depotCost;
|
|
});
|
|
}
|
|
|
|
comment: string = '';
|
|
isin: string = '';
|
|
time: Date = new Date();
|
|
count: number = 0.0;
|
|
price: number = 0.0;
|
|
|
|
openDialog(): void {
|
|
const dialogRef = this.dialog.open(UserDialogComponent, {
|
|
width: '50vw',
|
|
data: {
|
|
comment: this.comment,
|
|
isin: this.isin,
|
|
time: this.time,
|
|
count: this.count,
|
|
price: this.price,
|
|
},
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe((result) => {
|
|
this.helper.delay(1000);
|
|
this.getTransactions();
|
|
});
|
|
}
|
|
|
|
displayedColumns: string[] = [
|
|
'comment',
|
|
'weight',
|
|
'position',
|
|
'name',
|
|
'symbol',
|
|
];
|
|
displayedColumnsStocks: string[] = [
|
|
'position',
|
|
'name',
|
|
'weight',
|
|
'current-price',
|
|
];
|
|
dataSource = ELEMENT_DATA;
|
|
}
|
|
</code></pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div><div class="search-results">
|
|
<div class="has-results">
|
|
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
|
<ul class="search-results-list"></ul>
|
|
</div>
|
|
<div class="no-results">
|
|
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- END CONTENT -->
|
|
</div>
|
|
</div>
|
|
|
|
<label class="dark-mode-switch">
|
|
<input type="checkbox">
|
|
<span class="slider">
|
|
<svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
|
|
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
|
|
</svg>
|
|
</span>
|
|
</label>
|
|
|
|
<script>
|
|
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
|
|
var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
|
|
var COMPODOC_CURRENT_PAGE_URL = 'Stock.html';
|
|
var MAX_SEARCH_RESULTS = 15;
|
|
</script>
|
|
|
|
<script src="../js/libs/custom-elements.min.js"></script>
|
|
<script src="../js/libs/lit-html.js"></script>
|
|
|
|
<script src="../js/menu-wc.js" defer></script>
|
|
<script nomodule src="../js/menu-wc_es5.js" defer></script>
|
|
|
|
<script src="../js/libs/bootstrap-native.js"></script>
|
|
|
|
<script src="../js/libs/es6-shim.min.js"></script>
|
|
<script src="../js/libs/EventDispatcher.js"></script>
|
|
<script src="../js/libs/promise.min.js"></script>
|
|
<script src="../js/libs/zepto.min.js"></script>
|
|
|
|
<script src="../js/compodoc.js"></script>
|
|
|
|
<script src="../js/tabs.js"></script>
|
|
<script src="../js/menu.js"></script>
|
|
<script src="../js/libs/clipboard.min.js"></script>
|
|
<script src="../js/libs/prism.js"></script>
|
|
<script src="../js/sourceCode.js"></script>
|
|
<script src="../js/search/search.js"></script>
|
|
<script src="../js/search/lunr.min.js"></script>
|
|
<script src="../js/search/search-lunr.js"></script>
|
|
<script src="../js/search/search_index.js"></script>
|
|
<script src="../js/lazy-load-graphs.js"></script>
|
|
|
|
|
|
</body>
|
|
</html>
|