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:
278
test.html
278
test.html
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user