{"version":3,"sources":["components/rsi/chart.js","utils.js","components/rsi/index.js","components/bollinger/chart.js","components/bollinger/index.js","components/candlestickchart/chart.js","components/candlestickchart/index.js","components/candlestickchartforcontinuousintraday/chart.js","components/candlestickchartforcontinuousintraday/index.js","components/candlestickchartfordiscontinuousintraday/chart.js","components/candlestickchartfordiscontinuousintraday/index.js","components/macd/chart.js","components/macd/index.js","components/volumeprofile/chart.js","components/volumeprofile/index.js","components/volumeprofilebysession/chart.js","components/volumeprofilebysession/index.js","components/renko/chart.js","components/renko/index.js","components/ohlcchartwithelderrayindicator/chart.js","components/ohlcchartwithelderrayindicator/index.js","components/ohlcchartwithelderimpulseindicator/chart.js","components/ohlcchartwithelderimpulseindicator/index.js","components/movingaveragecrossoveralgorithmv1/chart.js","components/movingaveragecrossoveralgorithmv1/index.js","components/movingaveragecrossoveralgorithmv2/chart.js","components/movingaveragecrossoveralgorithmv2/index.js","components/uix/table.js","table.js","pages/home/index.js","reportWebVitals.js","index.js"],"names":["CandleStickChartWithRSIIndicator","ema26","ema","id","options","windowSize","merge","d","c","accessor","ema12","smaVolume50","sma","sourcePath","rsiCalculator","rsi","atr14","atr","this","props","type","initialData","data","width","ratio","calculatedData","discontinuousTimeScaleProvider","inputDateAccessor","date","xScaleProvider","xScale","xAccessor","displayXAccessor","xExtents","last","Math","max","length","height","margin","left","right","top","bottom","seriesName","yExtents","high","low","padding","axisAt","orient","showTicks","outerTickSize","ticks","at","displayFormat","format","yAccessor","stroke","fill","itemType","edgeAt","close","open","origin","onClick","e","console","log","volume","w","h","tickFormat","tickValues","timeFormat","yLabel","yDisplayFormat","React","Component","defaultProps","fitWidth","getData","symbol","now","Date","startTime","setFullYear","getFullYear","endTime","getTime","url","fetch","then","response","text","chartData","columns","row","parseFloat","push","createChartData","JSON","parse","err","ChartRSIComponent","setState","state","callback","render","document","getElementById","bbStroke","middle","CandleStickChartWithBollingerBandOverlay","ema20","skipUndefined","sma20","ema50","bb","bollingerBand","onContextMenu","rest","onDoubleClick","ChartBollingerComponent","CandleStickChart","scaleTime","timeIntervalBarWidth","utcDay","CandleStickChartComponent","CandleStickChartForContinuousIntraDay","rectWidth","xDisplayFormat","CandleStickChartForContinuousIntraDayComponent","CandleStickChartForDiscontinuousIntraDay","CandleStickChartForDiscontinuousIntraDayComponent","macdAppearance","macd","signal","divergence","mouseEdgeAppearance","textFill","strokeOpacity","strokeWidth","arrowWidth","CandleStickChartWithMACDIndicator","macdCalculator","fast","slow","rectRadius","appearance","ChartMACDComponent","VolumeProfileChart","changeCalculator","change","widthRatio","opacity","ChartVolumeProfileChartComponent","VolumeProfileBySessionChart","bySession","showSessionBackground","ChartVolumeProfileBySessionChartComponent","Renko","renkoCalculator","renko","RenkoComponent","OHLCChartWithElderRayIndicator","elder","elderRay","bullPower","bearPower","baseAt","yScale","yValue","OHLCChartWithElderRayIndicatorComponent","OHLCChartWithElderImpulseIndicator","elderImpulseCalculator","elderImpulse","macdSource","emaSource","OHLCChartWithElderImpulseIndicatorComponent","MovingAverageCrossOverAlgorithmV1","buySell","algo","accumulator","prev","prevShortTerm","prevLongTerm","nowShortTerm","nowLongTerm","longShort","defaultAnnotationProps","fontFamily","fontSize","bind","longAnnotationProps","y","datum","tooltip","shortAnnotationProps","yAxisLabelX","yAxisLabelY","x","rotate","with","LabelAnnotation","when","usingProps","MovingAverageCrossOverAlgorithmV1Component","MovingAverageCrossOverAlgorithmV2","path","buyPath","sellPath","SvgPathAnnotation","MovingAverageCrossOverAlgorithmV2Component","Table","useTable","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","map","headerGroup","getHeaderGroupProps","headers","column","getHeaderProps","i","getRowProps","cells","cell","getCellProps","Styles","styled","div","makeColumns","Header","client","W3CWebSocket","process","subscribed","App","useState","status","placeholderButtonText","isDisabled","value","label","setSymbol","handleClick","useEffect","onclose","emit","onmessage","message","event","updateRowData","alertmessage","stringify","alert","eventName","subscription","send","component","title","thesholds","chart","investopedia","href","makeData","setData","useMemo","rowIndex","index","key","Fragment","className","resultLabel","loadingLabel","onPress","element","next","setTimeout","onChange","defaultValue","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.737b5fa8.chunk.js","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tAreaSeries,\n\tCandlestickSeries,\n\tLineSeries,\n\tRSISeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n\tMovingAverageTooltip,\n\tRSITooltip,\n\tSingleValueTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { ema, rsi, sma, atr } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass CandleStickChartWithRSIIndicator extends React.Component {\n\trender() {\n\t\tconst ema26 = ema()\n\t\t\t.id(0)\n\t\t\t.options({ windowSize: 26 })\n\t\t\t.merge((d, c) => {d.ema26 = c;})\n\t\t\t.accessor(d => d.ema26);\n\n\t\tconst ema12 = ema()\n\t\t\t.id(1)\n\t\t\t.options({ windowSize: 12 })\n\t\t\t.merge((d, c) => {d.ema12 = c;})\n\t\t\t.accessor(d => d.ema12);\n\n\t\tconst smaVolume50 = sma()\n\t\t\t.id(3)\n\t\t\t.options({ windowSize: 50, sourcePath: \"volume\" })\n\t\t\t.merge((d, c) => {d.smaVolume50 = c;})\n\t\t\t.accessor(d => d.smaVolume50);\n\n\t\tconst rsiCalculator = rsi()\n\t\t\t.options({ windowSize: 14 })\n\t\t\t.merge((d, c) => {d.rsi = c;})\n\t\t\t.accessor(d => d.rsi);\n\n\t\tconst atr14 = atr()\n\t\t\t.options({ windowSize: 14 })\n\t\t\t.merge((d, c) => {d.atr14 = c;})\n\t\t\t.accessor(d => d.atr14);\n\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst calculatedData = ema26(ema12(smaVolume50(rsiCalculator(atr14(initialData)))));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\n\t\t\t\t [d.high, d.low], ema26.accessor(), ema12.accessor()]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\n\t\t\t\t\t console.log(e)}\n\t\t\t\t\t\torigin={[-38, 15]}\n\t\t\t\t\t\toptions={[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema26.accessor(),\n\t\t\t\t\t\t\t\ttype: \"EMA\",\n\t\t\t\t\t\t\t\tstroke: ema26.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema26.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema12.accessor(),\n\t\t\t\t\t\t\t\ttype: \"EMA\",\n\t\t\t\t\t\t\t\tstroke: ema12.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema12.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t/>\n\n\t\t\t\t\n\t\t\t\t d.volume, smaVolume50.accessor()]}\n\t\t\t\t\torigin={(w, h) => [0, h - 400]}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t [0, h - 250]}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.rsi} />\n\n\t\t\t\t\t d.rsi}\n\t\t\t\t\t\toptions={rsiCalculator.options()} />\n\t\t\t\t\n\t\t\t\t [0, h - 125]} padding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nCandleStickChartWithRSIIndicator.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nCandleStickChartWithRSIIndicator.defaultProps = {\n\ttype: \"svg\",\n};\nCandleStickChartWithRSIIndicator = fitWidth(CandleStickChartWithRSIIndicator);\n\nexport default CandleStickChartWithRSIIndicator;\n","// https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md\nimport namor from 'namor'\n\nconst createChartData = function(data) {\n\tlet chartData = []\n\n\tchartData.columns = ['date', 'open', 'high', 'low', 'close', 'volume']\n\n\t/*\n0: \"date\"\n1: \"open\"\n2: \"high\"\n3: \"low\"\n4: \"close\"\n5: \"volume\"\n6: \"split\"\n7: \"dividend\"\n8: \"absoluteChange\"\n9: \"percentChange\"\n\t */\n\t/*\n\tabsoluteChange: \"\"\n\tclose: 25.710416\n\tdate: Mon Jan 04 2010 00:00:00 GMT-0500 (Eastern Standard Time) {}\n\tdividend: \"\"\n\thigh: 25.835021381744056\n\tlow: 25.411360259406774\n\topen: 25.436282332605284\n\tpercentChange: \"\"\n\tsplit: \"\"\n\tvolume: 38409100\n\t*/\n\n\tfor (let d of data) {\n\t\tlet row = {\n\t\t\tdate: new Date(d[0]),\n\t\t\topen: parseFloat(d[1]),\n\t\t\thigh: parseFloat(d[2]),\n\t\t\tlow: parseFloat(d[3]),\n\t\t\tclose: parseFloat(d[4]),\n\t\t\tvolume: parseFloat(d[5])\n\t\t}\n\t\tchartData.push(row)\n\t}\n\treturn chartData\n}\n\nexport function getData(symbol) {\n\tconst interval = \"1d\"\n\tconst now = new Date()\n\tconst startTime = new Date().setFullYear(now.getFullYear() - 1)\n\tconst endTime = now.getTime()\n\tconst limit = 1000;\n\n\ttry {\n\t\tconst url = `https://api.binance.us/api/v1/klines?symbol=${symbol}&interval=${interval}${startTime ? `&startTime=${startTime}` : ''}${endTime ? `&endTime=${endTime}` : ''}${limit ? `&limit=${limit}` : ''}`\n\t\tconst promiseData = fetch(url)\n\t\t\t.then(response => response.text())\n\t\t\t.then(data => createChartData(JSON.parse(data, 'utf-8')))\n\t\treturn promiseData\n\t} catch (err) {\n\t\tconsole.log(err);\n\t}\n}\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass ChartRSIComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default ChartRSIComponent;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tCandlestickSeries,\n\tLineSeries,\n\tBollingerSeries,\n\tBarSeries,\n\tAreaSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport { OHLCTooltip, MovingAverageTooltip, BollingerBandTooltip } from \"react-stockcharts/lib/tooltip\";\nimport { ema, sma, bollingerBand } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nconst bbStroke = {\n\ttop: \"#964B00\",\n\tmiddle: \"#000000\",\n\tbottom: \"#964B00\",\n};\n\nconst bbFill = \"#4682B4\";\n\nclass CandleStickChartWithBollingerBandOverlay extends React.Component {\n\trender() {\n\t\tconst ema20 = ema()\n\t\t\t.options({\n\t\t\t\twindowSize: 20, // optional will default to 10\n\t\t\t\tsourcePath: \"close\", // optional will default to close as the source\n\t\t\t})\n\t\t\t.skipUndefined(true) // defaults to true\n\t\t\t.merge((d, c) => {d.ema20 = c;}) // Required, if not provided, log a error\n\t\t\t.accessor(d => d.ema20) // Required, if not provided, log an error during calculation\n\t\t\t.stroke(\"blue\"); // Optional\n\n\t\tconst sma20 = sma()\n\t\t\t.options({ windowSize: 20 })\n\t\t\t.merge((d, c) => {d.sma20 = c;})\n\t\t\t.accessor(d => d.sma20);\n\n\t\tconst ema50 = ema()\n\t\t\t.options({ windowSize: 50 })\n\t\t\t.merge((d, c) => {d.ema50 = c;})\n\t\t\t.accessor(d => d.ema50);\n\n\t\tconst smaVolume50 = sma()\n\t\t\t.options({ windowSize: 20, sourcePath: \"volume\" })\n\t\t\t.merge((d, c) => {d.smaVolume50 = c;})\n\t\t\t.accessor(d => d.smaVolume50)\n\t\t\t.stroke(\"#4682B4\")\n\t\t\t.fill(\"#4682B4\");\n\n\t\tconst bb = bollingerBand()\n\t\t\t.merge((d, c) => {d.bb = c;})\n\t\t\t.accessor(d => d.bb);\n\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst calculatedData = ema20(sma20(ema50(smaVolume50(bb(initialData)))));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low], sma20.accessor(), ema20.accessor(), ema50.accessor(), bb.accessor()]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 20 }}\n\t\t\t\t\tonContextMenu={(...rest) => { console.log(\"chart - context menu\", rest); }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t { console.log(\"yAxis - double click\", rest); }}\n\t\t\t\t\t\tonContextMenu={(...rest) => { console.log(\"yAxis - context menu\", rest); }}\n\t\t\t\t\t/>\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t d.bb}\n\t\t\t\t\t\tstroke={bbStroke}\n\t\t\t\t\t\tfill={bbFill} />\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t console.log(e)}\n\t\t\t\t\t\torigin={[-38, 15]}\n\t\t\t\t\t\toptions={[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: sma20.accessor(),\n\t\t\t\t\t\t\t\ttype: sma20.type(),\n\t\t\t\t\t\t\t\tstroke: sma20.stroke(),\n\t\t\t\t\t\t\t\twindowSize: sma20.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema20.accessor(),\n\t\t\t\t\t\t\t\ttype: ema20.type(),\n\t\t\t\t\t\t\t\tstroke: ema20.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema20.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema50.accessor(),\n\t\t\t\t\t\t\t\ttype: ema50.type(),\n\t\t\t\t\t\t\t\tstroke: ema50.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema50.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t/>\n\t\t\t\t\t d.bb}\n\t\t\t\t\t\toptions={bb.options()} />\n\t\t\t\t\n\t\t\t\t d.volume, smaVolume50.accessor()]}\n\t\t\t\t\theight={150} origin={(w, h) => [0, h - 150]}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\" } />\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t d.volume} fill=\"#9B0A47\" />\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nCandleStickChartWithBollingerBandOverlay.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nCandleStickChartWithBollingerBandOverlay.defaultProps = {\n\ttype: \"svg\",\n};\nCandleStickChartWithBollingerBandOverlay = fitWidth(CandleStickChartWithBollingerBandOverlay);\n\nexport default CandleStickChartWithBollingerBandOverlay;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass ChartBollingerComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\nexport default ChartBollingerComponent;","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { scaleTime } from \"d3-scale\";\nimport { utcDay } from \"d3-time\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport { CandlestickSeries } from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last, timeIntervalBarWidth } from \"react-stockcharts/lib/utils\";\n\nclass CandleStickChart extends React.Component {\n\trender() {\n\t\tconst { type, width, data, ratio } = this.props;\n\t\tconst xAccessor = d => d.date;\n\t\tconst xExtents = [\n\t\t\txAccessor(last(data)),\n\t\t\txAccessor(data[data.length - 100])\n\t\t];\n\t\treturn (\n\t\t\t\n\n\t\t\t\t [d.high, d.low]}>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nCandleStickChart.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nCandleStickChart.defaultProps = {\n\ttype: \"svg\",\n};\nCandleStickChart = fitWidth(CandleStickChart);\n\nexport default CandleStickChart;","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass CandleStickChartComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\nexport default CandleStickChartComponent;","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { scaleTime } from \"d3-scale\";\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tCandlestickSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { OHLCTooltip } from \"react-stockcharts/lib/tooltip\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass CandleStickChartForContinuousIntraDay extends React.Component {\n\trender() {\n\t\tconst { type, data, width, ratio } = this.props;\n\n\t\tconst xAccessor = d => d.date;\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t d.volume]}\n\t\t\t\t\t height={150} origin={(w, h) => [0, h - 150]}>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"} />\n\n\t\t\t\t\t d.volume} fill=\"#9B0A47\" />\n\n\t\t\t\t\t d.volume} displayFormat={format(\".4s\")} fill=\"#0F0F0F\"/>\n\t\t\t\t\t d.volume} displayFormat={format(\".4s\")} fill=\"#0F0F0F\"/>\n\t\t\t\t\n\t\t\t\t [d.high, d.low]]}\n\t\t\t\t\t padding={{ top: 40, bottom: 20 }}>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nCandleStickChartForContinuousIntraDay.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nCandleStickChartForContinuousIntraDay.defaultProps = {\n\ttype: \"svg\",\n};\nCandleStickChartForContinuousIntraDay = fitWidth(CandleStickChartForContinuousIntraDay);\n\nexport default CandleStickChartForContinuousIntraDay;","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass CandleStickChartForContinuousIntraDayComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\nexport default CandleStickChartForContinuousIntraDayComponent;","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tCandlestickSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport { OHLCTooltip } from \"react-stockcharts/lib/tooltip\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass CandleStickChartForDiscontinuousIntraDay extends React.Component {\n\trender() {\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(initialData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t d.volume]}\n\t\t\t\t\t height={150} origin={(w, h) => [0, h - 150]}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"} />\n\n\t\t\t\t\t d.volume} fill=\"#9B0A47\" />\n\n\t\t\t\t\t d.volume} displayFormat={format(\".4s\")} fill=\"#0F0F0F\"/>\n\t\t\t\t\n\t\t\t\t [d.high, d.low]]}\n\t\t\t\t\t padding={{ top: 40, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nCandleStickChartForDiscontinuousIntraDay.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nCandleStickChartForDiscontinuousIntraDay.defaultProps = {\n\ttype: \"svg\",\n};\nCandleStickChartForDiscontinuousIntraDay = fitWidth(CandleStickChartForDiscontinuousIntraDay);\n\nexport default CandleStickChartForDiscontinuousIntraDay;","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass CandleStickChartForDiscontinuousIntraDayComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\nexport default CandleStickChartForDiscontinuousIntraDayComponent;","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tAreaSeries,\n\tCandlestickSeries,\n\tLineSeries,\n\tMACDSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n\tMovingAverageTooltip,\n\tMACDTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { ema, macd, sma } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\n\nconst macdAppearance = {\n\tstroke: {\n\t\tmacd: \"#FF0000\",\n\t\tsignal: \"#00F300\",\n\t},\n\tfill: {\n\t\tdivergence: \"#4682B4\"\n\t},\n};\n\nconst mouseEdgeAppearance = {\n\ttextFill: \"#542605\",\n\tstroke: \"#05233B\",\n\tstrokeOpacity: 1,\n\tstrokeWidth: 3,\n\tarrowWidth: 5,\n\tfill: \"#BCDEFA\",\n};\n\nclass CandleStickChartWithMACDIndicator extends React.Component {\n\trender() {\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\t\tconst ema26 = ema()\n\t\t\t.id(0)\n\t\t\t.options({ windowSize: 26 })\n\t\t\t.merge((d, c) => { d.ema26 = c; })\n\t\t\t.accessor(d => d.ema26);\n\n\t\tconst ema12 = ema()\n\t\t\t.id(1)\n\t\t\t.options({ windowSize: 12 })\n\t\t\t.merge((d, c) => {d.ema12 = c;})\n\t\t\t.accessor(d => d.ema12);\n\n\t\tconst macdCalculator = macd()\n\t\t\t.options({\n\t\t\t\tfast: 12,\n\t\t\t\tslow: 26,\n\t\t\t\tsignal: 9,\n\t\t\t})\n\t\t\t.merge((d, c) => {d.macd = c;})\n\t\t\t.accessor(d => d.macd);\n\n\t\tconst smaVolume50 = sma()\n\t\t\t.id(3)\n\t\t\t.options({\n\t\t\t\twindowSize: 50,\n\t\t\t\tsourcePath: \"volume\",\n\t\t\t})\n\t\t\t.merge((d, c) => {d.smaVolume50 = c;})\n\t\t\t.accessor(d => d.smaVolume50);\n\n\t\tconst calculatedData = smaVolume50(macdCalculator(ema12(ema26(initialData))));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low], ema26.accessor(), ema12.accessor()]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.close}\n\t\t\t\t\t\tfill={d => d.close > d.open ? \"#A2F5BF\" : \"#F9ACAA\"}\n\t\t\t\t\t\tstroke={d => d.close > d.open ? \"#0B4228\" : \"#6A1B19\"}\n\t\t\t\t\t\ttextFill={d => d.close > d.open ? \"#0B4228\" : \"#420806\"}\n\t\t\t\t\t\tstrokeOpacity={1}\n\t\t\t\t\t\tstrokeWidth={3}\n\t\t\t\t\t\tarrowWidth={2}\n\t\t\t\t\t/>\n\n\t\t\t\t\t\n\t\t\t\t\t console.log(e)}\n\t\t\t\t\t\torigin={[-38, 15]}\n\t\t\t\t\t\toptions={[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema26.accessor(),\n\t\t\t\t\t\t\t\ttype: \"EMA\",\n\t\t\t\t\t\t\t\tstroke: ema26.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema26.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema12.accessor(),\n\t\t\t\t\t\t\t\ttype: \"EMA\",\n\t\t\t\t\t\t\t\tstroke: ema12.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema12.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t d.volume, smaVolume50.accessor()]}\n\t\t\t\t\torigin={(w, h) => [0, h - 300]}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t [0, h - 150]} padding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.macd}\n\t\t\t\t\t\t{...macdAppearance} />\n\t\t\t\t\t d.macd}\n\t\t\t\t\t\toptions={macdCalculator.options()}\n\t\t\t\t\t\tappearance={macdAppearance}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nCandleStickChartWithMACDIndicator.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nCandleStickChartWithMACDIndicator.defaultProps = {\n\ttype: \"svg\",\n};\n\nCandleStickChartWithMACDIndicator = fitWidth(CandleStickChartWithMACDIndicator);\n\nexport default CandleStickChartWithMACDIndicator;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\n\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass ChartMACDComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default ChartMACDComponent;","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tVolumeProfileSeries,\n\tCandlestickSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n\tEdgeIndicator,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { change } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass VolumeProfileChart extends React.Component {\n\trender() {\n\n\t\tconst changeCalculator = change();\n\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst calculatedData = changeCalculator(initialData);\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\n\t\t\t\t d.volume]}\n\t\t\t\t\theight={150} origin={(w, h) => [0, h - 150]}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume}\n\t\t\t\t\t\twidthRatio={0.95}\n\t\t\t\t\t\topacity={0.3}\n\t\t\t\t\t\tfill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t [d.high, d.low]]}\n\t\t\t\t\tpadding={{ top: 40, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nVolumeProfileChart.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nVolumeProfileChart.defaultProps = {\n\ttype: \"svg\",\n};\nVolumeProfileChart = fitWidth(VolumeProfileChart);\n\nexport default VolumeProfileChart;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass ChartVolumeProfileChartComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default ChartVolumeProfileChartComponent;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tVolumeProfileSeries,\n\tCandlestickSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n\tEdgeIndicator,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { change } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass VolumeProfileBySessionChart extends React.Component {\n\trender() {\n\n\t\tconst changeCalculator = change();\n\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst calculatedData = changeCalculator(initialData);\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\n\t\t\t\t d.volume]}\n\t\t\t\t\theight={150} origin={(w, h) => [0, h - 150]}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume}\n\t\t\t\t\t\twidthRatio={0.95}\n\t\t\t\t\t\topacity={0.3}\n\t\t\t\t\t\tfill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t [d.high, d.low]]}\n\t\t\t\t\tpadding={{ top: 40, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nVolumeProfileBySessionChart.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nVolumeProfileBySessionChart.defaultProps = {\n\ttype: \"svg\",\n};\nVolumeProfileBySessionChart = fitWidth(VolumeProfileBySessionChart);\n\nexport default VolumeProfileBySessionChart;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass ChartVolumeProfileBySessionChartComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default ChartVolumeProfileBySessionChartComponent;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tRenkoSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { renko } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass Renko extends React.Component {\n\trender() {\n\t\tconst renkoCalculator = renko();\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\t\tconst calculatedData = renkoCalculator(initialData);\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider.inputDateAccessor(d => d.date);\n\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t d.volume}\n\t\t\t\t\theight={150} origin={(w, h) => [0, h - 150]}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t d.volume} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"} />\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nRenko.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nRenko.defaultProps = {\n\ttype: \"svg\",\n};\nRenko = fitWidth(Renko);\n\nexport default Renko;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\n\nclass RenkoComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default RenkoComponent ;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tOHLCSeries,\n\tElderRaySeries,\n\tStraightLine,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n\tSingleValueTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { change, elderRay } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass OHLCChartWithElderRayIndicator extends React.Component {\n\trender() {\n\t\tconst elder = elderRay();\n\t\tconst changeCalculator = change();\n\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst calculatedData = changeCalculator(elder(initialData));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low]}\n\t\t\t\t\tpadding={{ top: 10, right: 0, bottom: 20, left: 0 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t d.volume}\n\t\t\t\t\torigin={(w, h) => [0, h - 450]}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume}\n\t\t\t\t\t\tfill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}\n\t\t\t\t\t\topacity={0.4}/>\n\t\t\t\t\n\t\t\t\t [0, h - 300]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t `${format(\".2f\")(d.bullPower)}, ${format(\".2f\")(d.bearPower)}`}\n\t\t\t\t\t\torigin={[-40, 15]}/>\n\t\t\t\t\n\t\t\t\t elder.accessor()(d) && elder.accessor()(d).bullPower]}\n\t\t\t\t\torigin={(w, h) => [0, h - 200]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t elder.accessor()(d) && elder.accessor()(d).bullPower}\n\t\t\t\t\t\tbaseAt={(xScale, yScale, d) => yScale(0)}\n\t\t\t\t\t\tfill=\"#6BA583\" />\n\t\t\t\t\t\n\n\t\t\t\t\t elder.accessor()(d) && elder.accessor()(d).bullPower}\n\t\t\t\t\t\tyLabel=\"Elder Ray - Bull power\"\n\t\t\t\t\t\tyDisplayFormat={format(\".2f\")}\n\t\t\t\t\t\torigin={[-40, 15]}/>\n\t\t\t\t\n\t\t\t\t elder.accessor()(d) && elder.accessor()(d).bearPower]}\n\t\t\t\t\torigin={(w, h) => [0, h - 100]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t elder.accessor()(d) && elder.accessor()(d).bearPower}\n\t\t\t\t\t\tbaseAt={(xScale, yScale, d) => yScale(0)}\n\t\t\t\t\t\tfill=\"#FF0000\" />\n\t\t\t\t\t\n\n\t\t\t\t\t elder.accessor()(d) && elder.accessor()(d).bearPower}\n\t\t\t\t\t\tyLabel=\"Elder Ray - Bear power\"\n\t\t\t\t\t\tyDisplayFormat={format(\".2f\")}\n\t\t\t\t\t\torigin={[-40, 15]}/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nOHLCChartWithElderRayIndicator.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nOHLCChartWithElderRayIndicator.defaultProps = {\n\ttype: \"svg\",\n};\nOHLCChartWithElderRayIndicator = fitWidth(OHLCChartWithElderRayIndicator);\n\nexport default OHLCChartWithElderRayIndicator;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\nimport OHLCChartWithElderRayIndicator from \"./chart\";\n\nclass OHLCChartWithElderRayIndicatorComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default OHLCChartWithElderRayIndicatorComponent;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tBarSeries,\n\tOHLCSeries,\n\tLineSeries,\n\tMACDSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n\tMovingAverageTooltip,\n\tMACDTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { ema, macd, change, elderImpulse } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nconst macdAppearance = {\n\tstroke: {\n\t\tmacd: \"#FF0000\",\n\t\tsignal: \"#00F300\",\n\t},\n\tfill: {\n\t\tdivergence: \"#4682B4\"\n\t},\n};\n\nclass OHLCChartWithElderImpulseIndicator extends React.Component {\n\trender() {\n\n\t\tconst changeCalculator = change();\n\n\t\tconst ema12 = ema()\n\t\t\t.id(1)\n\t\t\t.options({ windowSize: 12 })\n\t\t\t.merge((d, c) => { d.ema12 = c; })\n\t\t\t.accessor(d => d.ema12);\n\n\t\tconst macdCalculator = macd()\n\t\t\t.options({\n\t\t\t\tfast: 12,\n\t\t\t\tslow: 26,\n\t\t\t\tsignal: 9,\n\t\t\t})\n\t\t\t.merge((d, c) => { d.macd = c; })\n\t\t\t.accessor(d => d.macd);\n\n\t\tconst elderImpulseCalculator = elderImpulse()\n\t\t\t.macdSource(macdCalculator.accessor())\n\t\t\t.emaSource(ema12.accessor());\n\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst calculatedData = elderImpulseCalculator(macdCalculator(ema12(changeCalculator(initialData))));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t elderImpulseCalculator.stroke()[d.elderImpulse]} />\n\n\t\t\t\t\t d.close} fill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}/>\n\n\t\t\t\t\t\n\t\t\t\t\t console.log(e)}\n\t\t\t\t\t\torigin={[-38, 5]}\n\t\t\t\t\t\toptions={[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyAccessor: ema12.accessor(),\n\t\t\t\t\t\t\t\ttype: \"EMA\",\n\t\t\t\t\t\t\t\tstroke: ema12.stroke(),\n\t\t\t\t\t\t\t\twindowSize: ema12.options().windowSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t d.volume}\n\t\t\t\t\torigin={(w, h) => [0, h - 300]}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t d.volume}\n\t\t\t\t\t\tfill={d => d.close > d.open ? \"#6BA583\" : \"#FF0000\"}\n\t\t\t\t\t\topacity={0.4}/>\n\t\t\t\t\n\t\t\t\t [0, h - 150]} padding={{ top: 10, bottom: 10 }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t d.macd}\n\t\t\t\t\t\t{...macdAppearance} />\n\t\t\t\t\t d.macd}\n\t\t\t\t\t\toptions={macdCalculator.options()}\n\t\t\t\t\t\tappearance={macdAppearance}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nOHLCChartWithElderImpulseIndicator.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nOHLCChartWithElderImpulseIndicator.defaultProps = {\n\ttype: \"svg\",\n};\nOHLCChartWithElderImpulseIndicator = fitWidth(OHLCChartWithElderImpulseIndicator);\n\nexport default OHLCChartWithElderImpulseIndicator;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\nimport OHLCChartWithElderImpulseIndicator from \"./chart\";\n\nclass OHLCChartWithElderImpulseIndicatorComponent extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default OHLCChartWithElderImpulseIndicatorComponent ;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tCandlestickSeries,\n\tLineSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n\tMovingAverageTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { ema } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport algo from \"react-stockcharts/lib/algorithm\";\nimport {\n\tLabel,\n\tAnnotate,\n\tLabelAnnotation,\n} from \"react-stockcharts/lib/annotation\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass MovingAverageCrossOverAlgorithmV1 extends React.Component {\n\trender() {\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst ema20 = ema()\n\t\t\t.id(0)\n\t\t\t.options({ windowSize: 13 })\n\t\t\t.merge((d, c) => { d.ema20 = c; })\n\t\t\t.accessor(d => d.ema20);\n\n\t\tconst ema50 = ema()\n\t\t\t.id(2)\n\t\t\t.options({ windowSize: 50 })\n\t\t\t.merge((d, c) => { d.ema50 = c; })\n\t\t\t.accessor(d => d.ema50);\n\n\t\tconst buySell = algo()\n\t\t\t.windowSize(2)\n\t\t\t.accumulator(([prev, now]) => {\n\t\t\t\tconst { ema20: prevShortTerm, ema50: prevLongTerm } = prev;\n\t\t\t\tconst { ema20: nowShortTerm, ema50: nowLongTerm } = now;\n\t\t\t\tif (prevShortTerm < prevLongTerm && nowShortTerm > nowLongTerm) return \"LONG\";\n\t\t\t\tif (prevShortTerm > prevLongTerm && nowShortTerm < nowLongTerm) return \"SHORT\";\n\t\t\t})\n\t\t\t.merge((d, c) => { d.longShort = c; });\n\n\t\tconst defaultAnnotationProps = {\n\t\t\tfontFamily: \"Glyphicons Halflings\",\n\t\t\tfontSize: 20,\n\t\t\topacity: 0.8,\n\t\t\tonClick: console.log.bind(console),\n\t\t};\n\n\t\tconst longAnnotationProps = {\n\t\t\t...defaultAnnotationProps,\n\t\t\tfill: \"#006517\",\n\t\t\ttext: \"\\ue093\",\n\t\t\ty: ({ yScale, datum }) => yScale(datum.low) + 20,\n\t\t\ttooltip: \"Go long\",\n\t\t};\n\n\t\tconst shortAnnotationProps = {\n\t\t\t...defaultAnnotationProps,\n\t\t\tfill: \"#E20000\",\n\t\t\ttext: \"\\ue094\",\n\t\t\ty: ({ yScale, datum }) => yScale(datum.high),\n\t\t\ttooltip: \"Go short\",\n\t\t};\n\n\t\tconst margin = { left: 80, right: 80, top: 30, bottom: 50 };\n\t\tconst height = 400;\n\n\t\tconst [yAxisLabelX, yAxisLabelY] = [width - margin.left - 40, margin.top + (height - margin.top - margin.bottom) / 2];\n\n\t\tconst calculatedData = buySell(ema50(ema20(initialData)));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low], ema20.accessor(), ema50.accessor()]}\n\t\t\t\t\tpadding={{ top: 10, bottom: 20 }}\n\t\t\t\t>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nMovingAverageCrossOverAlgorithmV1.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nMovingAverageCrossOverAlgorithmV1.defaultProps = {\n\ttype: \"svg\",\n};\n\nMovingAverageCrossOverAlgorithmV1 = fitWidth(MovingAverageCrossOverAlgorithmV1);\n\nexport default MovingAverageCrossOverAlgorithmV1;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\nimport MovingAverageCrossOverAlgorithmV1 from \"./chart\";\n\nclass MovingAverageCrossOverAlgorithmV1Component extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default MovingAverageCrossOverAlgorithmV1Component;\n","\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { format } from \"d3-format\";\nimport { timeFormat } from \"d3-time-format\";\n\nimport { ChartCanvas, Chart } from \"react-stockcharts\";\nimport {\n\tCandlestickSeries,\n\tLineSeries,\n} from \"react-stockcharts/lib/series\";\nimport { XAxis, YAxis } from \"react-stockcharts/lib/axes\";\nimport {\n\tCrossHairCursor,\n\tEdgeIndicator,\n\tCurrentCoordinate,\n\tMouseCoordinateX,\n\tMouseCoordinateY,\n} from \"react-stockcharts/lib/coordinates\";\n\nimport { discontinuousTimeScaleProvider } from \"react-stockcharts/lib/scale\";\nimport {\n\tOHLCTooltip,\n\tMovingAverageTooltip,\n} from \"react-stockcharts/lib/tooltip\";\nimport { ema } from \"react-stockcharts/lib/indicator\";\nimport { fitWidth } from \"react-stockcharts/lib/helper\";\nimport algo from \"react-stockcharts/lib/algorithm\";\nimport {\n\tLabel,\n\tAnnotate,\n\tSvgPathAnnotation,\n\tbuyPath,\n\tsellPath,\n} from \"react-stockcharts/lib/annotation\";\nimport { last } from \"react-stockcharts/lib/utils\";\n\nclass MovingAverageCrossOverAlgorithmV2 extends React.Component {\n\trender() {\n\t\tconst { type, data: initialData, width, ratio } = this.props;\n\n\t\tconst ema20 = ema()\n\t\t\t.id(0)\n\t\t\t.options({ windowSize: 13 })\n\t\t\t.merge((d, c) => { d.ema20 = c; })\n\t\t\t.accessor(d => d.ema20);\n\n\t\tconst ema50 = ema()\n\t\t\t.id(2)\n\t\t\t.options({ windowSize: 50 })\n\t\t\t.merge((d, c) => { d.ema50 = c; })\n\t\t\t.accessor(d => d.ema50);\n\n\t\tconst buySell = algo()\n\t\t\t.windowSize(2)\n\t\t\t.accumulator(([prev, now]) => {\n\t\t\t\tconst { ema20: prevShortTerm, ema50: prevLongTerm } = prev;\n\t\t\t\tconst { ema20: nowShortTerm, ema50: nowLongTerm } = now;\n\t\t\t\tif (prevShortTerm < prevLongTerm && nowShortTerm > nowLongTerm) return \"LONG\";\n\t\t\t\tif (prevShortTerm > prevLongTerm && nowShortTerm < nowLongTerm) return \"SHORT\";\n\t\t\t})\n\t\t\t.merge((d, c) => { d.longShort = c; });\n\n\t\tconst defaultAnnotationProps = {\n\t\t\tonClick: console.log.bind(console),\n\t\t};\n\n\t\tconst longAnnotationProps = {\n\t\t\t...defaultAnnotationProps,\n\t\t\ty: ({ yScale, datum }) => yScale(datum.low),\n\t\t\tfill: \"#006517\",\n\t\t\tpath: buyPath,\n\t\t\ttooltip: \"Go long\",\n\t\t};\n\n\t\tconst shortAnnotationProps = {\n\t\t\t...defaultAnnotationProps,\n\t\t\ty: ({ yScale, datum }) => yScale(datum.high),\n\t\t\tfill: \"#FF0000\",\n\t\t\tpath: sellPath,\n\t\t\ttooltip: \"Go short\",\n\t\t};\n\n\t\tconst margin = { left: 80, right: 80, top: 30, bottom: 50 };\n\t\tconst height = 400;\n\n\t\tconst [yAxisLabelX, yAxisLabelY] = [width - margin.left - 40, margin.top + (height - margin.top - margin.bottom) / 2];\n\n\t\tconst calculatedData = buySell(ema50(ema20(initialData)));\n\t\tconst xScaleProvider = discontinuousTimeScaleProvider\n\t\t\t.inputDateAccessor(d => d.date);\n\t\tconst {\n\t\t\tdata,\n\t\t\txScale,\n\t\t\txAccessor,\n\t\t\tdisplayXAccessor,\n\t\t} = xScaleProvider(calculatedData);\n\n\t\tconst start = xAccessor(last(data));\n\t\tconst end = xAccessor(data[Math.max(0, data.length - 150)]);\n\t\tconst xExtents = [start, end];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t [d.high, d.low], ema20.accessor(), ema50.accessor()]}\n\t\t\t\t\t\tpadding={{ top: 10, bottom: 20 }}>\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\n/*\n\t\t\t\t\t d.close} stroke=\"#000000\" />\n\n*/\n\nMovingAverageCrossOverAlgorithmV2.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\twidth: PropTypes.number.isRequired,\n\tratio: PropTypes.number.isRequired,\n\ttype: PropTypes.oneOf([\"svg\", \"hybrid\"]).isRequired,\n};\n\nMovingAverageCrossOverAlgorithmV2.defaultProps = {\n\ttype: \"svg\",\n};\n\nMovingAverageCrossOverAlgorithmV2 = fitWidth(MovingAverageCrossOverAlgorithmV2);\n\nexport default MovingAverageCrossOverAlgorithmV2;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Chart from './chart';\nimport { getData } from \"../../utils\"\nimport { TypeChooser } from \"react-stockcharts/lib/helper\";\nimport MovingAverageCrossOverAlgorithmV1 from \"./chart\";\n\nclass MovingAverageCrossOverAlgorithmV2Component extends React.Component {\n\tcomponentDidMount() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tlet symbol = this.props.symbol\n\t\tif (symbol) {\n\t\t\tgetData(symbol).then(data => {\n\t\t\t\tthis.setState({data})\n\t\t\t})\n\t\t}\n\t}\n\trender() {\n\t\tif (this.state == null) {\n\t\t\treturn
Loading...
\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t{type => }\n\t\t\t\n\t\t)\n\t}\n\tcomponentWillUnmount() {\n\t\t// fix Warning: Can't perform a React state update on an unmounted component\n\t\tthis.setState = (state,callback)=>{\n\t\t\treturn;\n\t\t};\n\t}\n}\n\nrender(\n\t,\n\tdocument.getElementById(\"root\")\n);\n\nexport default MovingAverageCrossOverAlgorithmV2Component;\n","import React from \"react\";\nimport { useTable } from 'react-table'\n\nfunction Table({ columns, data }) {\n // Use the state and functions returned from useTable to build your UI\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n } = useTable({\n columns,\n data,\n })\n\n // Render the UI for your table\n return (\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n ))}\n \n ))}\n \n \n {rows.map((row, i) => {\n prepareRow(row)\n return (\n \n {row.cells.map(cell => {\n return \n })}\n \n )\n })}\n \n
{column.render('Header')}
{cell.render('Cell')}
\n )\n}\n\nexport default Table","//https://flatlogic.com/blog/react-table-guide-and-best-react-table-examples/\n\nimport styled from \"styled-components\";\nimport React from \"react\";\n\nexport const Styles = styled.div`\npadding: 1rem;\ntable {\n\twidth: 100%;\n\theight: 100%;\n\tborder-spacing: 0;\n\tborder: 1px solid black;\n\ttr {\n\t:last-child {\n\t\t\ttd {\n\t\t\t\tborder-bottom: 0;\n\t\t\t}\n\t\t}\n\t}\n\tth,\n\t\ttd {\n\t\tmargin: 0;\n\t\tpadding: 0.5rem;\n\t\tborder-bottom: 1px solid black;\n\t\tborder-right: 1px solid black;\n\t:last-child {\n\t\t\tborder-right: 0;\n\t\t}\n\t}\n}\n`\nexport function makeData(handleClick) {\n\tconst data = [\n\t\t{\n\t\t\tstatus: 'WAITING',\n\t\t\tdate: '',\n\t\t\tsignal: 'RSI',\n\t\t\tthesholds: '',\n\t\t\talertmessage: '',\n\t\t\tchart: ,\n\t\t\tinvestopedia: RSI ...,\n\t\t},\n\t\t{\n\t\t\tstatus: 'WAITING',\n\t\t\tdate: '',\n\t\t\tsignal: 'Bollinger Band',\n\t\t\tthesholds: '',\n\t\t\talertmessage: '',\n\t\t\tchart: ,\n\t\t\tinvestopedia: Bollinger ...,\n\t\t},\n\t\t{\n\t\t\tstatus: 'WAITING',\n\t\t\tdate: '',\n\t\t\tsignal: 'MACD',\n\t\t\tthesholds: '',\n\t\t\talertmessage: '',\n\t\t\tchart: ,\n\t\t\tinvestopedia: MACD ...,\n\t\t},\n\t\t{\n\t\t\tstatus: 'WAITING',\n\t\t\tdate: '',\n\t\t\tsignal: 'Renko',\n\t\t\tthesholds: '',\n\t\t\talertmessage: '',\n\t\t\tchart: ,\n\t\t\tinvestopedia: Renko ...,\n\t\t},\n\t]\n\treturn data\n}\n\nexport function makeColumns(props) {\n\tconst columns = [\n\t\t\t{\n\t\t\t\tHeader: 'Status',\n\t\t\t\taccessor: 'status',\n\t\t\t},\n\t\t\t{\n\t\t\t\tHeader: 'Date',\n\t\t\t\taccessor: 'date',\n\t\t\t},\n\t\t\t{\n\t\t\t\tHeader: 'Signal',\n\t\t\t\taccessor: 'signal',\n\t\t\t},\n\t\t\t{\n\t\t\t\tHeader: 'Thresholds',\n\t\t\t\taccessor: 'thresholds',\n\t\t\t},\n\t\t\t{\n\t\t\t\tHeader: 'Last Alert Message',\n\t\t\t\taccessor: 'alertmessage',\n\t\t\t},\n\t\t\t{\n\t\t\t\tHeader: 'Chart',\n\t\t\t\taccessor: 'chart',\n\t\t\t},\n\t\t\t{\n\t\t\t\tHeader: 'Investopedia',\n\t\t\t\taccessor: 'investopedia',\n\t\t\t},\n\t\t]\n\treturn columns\n}","import \"./index.css\";\nimport React, {Component, useCallback, useEffect, useMemo, useRef} from \"react\";\nimport {AwesomeButtonProgress} from 'react-awesome-button';\nimport AwesomeButtonStyles from 'react-awesome-button/src/styles/styles.scss'\nimport {w3cwebsocket as W3CWebSocket} from \"websocket\";\nimport Select from \"react-select\";\nimport ChartRSIComponent from \"../../components/rsi\";\nimport ChartBollingerComponent from \"../../components/bollinger\";\nimport CandleStickChartComponent from \"../../components/candlestickchart\";\nimport CandleStickChartForContinuousIntraDayComponent from \"../../components/candlestickchartforcontinuousintraday\";\nimport CandleStickChartForDiscontinuousIntraDayComponent from \"../../components/candlestickchartfordiscontinuousintraday\";\nimport ChartMACDComponent from \"../../components/macd\";\nimport ChartVolumeProfileChartComponent from \"../../components/volumeprofile\";\nimport ChartVolumeProfileBySessionChartComponent from \"../../components/volumeprofilebysession\";\nimport RenkoComponent from \"../../components/renko\";\nimport OHLCChartWithElderRayIndicatorComponent from \"../../components/ohlcchartwithelderrayindicator\";\nimport OHLCChartWithElderImpulseIndicatorComponent from \"../../components/ohlcchartwithelderimpulseindicator\";\nimport MovingAverageCrossOverAlgorithmV1 from \"../../components/movingaveragecrossoveralgorithmv1\";\nimport MovingAverageCrossOverAlgorithmV2 from \"../../components/movingaveragecrossoveralgorithmv2\";\nimport Table from \"../../components/uix/table\";\nimport {makeColumns, makeData, Styles} from \"../../table\";\n\n// https://stackoverflow.com/questions/49784166/using-switch-statement-for-react-rendering\n// https://www.digitalocean.com/community/tutorials/five-ways-to-convert-react-class-components-to-functional-components-with-react-hooks\n\n\nconst client = new W3CWebSocket(process.env.REACT_APP_WEBSOCKET_URL);\nlet subscribed = false\n\nfunction App() {\n const [state, setState] = React.useState({\n status: 'disconnected',\n placeholderButtonText: 'Subscribe to Signals',\n isDisabled: true,\n value: {value: 'RSI', label: 'RSI'},\n })\n\n const [symbol, setSymbol] = React.useState({value: 'BTCUSDT', label: 'BTCUSDT'})\n\n let options = [\n {value: 'RSI', label: 'RSI'},\n {value: 'Bollinger', label: 'Bollinger'},\n {value: 'CandleStickChart', label: 'CandleStick Chart'},\n {value: 'CandleStickChartForContinuousIntraDay', label: 'CandleStick Chart For Continuous Intra Day'},\n {value: 'CandleStickChartForDiscontinuousIntraDay', label: 'CandleStick Chart For Discontinuous Intra Day'},\n {value: 'MACD', label: 'MACD'},\n {value: 'Moving Average Cross Over Algorithm V1', label: 'Moving Average Cross Over Algorithm V1'},\n {value: 'Moving Average Cross Over Algorithm V2', label: 'Moving Average Cross Over Algorithm V2'},\n {value: 'OHLC Chart With Elder Impulse Indicator', label: 'OHLC Chart With Elder Impulse Indicator'},\n {value: 'OHLC Chart With Elder Ray Indicator', label: 'OHLC Chart With Elder Ray Indicator'},\n {value: 'Renko', label: 'Renko'},\n {value: 'Volume Profile by Session', label: 'Volume Profile by Session'},\n {value: 'Volume Profile', label: 'Volume Profile'},\n ]\n\n let symbol_options = [\n //{value: 'PIVXBTC', label: 'PIVXBTC'},\n //{value: 'ZECBTC', label: 'ZECBTC'},\n //{value: 'DASHBTC', label: 'DASHBTC'},\n {value: 'BTCUSDT', label: 'BTCUSDT'},\n {value: 'ETHUSDT', label: 'ETHUSDT'},\n\n ]\n\n const onChange = (value) => {\n setState({...state, value: value})\n }\n\n const handleClick = value => e => {\n setState({...state, value: value})\n };\n\n const onSymbolChange = (symbol) => {\n setSymbol(symbol)\n }\n\n useEffect( () => {\n //client.onopen = () => {\n // emit(\"subscribe\", \"crypto_signal.crypto_signal\")\n //};\n client.onclose = () => {\n emit(\"unsubscribe\", \"crypto_signal.crypto_signal\")\n };\n client.onmessage = (message) => {\n let data = JSON.parse(message.data);\n if (data.event === 'subscribe' || data.event === 'unsubscribe') {\n return;\n }\n data = JSON.parse(message.data);\n updateRowData(0, {status: 'RECEIVED', alertmessage: JSON.stringify(data.data.alert.alert)})\n };\n }, [state]);\n\n const subscribe = () => {\n emit(\"subscribe\", \"crypto_signal.crypto_signal\")\n }\n\n const unsubscribe = () => {\n emit(\"unsubscribe\", \"crypto_signal.crypto_signal\")\n }\n\n\n const emit = (eventName, subscription) => {\n client.send(JSON.stringify({\n event: eventName,\n subscription: subscription,\n }))\n }\n\n useEffect(() => {\n //return () => {\n // emit(\"unsubscribe\", \"crypto_signal.crypto_signal\")\n //}\n }, [state])\n\n\n const toggle = () => {\n subscribed = !subscribed\n }\n\n let component = null;\n let title = null;\n\n switch(state.value.value) {\n case 'RSI':\n component = \n title = symbol.label + ' Binance Candle Stick Chart With RSI Indicator'\n break;\n case 'Bollinger':\n component = \n title = symbol.label + ' Binance Candle Stick Chart With Bollinger Band Overlay'\n break;\n case 'CandleStickChart':\n component = \n title = symbol.label + ' Binance Candle Stick Chart'\n break;\n case 'CandleStickChartForContinuousIntraDay':\n component = \n title = symbol.label + ' Binance Candle Stick Chart For Continuous Intra Day'\n break;\n case 'CandleStickChartForDiscontinuousIntraDay':\n component = \n title = symbol.label + ' Binance Candle Stick Chart For Discontinuous Intra Day'\n break;\n case 'MACD':\n component = \n title = symbol.label + ' Binance Candle Stick Chart With MACD Indicator'\n break;\n case 'Moving Average Cross Over Algorithm V1':\n component = \n title = symbol.label + ' Binance Moving Average Cross Over Algorithm V1'\n break;\n case 'Moving Average Cross Over Algorithm V2':\n component = \n title = symbol.label + ' Binance Moving Average Cross Over Algorithm V2'\n break;\n case 'OHLC Chart With Elder Impulse Indicator':\n component = \n title = symbol.label + ' Binance OHLC Chart With Elder Impulse Indicator'\n break;\n case 'OHLC Chart With Elder Ray Indicator':\n component = \n title = symbol.label + ' Binance OHLC Chart With Elder Ray Indicator'\n break;\n case 'Renko':\n component = \n title = symbol.label + ' Binance Renko'\n break;\n case 'Volume Profile by Session':\n component = \n title = symbol.label + ' Binance Volume Profile by Session'\n break;\n case 'Volume Profile':\n component = \n title = symbol.label + ' Binance Volume Profile'\n break;\n default:\n component = \n title = symbol.label + ' Binance Candle Stick Chart With RSI Indicator'\n }\n\n const subscribeButtonLabel = () => {\n if (subscribed) {\n return 'Unsubscribe from Signals';\n } else {\n return 'Subscribe to Signals';\n }\n }\n\n const [data, setData] = React.useState(() => makeData(handleClick))\n const columns = React.useMemo(makeColumns)\n\n const updateRowData = (rowIndex, value) => {\n setData(data =>\n data.map((row, index) => {\n if (index === rowIndex) {\n for (let key in value) {\n row[key] = value[key]\n }\n return row\n }\n return row\n })\n )\n }\n\n return (\n \n
\n zkbitcoin.com assumes no liability for any loss or damage arising from the use of this software\n
\n
\n
\n
\n {\n subscribed ? unsubscribe() : subscribe()\n toggle()\n setTimeout(() => {\n next()\n }, 600)\n setState({...state, placeholderButtonText: subscribeButtonLabel()})\n }}\n >\n {state.placeholderButtonText}\n \n\n
\n \n \n
\n
\n
\n \n \n \n \n \n
\n\n
\n
\n
\n

\n {title}\n

\n {component}\n
\n \n \n );\n}\nexport default App\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './assets/scss/global.scss';\nimport App from './pages/home';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();"],"sourceRoot":""}