VERSION 1.14 @ 2019-04-04 08:32:01.655131

x axis retains previous scale after restoring layout #3828
getVisiblePriceRange() not working in 1.14 (unstable) #3774
uppercase_instrument_names doesn't work for compare/overlay #3746
API method to trigger the Zoom Out #3739
Provide event that study properties was changed #3736
Fixed security issue in master #3699
widget.save have old data #3623
JS error on switching chart types #3602
Add a way to prevent scrolling beyond the beginning of bars #3597
Chart customization - overrides #3572
Theme override colors from saved_data #3557
Error while applying Pivot Points Indicator #3521
Month timeframe combining months #3510
initialSettings from settings adapter does not work #3479
Add Indexed to 100 mode for price scale #3391
RTL #3335
Add warning about incorrect usage disable_resolution_rebuild and has_empty_bars #3329
Unable to load DOME and Bottom Widget when open_account_manager disabled #3312
Randomly clickable area on chart that redirects user to tradingview.com #3299
Apply to all #3298
Save container element while charting library's life #3297
Gap appearing in chart layout #3246
User's colors not working when theme is enabled #3232
Chart is outside of visible range when in auto scale and load study template or load chart #3229
Please make getVisibleRange return the range in UTC #3173
Remove TradingView.onready from API #3162
Add API to export data from the chart #3152
Market status is not updated properly #3122
Placeholders disappear in "Compare or Add Symbol" popup when the cursor is set into the fields #2966
getVisibleRange to return 0, any way of getting the last bar in active chart ? #2757
"onListAdded" event is not fired when user click on "Save Watchlist As" #2654
Error report : Parabolic SAR #2205
TERMINAL: make a flag to disable support of stop orders #2181
Add Change % in the OHLC label Charting Library #2120
Request more bars for indicators #1362
Drawing tool does not work on Samsung Edge and  Note 5 #984
This commit is contained in:
Jenkins
2019-04-04 11:32:07 +03:00
parent e38d004695
commit 9d8b63e068
142 changed files with 38224 additions and 2420 deletions

278
test.html
View File

@@ -25,8 +25,7 @@
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
TradingView.onready(function()
{
function initOnReady() {
var udf_datafeed = new Datafeeds.UDFCompatibleDatafeed("https://demo_feed.tradingview.com");
var widget = window.tvWidget = new TradingView.widget({
@@ -87,8 +86,128 @@
var savedWidgetContent = null;
var savedTemplate = null;
widget.onChartReady(function() {
widget.headerReady().then(function() {
function createHeaderButton(text, title, clickHandler, options) {
var button = widget.createButton(options);
button.setAttribute('title', title);
button.textContent = text;
button.addEventListener('click', clickHandler);
}
createHeaderButton('save', 'Save chart', function() {
widget.save(function(data) {
savedWidgetContent = data;
alert('Saved');
});
});
createHeaderButton('load', 'Load chart', function() {
if (savedWidgetContent) {
widget.load(savedWidgetContent);
}
});
createHeaderButton('load reference', 'Load reference', function() {
widget.load(referenceChart);
});
createHeaderButton('load reference 2', 'Load reference 2', function() {
widget.load(referenceChart2);
});
createHeaderButton('save template (-i)', '', function() {
savedTemplate = widget.activeChart().createStudyTemplate({ saveInterval: false });
});
createHeaderButton('save template (+i)', '', function() {
savedTemplate = widget.activeChart().createStudyTemplate({ saveInterval: true });
});
createHeaderButton('apply template', '', function() {
if (savedTemplate) {
widget.chart().applyStudyTemplate(savedTemplate);
}
});
createHeaderButton('F, 2D', '', function() {
widget.setSymbol('F', '2D');
});
createHeaderButton('Clear marks', '', function() {
widget.chart().clearMarks();
});
createHeaderButton('+BB', 'Insert Bollinger Bands', function() {
console.log(widget.chart().createStudy(
'Bollinger Bands',
false,
false,
[
10 + parseInt(Math.random() * 10),
3 + parseInt(Math.random() * 3)
]
));
});
createHeaderButton('+MA', 'Insert Moving Average', function() {
console.log(widget.chart().createStudy(
'Moving Average',
false,
false,
[10 + parseInt(Math.random() * 10)]
));
}, { align: 'right' });
createHeaderButton('+MA++', 'Insert Moving Average', function() {
console.log(widget.chart().createStudy(
'Moving Average',
false,
false,
[10 + parseInt(Math.random() * 10)],
undefined,
{ 'plot.color.0': '#FF0000' }
));
}, { align: 'right' });
createHeaderButton('+Stoch', 'Insert Stochastic', function() {
console.log(widget.chart().createStudy(
'Stochastic',
false,
false,
[12, 3, 3],
undefined,
{
'%d.color': '#000000',
'%k.color': '#00FF00',
}
));
}, { align: 'right' });
createHeaderButton('new order', '', function() {
widget.chart().createOrderLine();
});
createHeaderButton('rm all studies', '', function() {
widget.chart().removeAllStudies();
});
createHeaderButton('rm all shapes', '', function() {
widget.chart().removeAllShapes();
});
createHeaderButton('set view', '', function() {
widget.chart().setVisibleRange({
from: Date.UTC(2012, 2, 3) / 1000,
to: Date.UTC(2013, 3, 3) / 1000
});
});
createHeaderButton('get range', '', function() {
console.log(widget.activeChart().getVisibleRange());
});
});
widget.onChartReady(function() {
widget.onContextMenu(function(time, price) {
return [
{
@@ -103,140 +222,6 @@
];
});
widget.createButton()
.attr('title', "Save chart")
.on('click', function (e) {
widget.save(function(data) {
savedWidgetContent = data;
alert('Saved');
})
})
.append('<span>save</span>');
widget.createButton()
.attr('title', "Load chart")
.on('click', function (e) {
if (savedWidgetContent) {
widget.load(savedWidgetContent);
}
})
.append('<span>load</span>');
widget.createButton()
.attr('title', "Load chart")
.on('click', function (e) {
widget.load(referenceChart);
})
.append('<span>load reference</span>');
widget.createButton()
.attr('title', "Load chart")
.on('click', function (e) {
widget.load(referenceChart2);
})
.append('<span>load reference 2</span>');
widget.createButton()
.on('click', function (e) {
savedTemplate = widget.activeChart().createStudyTemplate({saveInterval: false});
})
.append('<span>save template (-i)</span>');
widget.createButton()
.on('click', function (e) {
savedTemplate = widget.activeChart().createStudyTemplate({saveInterval: true});
})
.append('<span>save template (+i)</span>');
widget.createButton()
.on('click', function (e) {
if (savedTemplate) {
widget.chart().applyStudyTemplate(savedTemplate);
}
})
.append('<span>apply template</span>');
widget.createButton()
.on('click', function (e) {
widget.setSymbol("F", '2D');
})
.append('<span>F, 2D</span>');
widget.createButton()
.on('click', function (e) {
widget.chart().clearMarks();
})
.append('<span>Clear marks</span>');
widget.createButton()
.attr('title', "Add item")
.on('click', function (e) {
widget.chart().createStudy("Bollinger Bands", false, false, [
10 + parseInt(Math.random() * 10),
3 + parseInt(Math.random() * 3)
], function (guid) {
console.log(guid);
}
);
})
.append('<span>+BB</span>');
widget.createButton({align: "right"})
.attr('title', "Add item")
.on('click', function (e) {
widget.chart().createStudy("Moving Average", false, false, [
10 + parseInt(Math.random() * 10)
], function (guid) {
console.log(guid);
}
);
})
.append('<span>+MA</span>');
widget.createButton({align: "right"})
.attr('title', "Add item")
.on('click', function (e) {
widget.chart().createStudy("Moving Average", false, false, [
10 + parseInt(Math.random() * 10)
], function (guid) {
console.log(guid);
},
{"plot.color.0" : "#FF0000"}
);
})
.append('<span>+MA++</span>');
widget.createButton({align: "right"})
.attr('title', "Add item")
.on('click', function (e) {
widget.chart().createStudy('Stochastic', false, false, [12, 3, 3], null, {"%d.color" : "#000000", "%k.color" : "#00FF00"});
})
.append('<span>+Stoch</span>');
widget.createButton()
.on('click', function (e) {
widget.chart().createOrderLine();
})
.append('<span>new order</span>');
widget.createButton()
.on('click', function (e) {
widget.chart().removeAllStudies();
})
.append('<span>rm all studies</span>');
widget.createButton()
.on('click', function (e) {
widget.chart().removeAllShapes();
})
.append('<span>rm all shapes</span>');
widget.onGrayedObjectClicked(function(x) {
alert("You are not permitted to use " + x.name + "(" + x.type + ")");
});
@@ -245,21 +230,6 @@
widget.chart().executeActionById("symbolSearch");
});
widget.createButton()
.on('click', function (e) {
widget.chart().setVisibleRange({
from: Date.UTC(2012, 2, 3) / 1000,
to: Date.UTC(2013, 3, 3) / 1000
});
})
.append('<span>set view</span>');
widget.createButton()
.on('click', function (e) {
console.log(widget.activeChart().getVisibleRange());
})
.append('<span>get range</span>');
var position = widget.chart().createPositionLine()
.onReverse(function(text) {
console.log("Position reverse event");
@@ -389,7 +359,7 @@
} // end of getMinAndMaxPrice callback
); // end of getMinAndMaxPrice
}); // end of widget.onChartReady
}); // end of TradingView.onready
}; // end of TradingView.onready
function getMinAndMaxPrice(udf_datafeed, time1, time2, callback) {
var minPrice = 99999, maxPrice = 0;
@@ -414,6 +384,8 @@
}, function(err) {
});
}
window.addEventListener('DOMContentLoaded', initOnReady, false);
</script>
</head>