Nifty yield curveREAL-CASE SCENARIO:-
IN10Y(10yr yield t- bill) are govt. backed bonds provide basic interest or coupon rate. If the coupon rate falls below (yield =(1/price) the coupon rates of 3 month bond IN03MY(3m yield t- bill), investors are pessimistic about future growth of the economy.
This pessimistic behavior can be seen in the graph when change in background color.
While optimistic behavior scenario when investors no longer interested in long-term bonds and dumping 10Y T-bills causing yields to raise above short term 3m T-bill .
Komut dosyalarını "curve" için ara
[KL] Mean Reversion (ATR) StrategyThis strategy will enter into a position when price volatility is relative high, betting that price will subsequently trend in a favourable direction.
Hypothesis : During periods of high price volatility, ATR will divert from its moving average by at least +/- one standard deviation. Eventually, ATR will revert back to the mean. However, just knowing the magnitude of increase/decrease of ATR does not give a trend signal, so we need to introduce a model in this script to predict whether the next bars will be up/down.
Trend Prediction : This strategy calculates the expected logarithmic return of the security (the "Drift") and considers prices to be moving in uptrend if the drift curve is upward sloping or if the drift value is positive.
Entry Conditions : Long position is entered when:
(a) ATR has diverted from mean by one standard deviation, and
(b) trend is predicted to move in our favor.
Exit Condition : When trailing stop loss is hit.
Results from backtesting against VOO (1H timeframe):
- approx 46% win rate over 491 trades, on average holding for 20 hours per trade
- price at the beginning of backtest (Jan. 2015) was $187.52, giving holding period return of ~120% had we not sold in between ("HPR of HODL'ing")
- this strategy gained ~159%, exceeding ~120% HPR of HODL'ing
QuantAnna: Relative Strength Plus (RS+)NSE:TATAMOTORS
Relative strength indicator which shows ratio between two stocks/assets .. usually between stock & its indices
features of indicator is as following.
1. Values oscillates around zero, it is bullish when above zero & bearish when below zero.
1. Weighted smoothing which removes unwanted whipsaws but keeps trend curve intact.
3. In-Built list of Nifty sector indices to show stocks comparison with its sector
please do send your feedback and suggestions.
JCipher Stochastic RSI Crossover AlertsCustom indicator to plot the stochastic RSI and print a highlighting bar to indicate when the fast signal curve crosses the slower one from underneath (crossover), to indicate a bullish trend change.
TradePro Parabolic SAR BackgroundTradePro Parabolic SAR Background
This indicator is a small tribute to youtuber TradePro
The operation is simple. It is the same Parabolic SAR indicator with its default configuration, but in background format. It is a new way to visualize the same information, more understandably. It is in itself a complete trading system, it can be used in conjunction with the traditional Parabolic SAR to locate the stop loss.
Parabolic SAR
In stock and securities market technical analysis, parabolic SAR (parabolic stop and reverse) is a method devised by J. Welles Wilder, Jr., to find potential reversals in the market price direction of traded goods such as securities or currency exchanges such as forex. It is a trend-following (lagging) indicator and may be used to set a trailing stop loss or determine entry or exit points based on prices tending to stay within a parabolic curve during a strong trend.
Similar to option theory's concept of time decay, the concept draws on the idea that "time is the enemy". Thus, unless a security can continue to generate more profits over time, it should be liquidated. The indicator generally works only in trending markets, and creates "whipsaws" during ranging or, sideways phases. Therefore, Wilder recommends first establishing the direction or change in direction of the trend through the use of parabolic SAR, and then using a different indicator such as the Average Directional Index to determine the strength of the trend.
A parabola below the price is generally bullish, while a parabola above is generally bearish. A parabola below the price may be used as support, whereas a parabola above the price may represent resistance.
[blackcat] L2 Sine-Weighted Moving Average (SWMA)Level: 2
Background
Invented by Patrick Lafferty in 1999, a Sine Weighted Moving Average (SWMA) takes its weighting from the first half of a Sine wave cycle and accordingly, the most weighting is given to the data in the middle of the data set. It is therefore very similar to the Triangular Moving Average.
Function
A sine weighted moving average (Sine-MA) applies weights to each bar in the shape of the bulge in a sine curve from 0 to pi. For an N-bar average the weightings are
/ 1 \ / 2 \ / N \
sin | --- * pi |, sin | --- * pi |, ..., sin | --- * pi |
\ N+1 / \ N+1 / \ N+1 /
The effect is that middle prices have the greatest weight (much like the TMA, Triangular Moving Average). A Sine Weighted Moving Average ( Sine WMA ) takes its weighting from the first half of a Sine wave cycle and accordingly, the most weighting is given to the data in the middle of the data set.
Key Signal
SWMA(FastLength) --> SWMA Fast Line.
SWMA(SlowLength) --> SWMA Slow Line.
Remarks
This is a Level 2 free and open source indicator.
Feedbacks are appreciated.
Multiple Regression Polynomial ForecastEXPERIMENTAL:
Forecasting using a polynomial regression over the estimates of multiple linear regression forecasts.
note: on low data the estimates are skewd away of initial value, i added the i_min_estimate option in to try curve this issue with limited success "o_o.
Financial Astrology Moon SpeedThe acceleration of the Moon seems to be important in determining the periods of increasing volatility, when the speed is accelerating we can note that the price range of the candles during the acceleration period is greater than the candles during the deceleration period. In other words, the speed increase produce stronger effect in the price action and is expected that Moon aspects during speed acceleration are more intense than the ones formed during deceleration.
In order to evaluate this astro trading pattern, observe when Moon touch the speed minima around 11.5 degrees per day, at that point the speed curve start to increase until it reach the maxima around 15 degrees per day, within this period the candles price range seems to be more intense.
Note: The Moon speed indicator is based on an ephemeris array that covers years 2010 to 2030, prior or after this years the speed is not available, this daily ephemeris are based on UTC time so in order to align properly with the price bars times you should set UTC as your chart timezone.
[blackcat] L1 Mel Widner Rainbow ChartNOTE: Because the originally released script failed to comply with the House Rule in the description, it was banned. After revising and reviewing the description, it is republished again. Please forgive the inconvenience caused.
Level: 1
Background
The Rainbow Charts indicator is a technical analysis tool that follows trend. It helps traders to visualize a full spectrum of trends in the market. Mel Widner developed the indicator and elaborated it in the 1997 issue of Technical Analysis of Stocks and Commodities magazine. It uses 10 simple moving averages and hence, it is a very interesting take on a simple moving average.
Function
The basis of the Rainbow Charts indicator are 10 moving averages. The first Rainbow Moving Average is a 2-period simple moving average. It applies recursive smoothing to this first SMA. The first moving average is the base of nine other simple Rainbow Moving Averages of different lengths. Each SMA bases on the previous SMA. The application of the recursive smoothing enables the indicator to create a full spectrum of the current trends in the market. As we know that the financial markets are full of wonders and surprises and we have an indicator that also surprises us. Yes, it is none other than the Rainbow Charts indicator that presents information on the charts in the form of a rainbow. That is the reason that it is known as the Rainbow Charts indicator.
The interpretation of the Rainbow Charts indicator is quite straightforward. The Rainbow Moving Average with the least recursive smoothing stays at the very top of the Rainbow during a bullish trend in the market. Conversely, the moving average with the most recursive smoothing stays at the bottom of the Rainbow.
On the other hand, the positions of the least and the most smoothed moving averages reverses during a bearish trend in the market. Now the least smoothed moving average stays at the bottom while the most smoothed moving average stays at the top of the Rainbow.
The Rainbow Charts indicator’s moving averages track the uptrend or downtrend in the market. The moving averages track the trend as it progresses and cross each other in a sequential order. The distancing of the price from the Rainbow indicates the continuation of the current market trend. Conversely, if the price moves closer to the Rainbow, it suggests that a potential trend reversal is imminent.
The use of the indicator is also quite simple. Traders should look for initiating a buy position as soon as a strong positive move starts. Similarly, they should look for opening a sell position at the very beginning of a strong negative trend. It is important to note that the angle of the moving averages helps to identify the strength of a trend. The steeper curve suggests a stronger trend and vice versa.
Traders can also use the tool in combination with other technical analysis tools as a trend-following indicator. Traders can enter a buy position when indicators suggest a strong bullish trend. They can initiate a sell position when indicators indicate a bearish trend. Technical analysts and experts always suggest to use the Rainbow Charts indicator in combination with other technical analysis tools for successful trading.
Key Signal
Plot a1~c4 --> 10 Rainbow Moving Averages.
Remarks
This is a Level 1 free and open source indicator.
Feedbacks are appreciated.
MashumeHullTV█ OVERVIEW
This plots the Hull Moving Average Turning Points and Concavity
with the addition of colored segments representing concavity and turning points: maxima, minima and inflection.
a fast way to determine the trend direction and possible reversals based on concavity of the trend
Dark Green: Concave Up but HMA decreasing. The 'mood' has changed and the declining trend of the HMA is slowing. Possible trend change to Uptrend soon
Light Green: Concave up and HMA increasing. Price is increasing, and since the curve is still concave up, it is accelerating upward. Uptrend
Orange: Concavity is now downward, and though price is still increasing, the rate has slowed, perhaps the mood has become less enthusiastic. Possible trend change to Downtrend soon
Red: Concave down and HMA decreasing. Downtrend
Buy signals generated when Hull turns from Dark Green -> Light Green
Sell signals generated when Hull turns from Orange -> Red
To best determine if this is a entry point or a trend reversal, it is recommended to use in conjunction with the QQEMoMoTV indicator
█ FEATURES
Calculations
Calculates the concavity of the Hull Moving Average comparing the Hull concavity of the current bar to the previous bar and displays the concavity in the form of 4 different colors.
Note: may cause repainting, so recommended to use with another indicator such as the QQEMoMoTV indicator to confirm signals.
Calculates divergence between the calculated HMA and the actual price and displays this in the Divergence Label.
Calculates the local minima, maxima and inflection points with the ability to display these as auto support/resistance lines.
Inputs
You can use the script's inputs to configure:
• Calculation Source (default HL2)
• HMA Length (default 21)
• Lookback (default 2)
• Whether to show Auto Support/Resist Lines
• Whether to show Buy/Sell Arrows
• Whether to show Divergence Label
• Whether to extend Local Auto Support/Resist Lines
Alerts
Buy Signal alert based on HMA crossing above MA_Min/Hull Support, when Hull turns from Dark Green -> Light Green, Bullish
Sell Signal alert based on HMA crossing below MA_Max/Hull Resistance, when Hull turns from Orange -> Red, Bearish
Experimental support for applying the indicator to higher time frames
eg. charting the hourly MashumeHull indicator on 15 min chart. See the commented code to access this feature
█ CREDITS
Original Author: Seth Urion (Mashume)
Feature upgrades and usage: Xiuying
Converted to Tradingview by: Machdragon
Inverse BandsI'm very new to trading. I've been toying with moving averages to trigger swing trades and wanted an indicator that would swell when price moves sideways and squeeze when price is trending.
So this is the inverse of the popular Bollinger Bands indicator. It makes a very easy identifier for price breakout when paired with your favorite fast moving average. When MA falls outside the bands, it indicates an emerging trend. Still requires some curve fitting, but it is a work in progress.
I hope this isn't a direct copy of something I am not aware of.
Moving Average BandsUse this script to find buy and sell zones for BTC based on momentum of the move relative to the average asset price over a given period. The script plots a series of offset bands above and below the Simple Moving Average. When price crosses another band further from the SMA, the background is rendered brighter. The brighter the background, the stronger the buy and sell signal is, as the expectation is that price wants to return to the SMA. Settings are adjustable to fine tune to various time frames and assets. Good settings for BTC Daily are length 30, layers at 10, 20, 30, and 40.
On 1H BTC/USD I use length 200, layers at 5, 10, 15, 20 to find decent swing trading opportunities.
On BTC/USD 1D chart, combine with Bitcoin Logarithmic Growth Curve from @mabonyi (original by @quantadelic )for confluence of very reliable signals.
SMA&BOLL脚本用来将sma和布林带统一呈现, 方便及时捕捉价格的走势与波动区间. 只要简单地修改SMA的两条线, 布林带的中间线同时作为SMA的第三条长周期参考线也作为布林带的基础计算曲线, 一线双用节省资源.
The script is used to present the sma and Bollinger bands in a unified manner, which is convenient to capture the price trend and fluctuation range in time. Just simply modify the two lines of the SMA, and the middle line of the Bollinger bands serves as the third long-period reference line of the SMA and also serves as the Bollinger bands The basic calculation curve, one-line dual-use saves resources.
Bollinger DCA v1Simple "benchmark" strategy for ETFs, Stocks and Crypto! Super-easy to implement for beginners, a BTD (buy-the-dip) strategy means that you buy a fixed amount of an ETF / Stock / Crypto every time it falls. For instance, to BTD the S&P 500 ( SPY ), you could purchase $500 USD each time the price falls. Assuming the macro-economic conditions of the underlying country remain favourable, BTD strategies will result in capital gains over a period of many years, e.g. 10 years.
Recommended Chart Settings:
Asset Class: ETF / Stocks / Crypto
Time Frame: H1 (Hourly) / D1 (Daily) / W1 (Weekly) / M1 (Monthly)
Necessary ETF Macro Conditions:
1. Country must have healthy demographics, good ratio of young > old
2. Country population must be increasing
3. Country must be experiencing price-inflation
Necessary Stock Conditions:
1. Growing revenue
2. Growing net income
3. Consistent net margins
4. Higher gross/net profit margin compared to its peers in the industry
5. Growing share holders equity
6. Current ratios > 1
7. Debt to equity ratio (compare to peers )
8. Debt servicing ratio < 30%
9. Wide economic moat
10. Products and services used daily, and will stay relevant for at least 1 decade
Necessary Crypto Conditions:
1. Honest founders
2. Competent technical co-founders
3. Fair or non-existent pre-mine
4. Solid marketing and PR
5. Legitimate use-cases / adoption
Default Robot Settings:
Contribution (USD): $500
When: Dips below lower Bollinger Band
*Robot buys $500 worth of ETF , Stock, Crypto, every time price falls below the lower Bollinger Band
*Equity curve can be seen from the bottom panel*
Risk Warning:
This strategy is low-risk, however it assumes you have a long time horizon of at least 5 to 10 years. The longer your holding-period, the better your returns. The only thing the user has to keep-in-mind are the macro-economic conditions as stated above. If unsure, please stick to ETFs rather than buying individual stocks or cryptocurrencies.
MOVE/VXTLT CorrelationMany know of the VIX for equity trading. Yet, many are unaware that there is the same kind of volatility measure for trading bonds, called the MOVE Index.
"The Merrill Lynch Option Volatility Estimate (MOVE) Index is a yield curve weighted index of the normalized implied volatility on 1-month Treasury options which are weighted on the 2, 5, 10, and 30 year contracts."
With this script one can see the the correlation and divergences between bonds and its volatility measure to make educated decisions in trading or hedging.
The idea of this script comes from NicTheMajestic.
ema exhaustion (exa)The exa is an oscillator that combines fisher transform with distance from moving average and it is based on a theory that exhaustion can be derived from how far price is able to extend from a moving average, on average.
The fisher transform converts price into a gaussian normal distribution, also known as a bell curve {1}. A normal distribution is a type of probability distribution for a real-valued random variable {2}. Applying this method to the price of an asset can help to identify probabilities, but it will never identify certainties.
‘exa’ is an abbreviation for ema exhaustion. It can be used to identify when price is probable to revert to the mean but I prefer using it to confirm entries that are signaled following a reversion to the mean (aka buying the dip in bull markets). When price gets oversold into support, in a bull trend, then that can provide a good opportunity to enter long. However that isn’t necessarily the case when the same metrics indicate oversold conditions in a bear trend. In this situation the exa is best suited for identifying profit taking opportunities on shorts.
The default settings are a 9 lookback period and a 50 ema. By default signals will be derived from how far price is from the 50 ema relative to the probable distribution of the last 9 periods. If the exa is above 2, or below -2, then the price is in the 80th percentile of the prior 9 candles. Being outside of 3, or -3, represents the 90th percentile and 4, or -4, represents the 95th percentile.
Those ranges will never indicate a necessity of reverting to the mean, but they will indicate a higher and higher probability. I prefer to use this oscillator in combination with an indicator(s) that identifies the trend. When the oscillator reaches -2 in a bull trend then it can confirm long entry signals, whereas if it reaches +2 in a bull trend then it can be used to confirm signals to take profit.
Crossovers are especially significant because they indicate a shift in the tide. When the exa reaches 2 without crossing over then it is very much in a position to move to 3 or 4+. When it crosses above 2 then it is an indication that price is extended from the mean and exhausted.
This is certainly not a situation that implies price will revert to the mean, it simply provides confirmation.
The default settings are what I have been finding most effective personally, however that is mostly a function of the trend following tools that I use. The same principles should apply with all settings and I would encourage users to experiment with various lookback periods and emas.
{1} www.investopedia.com
{2} en.wikipedia.org
Moving Regression Band Breakout strategyFollowing the introduction of the Moving Regression Prediction Bands indicator (see link below), I'd like to propose how to utilize it in a simple band breakout strategy :
Go long after the candle closes above the upper band . The lower band (alternatively, the lower band minus the 14-period ATR or the central line ) will serve as a support line .
Exit as soon as the candle closes below the support line .
To manage the risk of false breakouts, a fixed stop loss is set to the value of the support line at the time of opening a position. When the support line moves above the position opening price, shift the stop loss to breakeven.
The same logic but in reverse applies to short positions.
As an option, it is possible to allow long entries only when the slope of the Moving Regression curve is positive (and short entries when the slope is negative).
Model parameters:
Length and Polynomial Order define the lag and smoothness of the model.
Multiplier specifies the width of the channel.
As the default model parameter values, I set those that I found to provide optimal risk / reward ratio on the daily timeframe (for both trending and range-bound market). However, the settings are very flexible and can be well-adjusted to particular market conditions. Feel free to play around and leave feedback in the comments!
Here's the original Moving Regression Prediction Bands script:
Delta-RSI Oscillator StrategyDelta-RSI Oscillator Strategy:
This strategy illustrates the use of the recently published Delta-RSI Oscillator as a stand-alone indicator.
Delta-RSI represents a smoothed time derivative of the RSI, plotted as a histogram and serving as a momentum indicator.
There are three optional conditions to generate trading signals (set separately for Buy, Sell and Exit signals):
Zero-crossing : bullish when D-RSI crosses zero from negative to positive values (bearish otherwise)
Signal Line Crossing : bullish when D-RSI crosses from below to above the signal line (bearish otherwise)
Direction Change : bullish when D-RSI was negative and starts ascending (bearish otherwise)
Since D-RSI oscillator is based on polynomial fitting of the RSI curve, there is also an option to filter trade signal by means of the root mean-square error of the fit (normalized by the sample average).
My original D-RSI Oscillator script can be found here:
Machine Learning: Logistic RegressionMulti-timeframe Strategy based on Logistic Regression algorithm
Description:
This strategy uses a classic machine learning algorithm that came from statistics - Logistic Regression (LR).
The first and most important thing about logistic regression is that it is not a 'Regression' but a 'Classification' algorithm. The name itself is somewhat misleading. Regression gives a continuous numeric output but most of the time we need the output in classes (i.e. categorical, discrete). For example, we want to classify emails into “spam” or 'not spam', classify treatment into “success” or 'failure', classify statement into “right” or 'wrong', classify election data into 'fraudulent vote' or 'non-fraudulent vote', classify market move into 'long' or 'short' and so on. These are the examples of logistic regression having a binary output (also called dichotomous).
You can also think of logistic regression as a special case of linear regression when the outcome variable is categorical, where we are using log of odds as dependent variable. In simple words, it predicts the probability of occurrence of an event by fitting data to a logit function.
Basically, the theory behind Logistic Regression is very similar to the one from Linear Regression, where we seek to draw a best-fitting line over data points, but in Logistic Regression, we don’t directly fit a straight line to our data like in linear regression. Instead, we fit a S shaped curve, called Sigmoid, to our observations, that best SEPARATES data points. Technically speaking, the main goal of building the model is to find the parameters (weights) using gradient descent.
In this script the LR algorithm is retrained on each new bar trying to classify it into one of the two categories. This is done via the logistic_regression function by updating the weights w in the loop that continues for iterations number of times. In the end the weights are passed through the sigmoid function, yielding a prediction.
Mind that some assets require to modify the script's input parameters. For instance, when used with BTCUSD and USDJPY, the 'Normalization Lookback' parameter should be set down to 4 (2,...,5..), and optionally the 'Use Price Data for Signal Generation?' parameter should be checked. The defaults were tested with EURUSD.
Note: TradingViews's playback feature helps to see this strategy in action.
Warning: Signals ARE repainting.
Style tags: Trend Following, Trend Analysis
Asset class: Equities, Futures, ETFs, Currencies and Commodities
Dataset: FX Minutes/Hours/Days
Machine Learning: Perceptron-based strategyPerceptron-based strategy
Description:
The Learning Perceptron is the simplest possible artificial neural network (ANN), consisting of just a single neuron and capable of learning a certain class of binary classification problems. The idea behind ANNs is that by selecting good values for the weight parameters (and the bias), the ANN can model the relationships between the inputs and some target.
Generally, ANN neurons receive a number of inputs, weight each of those inputs, sum the weights, and then transform that sum using a special function called an activation function. The output of that activation function is then either used as the prediction (in a single neuron model) or is combined with the outputs of other neurons for further use in more complex models.
The purpose of the activation function is to take the input signal (that’s the weighted sum of the inputs and the bias) and turn it into an output signal. Think of this activation function as firing (activating) the neuron when it returns 1, and doing nothing when it returns 0. This sort of computation is accomplished with a function called step function: f(z) = {1 if z > 0 else 0}. This function then transforms any weighted sum of the inputs and converts it into a binary output (either 1 or 0). The trick to making this useful is finding (learning) a set of weights that lead to good predictions using this activation function.
Training our perceptron is simply a matter of initializing the weights to zero (or random value) and then implementing the perceptron learning rule, which just updates the weights based on the error of each observation with the current weights. This has the effect of moving the classifier’s decision boundary in the direction that would have helped it classify the last observation correctly. This is achieved via a for loop which iterates over each observation, making a prediction of each observation, calculating the error of that prediction and then updating the weights accordingly. In this way, weights are gradually updated until they converge. Each sweep through the training data is called an epoch.
In this script the perceptron is retrained on each new bar trying to classify this bar by drawing the moving average curve above or below the bar.
This script was tested with BTCUSD, USDJPY, and EURUSD.
Note: TradingViews's playback feature helps to see this strategy in action.
Warning: Signals ARE repainting.
Style tags: Trend Following, Trend Analysis
Asset class: Equities, Futures, ETFs, Currencies and Commodities
Dataset: FX Minutes/Hours+/Days
Turkey Yield Curve SpreadYield spreads are used to see investors' perception of future risk and predict a recession. The spread is the value obtained by subtracting the near term bond from the distant one. This indicator plots this value historically. I used 3-year and 10-year Turkey treasury bond yields instead of 2-year and 10-year Turkey treasury bond yields due to lack of historical data on Tradingview.
sDEFI IndexThe Synthetix Exchange provides a DeFi index that has too many components to be used as a chart ticker.
So here is an indicator to bypass the ticker limit.
From the Synthetics docs : docs.synthetix.io
DeFi Index (sDEFI)
Contract: 0xe1aFe1Fd76Fd88f78cBf599ea1846231B8bA3B6B
Token | Initial Weight
---------------------------
Aave | 15%
Synthetix Network Token | 15%
yearn.finance | 15%
Uniswap | 10%
Compound | 7.50%
Maker | 7.50%
Balancer | 5%
Curve DAO Token | 5%
Kyber Network | 5%
Ren | 5%
UMA | 5%
Wrapped Nexus Mutual | 5%
The chart shows it in comparison to FTX's DeFi index, quite a difference as you can see!
Relative Strength Index of EU and US Stock Index Trends quality//Relative Strength Index of European and US Stock Index Trends quality
//This indicator reveals the relative strength of European and US stock index futures.
//take Bull trend as an example , the current closed price>EMA20 value and the current closed price >20th previous bar closed price( deduction price),
//it's defined as a lower level bull trend .If the current price EMA20>EMA60, it's defined as a higher level bull trend .If the EMA20>EMA60>EMA120,it's defined as the highest level bull trend.
//You can choose to draw the curve with the deviation rate of the original major indexes to 20EMA, or draw the deviation rate with the average value (default value is 5 bars).
//In addition, a more technical method is added to analyze the deviation changes of the major indexes.The deviation rate changing velocity value, parameter tan (abbreviated by t) of 1, 2, 5, 10 is introduced.
//You can have the option of calculate the tan using average value of 5 candlesticks or original value.
//Taking tan1 as an example, it indicates how much the deviation rate between the current price and the previous candlestick has changed.
//The indicator of the index color and the description of the trend quality color can be switched off in option.
//In addition, this code color scheme is only suitable for black background (the code color needs to be changed by yourself if you use white background).