178 lines
4.8 KiB
JavaScript
178 lines
4.8 KiB
JavaScript
|
|
var gChart;
|
|
|
|
$(function() {
|
|
"use strict";
|
|
|
|
var isDebugMode = window.location.port === '63342';
|
|
var isFullWindowMode = isDebugMode || ((StockChartX.Environment.isMobile && $(window).width() < 768) || StockChartX.Environment.isPhone);
|
|
|
|
/*var symbolsFilePath = StockChartX.Environment.isMobile ? "data/symbols.mobile.json" : "data/symbols.json";
|
|
$.get(symbolsFilePath, function(symbols) {
|
|
console.log(symbols);
|
|
StockChartX.getAllInstruments = function() { return symbols; }
|
|
});*/
|
|
|
|
gChart = $('#chartContainer').StockChartX({
|
|
width: $('#chartContainer').parent().width(),
|
|
height: 360,
|
|
//fullWindowMode: isFullWindowMode
|
|
});
|
|
|
|
gChart.update();
|
|
|
|
if (!StockChartX.Environment.isPhone) {
|
|
var myIndicator = new MyCustomMACD();
|
|
gChart.addIndicators([myIndicator, TASdk.BollingerBands]);
|
|
}
|
|
|
|
|
|
var ind = gChart.addIndicators(StockChartX.VolumeIndicator);
|
|
ind.setParameterValue(StockChartX.IndicatorParam.LINE_WIDTH, 5);
|
|
//ind.chartPanel.setHeightRatio(50/gChart.size.height);
|
|
|
|
gChart.on(StockChartX.ChartEvent.SYMBOL_ENTERED, function(event) {
|
|
// TODO: Load data for the new symbol
|
|
gChart.showWaitingBar();
|
|
gChart.instrument = event.value;
|
|
setTimeout(function(){
|
|
gChart.update();
|
|
gChart.hideWaitingBar();
|
|
}, 2000);
|
|
});
|
|
gChart.on(StockChartX.ChartEvent.TIME_FRAME_CHANGED, function(event) {
|
|
// TODO: Process time frame change
|
|
console.log(event.value.interval + ' ' + event.value.periodicity);
|
|
});
|
|
gChart.on(StockChartX.ChartEvent.MORE_HISTORY_REQUESTED, function() {
|
|
console.log("TODO: Load more history!");
|
|
});
|
|
|
|
|
|
if (!StockChartX.Environment.isPhone) {
|
|
// test
|
|
var scale1 = gChart.addValueScale();
|
|
scale1.leftPanelVisible = true;
|
|
scale1.rightPanelVisible = false;
|
|
|
|
var scale2 = gChart.addValueScale();
|
|
|
|
gChart.indicators[2].valueScale = scale1;
|
|
gChart.indicators[1].valueScale = scale2;
|
|
}
|
|
|
|
gChart.updateIndicators();
|
|
gChart.setNeedsAutoScale();
|
|
gChart.update();
|
|
|
|
!StockChartX.Environment.isMobile && gChart.recordRange(1000);
|
|
//gChart.dateScale.customFormat = "HH:mm:ss";
|
|
gChart.update();
|
|
gChart.hideWaitingBar();
|
|
|
|
|
|
|
|
});
|
|
|
|
$(window).resize(function() {
|
|
//console.log($(window).width());
|
|
gChart.size = {width: $('#chartContainer').parent().width()};
|
|
gChart.update();
|
|
});
|
|
|
|
function ChartsInstruments(instrument_data){
|
|
console.log(instrument_data);
|
|
gChart.instrument = {
|
|
symbol: instrument_data.symbol,
|
|
company: instrument_data.company,
|
|
exchange: "BarterDEX"
|
|
};
|
|
gChart.timeInterval = StockChartX.TimeSpan.MILLISECONDS_IN_DAY;
|
|
gChart.removeDrawings();
|
|
gChart.setNeedsUpdate(!0);
|
|
gChart.setNeedsAutoScaleAll();
|
|
gChart.update();
|
|
}
|
|
|
|
|
|
|
|
function ConvertJSONToCSV(objArray) {
|
|
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
|
|
var str = '';
|
|
|
|
for (var i = 0; i < array.length; i++) {
|
|
var line = '';
|
|
for (var index in array[i]) {
|
|
if (line != '') line += ','
|
|
line += array[i][index];
|
|
}
|
|
|
|
str += line + '\r\n';
|
|
}
|
|
|
|
return str;
|
|
}
|
|
|
|
function clearChartData() {
|
|
var dataSeries = gChart.barDataSeries();
|
|
|
|
dataSeries.date.clear();
|
|
dataSeries.open.clear();
|
|
dataSeries.high.clear();
|
|
dataSeries.low.clear();
|
|
dataSeries.close.clear();
|
|
dataSeries.volume.clear();
|
|
}
|
|
|
|
function UpdateDexChart(chartbase, chartrel) {
|
|
gChart.showWaitingBar();
|
|
clearChartData();
|
|
gChart.update();
|
|
|
|
var userpass = sessionStorage.getItem('mm_userpass');
|
|
var mypubkey = sessionStorage.getItem('mm_mypubkey');
|
|
var ajax_data = {"userpass":userpass,"method":"tradesarray","base":chartbase,"rel":chartrel,"timescale":60,"starttime":0,"endtime":0};
|
|
//var url = "http://5.9.253.196:7782/api/stats/";
|
|
var url = "http://127.0.0.1:7783";
|
|
|
|
$.ajax({
|
|
async: true,
|
|
data: JSON.stringify(ajax_data),
|
|
dataType: 'json',
|
|
type: 'POST',
|
|
url: url
|
|
}).done(function(dex_chart_output_data) {
|
|
//console.log(dex_chart_output_data);
|
|
gChart.setNeedsAutoScaleAll();
|
|
parseBars(dex_chart_output_data, false);
|
|
}).fail(function(jqXHR, textStatus, errorThrown) {
|
|
// If fail
|
|
console.log(textStatus + ': ' + errorThrown);
|
|
});
|
|
}
|
|
|
|
|
|
function parseBars(data, isIntraday) {
|
|
var dataSeries = gChart.barDataSeries();
|
|
data.reverse();
|
|
|
|
$.each(data, function(index,value) {
|
|
//console.log(index);
|
|
//console.log(value);
|
|
var time = new Date( value[0] *1000);
|
|
//console.log(time);
|
|
|
|
dataSeries.date.add(time);
|
|
dataSeries.open.add(parseFloat(value[1]));
|
|
dataSeries.high.add(parseFloat(value[2]));
|
|
dataSeries.low.add(parseFloat(value[3]));
|
|
dataSeries.close.add(parseFloat(value[4]));
|
|
dataSeries.volume.add(parseInt(value[5], 10));
|
|
|
|
});
|
|
gChart.updateComputedDataSeries();
|
|
gChart.update();
|
|
gChart.hideWaitingBar();
|
|
}
|
|
|