Baekdoo arrows (white : long term CCI trend changing signal)Hi forks,
I'm trader Baekdoosan who trading Equity from South Korea. This long term CCI trend changing signal will gives you good buy point for a long term trading.
As you know, CCI ( Commodity Channel Index ) is the indicator of how difference from MA(Moving Average). If CCI (period) value is 0 then it is the same value of the SMA (price, period). Indication of overselling or overbuying will be counted by -100 and 100 value of CCI . What I chose value is 240. which is almost a year of period. My signal will be plotted this long term CCI indicator cross over -100. But I don't want it to be marked in case of long term CCI value fluctuating from -101 to -99 which will be marked frequently. Thus I put candle counter of 60 days after cross under -100 then only I count for cross over -100. By this I have very good signal to mark on the chart. Please enjoy my signal and have good profit from it~! Gazua~!
Cari dalam skrip untuk "想象图:箱线图+折线组合,横轴为国家,纵轴为响应指数(0-100),箱线显示均值±标准差,叠加红色虚线标注各国确诊高峰时间点"
world stage indexThis is an indicator that expresses the ratio of "stage1" and "stage4" of world index.
40 symbols are as follows
(JAPAN, US, EUROPE, and CANADA)
OSE:NK2251!, DJ:DJI, NASDAQ:IXIC, SP:SPX, XETR:DAX, TVC:CAC40, TVC:UKX, TSX:TSX
(ASIA)
TVC:SHCOMP, SZSE:399001, TVC:HSI, TWSE:TAIEX, BSE:SENSEX, OANDA:SG30SGD, INDEX:KSI, SET:SET
(EUROPE)
INDEX:SX5E, INDEX:FTSEMIB, SIX:SMI, BME:IBC, EURONEXT:BEL20, TVC:AEX, OMXCOP:OMXC25, XETR:0Q5X
(Pacific Ocean)
ASX:XJO, TVC:NZ50G, IDX:COMPOSITE, FTSEMYX:FBMKLCI, BMFBOVESPA:IBOV, BMV:ME, BVL:SPBLPGPT, BYMA:IMV
(Eastern Europe & Middle East)
MOEX:IMOEX, GPW:WIG20, OMXHEX:OMXH25, OMXSTO:OMXS30, DFM:DFMGI, TADAWUL:TASI, OSE:GNRI, EGX:EGX30
The criteria are as follows:
EMA5≧EMA20≧EMA40 : Stage1
EMA5≦EMA20≦EMA40 : Stage4
A.The sum of Stage1 was multiplied by 2.5 and drawn on a scale of 0 to 100, with yellow area
B.The Sum of Stage4 was multiplied by 2.5 and drawn on a scale of 0 to 100, with blue area.
C. The ratio of A/B was multiplied by 2.5 and drawn on a scale of 0 to 100, with red lines.
This idea is from Kojirou Kousi.
40 symbols of this script are partially different from Kojiro kousi's idea.
But he said the difference isn't matter.
「小次郎講師指数」に着想を得た、世界40カ国の株価指数stage状態です。
参考文献は、小次郎講師著書「世界一わかりやすい投資の勝ち方」です。
小次郎講師とは一部異なるシンボルを採用していますが、
多少の違いは余り大した問題では無いと御本人から教わった事があります。
先進国に関してはおそらくほとんど同じだと思います。
stage1の合計の%を黄色、stage4の合計の%を青色、stage1の合計/stage4の合計の%を赤で表示しています。
雰囲気で分かればいいので、正確な数字までは表示しませんでした。
個人的には現状分析以外にも、プラクティス時に世界情勢を把握するのに重宝しています。
EMR Strategy [H1 Backtesting]EMR Strategy base on EMA, MACD and RSI to supply signal on time frame H1.
Details of Rule as below:
===
1.EMA
+ Time frame: H1
+ Periods: 25, 100 (~ EMA 25 H4), 600 (~ EMA 25 D1)
===
2.MACD
+ Time frame: H1
+ Periods: 12,26,9
===
3.RSI
+ Time frame: H1
+ Periods: 14
===
4.Trading Rule
4.1.Long Position
+ MACD>0 and RSI>50 and close price moving above EMA 25
+ Close price crossed EMA 100 or crossed EMA 600 at the first time
4.2.Short Position
+ MACD<0 and RSI<50 and close price moving below EMA 25
+ Close price crossed EMA 100 or crossed EMA 600 at the first time
===
5.Money Management
+ This strategy concentrate into winrate.
+ So use trailing stop to protect your profits.
+ And use stoploss to avoid big loss on trades.
SMA Offset StrategyThis strategy uses simple moving averages and some math to determine buy/sell points. We keep a SMA 100 day line as our basis for our offset. If the close price is below the line, we choose our open position based on how low below the line it is goes, this value (Low Offset) is a percentage and can be configured by the user. Same for closing your position, when the close is above our SMA 100 line, we determine how high above the line before selling. If we try to sell too early (while the price is still rising), the trailing stop loss will kick in. Backtested with Bitcoin and Ethereum.
Configurable variables:
SMA Fast (default is 14 days)
SMA Slow (default is 100)
SMA Reference (default is 30)
Low Offset % (default is 0.001)
High Offset % (default is 0.0164)
Order Stake % (default is 0.96)
Trailing stop loss % (default is 1.35)
SNL Popular Moving Averages MTFSNL△ Popular Moving Averages MTF
Short title: PopMAs
These are popular moving averages used by various traders and they are multi-timeframe, i.e. you can see
the 200 day SMA on a 15 minute chart.
Four moving averages are also included for the current timeframe (20, 50, 100 and 200 EMA).
Not all moving averages are enabled by default. You can turn individual moving averges on or off in the
"Style" tab of the indicator's settings.
The way I see moving averages is that they do not represent a magic mathematical truth, but are simply the
result of many people agreeing on the same parameters. I guess the origin were five working days in a week
and therefore a month would be four times five, i.e. a 20 day SMA. 200 days are probably an estimate of
the work days in a year and the 50 day SMA represents a quarter year.
There are many indicators on TradingView that offer various adjustable moving averages, including
combinations and multi-timeframe. But my interest was to have an indicator with the most popular moving
averages and it should be multi-timeframe capable. By design I did not want to make the periods adjustable,
but you could add this easily if you like.
Here are some examples of poplular moving averages:
20 unit EMA : support on 4h BTC chart, Carl the Moon
20, 50, 100, 200 day SMA : classic trading all charts, Benjamin Cowen, Tone Vays
20, 50, 100, 200 week SMA: Benjamin Cowen
21 week EMA: well known BTC support, Benjamin Cowen
800 hour EMA: Traders Reality -> not possible in TradingView, represented as 33 day EMA
Known problems:
- I have not found a way to turn off floating labels according to a plot's state chosen in the "Style"
tab. So you will still see the label floating around even if you have turned off the moving average's
line. But you can always turn of all the floating labels in the settings.
- I have observed unexpected differences on multi-timeframe values: For example, looking at the true 20
week SMA on a weekly BTC chart showed a present time value of 43821 USD, but the value was 43908 USD
for the result of this call used in this script: security(syminfo.tickerid, "W", sma(close, 20))
The difference went away when switching my chart to weekly and back to 15 minutes.
Please comment if you know of other moving averages that are often and successfully used or if you find
that one of the included moving averages is irrelevant and should be removed from this script.
And I would very much appreciate any input regarding the mentioned known problems.
Forex scalper 2xEMA + SRSI + MACDThis is a forex scalping strategy designed for the most liquid pairs, like major forex pairs.
Its made of
1 EMA 50
1 EMA 100
Stochastic RSI
MACD
Rules
For long :close of the candle is above moving average 50, moving average 50> moving average 100, macd histogram is positive and cross over of stochastic rsi with the oversold level.
For short :close of the candle is below moving average 50, moving average 50 < moving average 100, macd histogram is negative and cross under of stochastic rsi with the overbought level.
Exit
For exit we have take profit and stop loss using fixed pip points.
For this example on EURUSD we use 20 pips for both tp and sl
IF you have any questions let me know !
[blackcat] L1 Mel Widner Auto Support and ResistanceLevel: 1
Background
This indicator/formula was presented in the May 1998 issue of the ‘Technical Analysis of Stocks and Commodities’ magazine. The article was titled “Automatic support and resistance” the article described an approach to finding support and resistance levels on a chart.
Function
Support and resistance analysis is a proven method for selecting key price levels for trading decisions; traders usually perform the analysis by hand. The automatic charting method and new oscillators presented here are easy to implement and give a precise comparison of price to these important levels. Suppose prices are moving higher, fed by steady cash flow and favorable expectations. Then, at some point, the advance begins to slow. Upward momentum is still dominant, but at that point it is diminishing and the rate of rise is decreasing, evidence of resistance. It is like throwing a ball into the air; the ball starts with initial momentum, then slows under the influence of gravity before eventually falling.
Prices behave in a similar manner. After opposing resistance forces are applied for a time, prices slow, finally stop, and reverse direction. The turning point is a resistance level and is the highest high price for that particular period. The converse is true for declining prices. A slowing decline results from support forces and a support level is established at the point where prices turn upward.
Simply, forces cause acceleration. Market forces do not directly produce momentum, but rather momentum changes. These momentum changes in turn are integrated or accumulated to establish momentum. The presence of market forces is evident when the slope of prices, or momentum, changes over time. The effect is most dramatic when forces also change, triggered by price moves or changes in expectations, and abrupt reversals occur. Examination of price histories can confirm the presence of these features.
Two oscillators are defined: the WSO (Widner support oscillator) and the WRO (Widner resistance oscillator). The WSO compares the current close with the most recent six support levels. Values range from zero to 100. WSO = zero means that the close is below all of the six support levels, and
WSO = 100 means that the current close is above all of the six support levels. Changes in WSO indicate changes in support, either breaking of an old level or establishing a new one. The WSO abd WRO are defined as:
WSO = 100( 1 – (INT(S1/C) + INT(S2/C) + INT(S3/C) + INT(S4/C) + INT(S5/C) + INT(S6/C)) / 6)
WRO = 100( 1 – (INT(R1/C) + INT(R2/C) + INT(R3/C) + INT(R4/C) + INT(R5/C) + INT(R6/C)) / 6)
Consequently, WSO and WRO can cross, but this is very uncommon.
Enter long when support is strong and resistance is weak or enter when support is building.
Key Signal
wso --> Widner support oscillator.
wro --> Widner resistance oscillator.
Remarks
This is a Level 1 free and open source indicator.
Feedbacks are appreciated.
[jav] Mountain Oscillator
Introducing the Mountain Oscillator. Why not trading while admiring the scenery?
The main oscillator line is the black silhouette of the mountains, and each element of the landscape can be seen as a support or resistance - even the mountains far in the horizon, the misty band in the middle and the -1, 0 and 1 lines. (Well, almost every element... the sun is just for fun).
Equalling the heights of the mountains that are far away, or reaching the snow zone, are possible signs of an uptrend ending. On the other hand, stepping into a river is a clear sign of a reversal to the upside soon.
Strong uptrends are evidenced by significant portions of the mountain above the misty zone and/or the 0 line.
By default, the sky turns red/blue/dark gray depending on the trading hours. This option can be unchecked.
Calculations and usage :
The script is based on a modified version of Bollinger Bands. Bandwidth is calculated quite differently from the usual Bollinger indicator (not with the built-in stdev function). There is no need to input a multiplier factor, such as that used in BB - the script calculates it from 'Length' using a custom formula.
The 3 user inputs 'Length' ares recommended to be kept at 200, 100 and 50 period. In that way, the misty area in the landscape corresponds to price crossing EMAs of 50 and 100, and the zero line to EMA 200.
The different colors of the mountain and the horizon represent the Bollinger Bands corresponding to the mentioned periods of 50 and 100, whereas limits of -1 and +1 are those from the 'Length' parameter.
You will find that my coding skills are rudimentary, so any comment/suggestion to improve the script is welcome.
Credits
@everget for the 'Fancy Shapes' script which was used as a reference to draw the sun.
BTC Dominance & Counter-Trend IndicatorThis script looks at BTC dominance in price-action and scores it (out of the last 100 closed bars). Essentially this looks at the price action of the current security/crypto and tracks whether it traded in-trend with BTC or against the trend with BTC to show when BTC is most prominently dominating.
Currently the code is restricted to the previous 100 trades prior to the bar (you can change this) but only because, for whatever reason, pine scripting doesn't actually allow you to calculate the number of bars currently in the view (lots of people asking for this via StackOverflow but no response yet). Essentially every bar shows the number of trades out of the last 100 that traded in-synch with BTC, the lower the number, the less dominant BTC has been against that security.
Green highlight means it traded positive (upwards) against BTC going down, and red means it traded negative against BTC going up.
AZ V.3 Test ++Position Size Fix+Float
Core Concept
This Strategy is Base on EMA Cross
But thing what make this strategy be different from original CDC Action Zone V.3 is "Position Size"
Compound Profit & Not Compound Profit Strategy
Position Sizing Concept
Be real.Everyone know the key of survive in the Market is "Risk & Money Management"
So, How can we manage our Risk and Money?
Yes, The key is " Make the Risk celling "
////////////////////////////////////
//// (Risk% * 100) / Stoploss % ////
////////////////////////////////////
How can we make the Risk celling?
1. Define your Risk Per Trade for you. (How much % money of your portfolio are you willing to pay for this trade?)
- Example -
- I Have 3,000$ in my portfolio.
- I think i can take the risk per trade for my trade 2.5% of my portfolio. (75$)
- I calculate the Position Size of my trade to pay 2.5% of my portfolio when i need to stoploss. (75$)
- And then, I have 97.5% of my fund (2,925$) for fight in next trade.
- ***** So, I'll never lose a big money of my fund. And "SURVIVE" in long term. *****
2. Mark the "Entry Point" and "Stop Loss Point"
- Example -
- I have a Entry Point at price 30,000 $
- I Make the "Hard Stop" at previous low 11 Bar. (Hard Stop = When the price went lower from this point, We Sell this position without any pity)
- For example. I assume the previous low is 20,000$
- I Clac. the different % from Entry to Stoploss. (33%)
- ***** So, If the price went low from Entry Point -33%. I'll stop this position. *****
3. Calculate my position size.
////////////////////////////////////
//// (Risk% * 100) / Stoploss % ////
////////////////////////////////////
- In the past 2 Example.
- We have Risk% = 2.5%
- We have Stoploss% = 33%
- So, We clac. >>
- 7.575757 >> 7.5 % of my Portfolio
- 7.5 % of my Portfolio = 225 $
- ***** When my position Dropdown I'll lose for this trade and survive to fight in next trade. *****
Compound Profit Concept
We calculate the base equity from
Normal People use this.
Not Compound Profit Concept
We calculate the base equity from
If we have some profit. We use this profit for "Reserve" the loss in next trade.
Chart OscillatorI present you the chart oscillator where an oscillator (Stoch or RSI) is plotted
on the chart itself (instead of below the chart)
It is inspired on an idea of @Kablamicus
Instead of having the lines between 0 and 100, here the '0-100' are
- lowest(low, len)
- highest(high, len)
An overbought/oversold and a middle line is derived from these lines
and the oscillator goes in between.
It resembles very much the 'normal' oscillator, with a few extra's:
- you can see the movement of the candles against the oscillator
- S/R levels of oscillator, 50 line, overbought/oversold line, 0-100 line
Stoch:
RSI:
Also a table is included with the Stoch/RSI values
Cheers!
stop out or margin call price levelsAbstract
This script finds the potential stop out or margin call price levels without considering timeframe.
This script computes stop out or margin call price levels that over leveraged positions buy cheap enough.
You can use this indicator to follow stop hunters.
Introduction
Stop hunting exists because of benefit conflict.
When most of retails traders are in the correct direction, big banks do not want to buy more expensive then retail traders.
Therefore, Big banks create sell pressure to make retail traders misunderstand their trade decisions are wrong.
When retail traders decide to cut loss, it is time big banks buy cheaper.
Many courses recommend average true range as a stop loss reference.
However, in different timeframe, average true ranges are different.
Therefore, we need to have a method to measure potential stop hunting levels which is not relative to timeframe.
There is a method because there are observable levels where over leveraged positions must cut loss.
For example, for a 100 leverage position, its margin call level is 0.005, so 0.005 drawdown is a potential stop hunting level.
Computing
For buy
potential stop out or margin call price level = low * ( 1 - ratio )
For sell
potential stop out or margin call price level = high * ( 1 + ratio )
Parameters
There are 4 levels available for adjusting.
The default values are :
(1) 0.001 : 500 leverage , 50% margin call
(2) 0.0025 : 200 leverage , 50% margin call
(3) 0.005 : 100 leverage , 50% margin call
(4) 0.010 : 50 leverage , 50% margin call
Usage
(1) Find an oversold price level. If you don't want to use an another indicator, you can use previous low.
(2) Memorize their stop out or margin call price levels of that level.
(2) Consider buy near those levels.
(3) If there are quick price rejection near those levels, better entry opportunities.
(4) Take profit and stop loss : you decide.
Conclusion
This script can find potential stop out or margin call price levels that over leveraged positions buy cheap enough.
If you are bored, you can consider find 100 signals you are interested in and share your observation.
Reference
Brokers, leverage and margin call threshold
RedK_Relative (Dual) Rate Of Change v1 - RROC v1Quick Summary
==============
The Relative Rate of Change (RRoC) is an expanded version of the classic Rate of Change (RoC) indicator - we apply couple of changes to bring additional insights and signals from that classic Technical Analysis concept - which can help us better visualize the "relative speed of change" of a stock (or whatever we trade), and can work specifically as a "breakout finder" .. please read on if this can be valuable to your trading.
First, a quick review of what is the classic Rate of Change (RoC) - The below part is from Investopedia definition of RoC
-----------------------------------------------------------------------------------
www.investopedia.com
What is Rate of Change (ROC)
The rate of change (ROC) is the speed at which a variable changes over a specific period of time.
ROC is often used when speaking about momentum, and it can generally be expressed as a ratio between a change in one variable relative to a corresponding change in another; graphically, the rate of change is represented by the slope of a line.
Understanding Rate of Change (ROC)
Rate of change is used to mathematically describe the percentage change in value over a defined period of time, and it represents the momentum of a variable .
The calculation for ROC is simple in that it takes the current value of a stock or index and divides it by the value from an earlier period.
Subtract one and multiply the resulting number by 100 to give it a percentage representation.
ROC = (current value / previous value - 1) * 100
-------------------------------------------------------------------------------------------------
What changes did we make to the RoC?
====================================
(1) - Per the official definition, the original RoC should provide a "rate of change" - i.e., we should say "the 5-bar average price change for AAPL is x% per bar" - now norice that the formula doesn't divide by the number of bars (length) -- so the reality is, the results is more of "the 5-bar price change for apple is x% for the full 5 bar length"
- what is wrong with that ? nothing really, but it's harder to use that number to set my trade target or exit. i need the indicator to give me a number that represents the "average change per bar" so i can use it to "design my trade target and my exit loss" -- so in the RRoC, we divide the change by the number of bars used in the settings
The updated formula would be : RoC = (current value / previous value -1 ) * 100 / length
(2) - Dual Length: we make the RoC relative, by adding a longer (or slow) RoC
- the idea here is simple - imagine you're driving your car beside a moving train, your car will not "breakout" from the train until your speed (= distance gain per unit of time) is faster than the train - so in reality, your baseline is not 0 speed, it's the speed of that train your racing against -- makes sense?
- so we add a second length that can act as a baseline - when the Fast RoC exceeds the Slow RoC (your car is faster than the train), a breakout would possibly occur - that breakout may fail (if something interrupts it - my car may breakdown if it can't handle the faster speed :) ) or it can fully materialize if the "context" is favorable.
as we can see on the above chart, we can use the RRoC to identify an incoming possible breakout using that simple "relative speed" concept - and that setup happened not once but twice in our example
the interpretation of this for AAPL would be (for example): "AAPL has been making an average change of 0.22% in the past 20 days, but for the last 5 days, the average change was 0.35% - so it looks like AAPL is gaining short term momentum and may break-out soon"
(3) this is another strong feature: Use for broader context:
- we can set the RRoC for a resolution of - for example - a day, while we look at the 1 hour chart - giving us the ability to trade on a smaller timeframe in the context of a larger timeframe .. this is more of an advanced feature but i hope some will be able to leverage it.
Here's a side-by-side comparison of RRoC vs the classic (built-in) RoC indicator
Conclusion:
============
- The (Relative Rate of Change) RRoC expands on the concepts presented by the classic Rate of Change (RoC) indicator and enables additional insights - especially around the discovery of potential price breakout
- leverage the RRoC indicator settings to tweak it to how your trade (fast length, slow length, resolution, smoothing). the defaults should work for any instrument but may not necessarily be the optimal settings
- use in conjunction with other indicators that can show trend and prevailing sentiment / context - to ensure you get proper confirmation and please get very familiar with how the RRoC works before you use it for live trading.
Comments are welcome - Best of luck
-
Bollinger on Bollinger OscillatorThis study is a user-friendly workaround to the BBOE+ (attached at the bottom).
I applied Bollinger Bands on BB Oscillator which spend his time bouncing between +100 -100 levels both representing extremes market conditions. You can use it to spot reliable entries/exits opportunities.
During an uptrend when the oscillator tends to -100 and the lower BB turn up you should consider a BUY. Do the same thing when the oscillator pushes under the lower BB nearby the Zero Line.
Make the opposite during a downtrend.
Also look for divergencies that occurs nearby the borders and BB squeezes too.
You can vary both the lenght for the Oscillator and BB.
Use “Upper Multiplier” and “Lower Multiplier” to set two different StDev from the basis (if you need).
You may also consider to apply an offset to the BB.
Is up to you to match the configuration that better-fits your market and time frame.
Default settings could well fits this IXIC 4H Chart.
So that this is basically a price-based indicator you would better consider to pair it with a volume-based or an absolute-momentum-based one.
SHARING IS INTENDED FOR EDUCATIONAL PURPOSE ONLY. NOT FOR PROFESSIONAL USE.
WILL APPRECIATE ANY FEEDBACK, QUESTION, SUGGESTION. (*)
(*) Please don’t ask me for “magic-setting” that do not exit, nor for “kaleidoscopic effects” cause I’m a big fan of such a minimalistic yet profession layouts.
FOLLOW UP TO CHECK UPDATES!
ADX with SignalsThis indicator basicly usind ADX ( Average Directional Index )
ADX can show us how trend is strong
ADX below 20: the market is currently not trending
ADX crosses above 20: signifies that a new trend is emerging. Traders may start placing sell or buy orders in the direction of the price movement.
ADX between 20 and 40: When the ADX is growing between 20 and 40 it is considered as a confirmation of an emerging trend. Traders should use this opportunity to buy or short sell in the trend's direction.
ADX above 40: the trend is very strong.
ADX crosses 50: the trend is extremely strong.
ADX crosses 70: a very rare occasion, which is called a “Power Trend.”
If we use ADX with DI+ and DI+ indactor can tell us to buy.
How can we calculate this all?
Directional Movement (DI) is defined as the largest part of the current period’s price range that lies outside the previous period’s price range. For each period calculate:
+DI = positive or plus DI = High - Previous High
-DI = negative or minus DI = Previous Low - Low
The smaller of the two values is reset to zero, i.e., if +DI > -DI , then -DI = 0. On an inside bar (a lower high and higher low), both +DI and -DI are negative values, so both get reset to zero as there was no directional movement for that period.
The True Range ( TR ) is calculated for each period, where:
TR = Max of ( High - Low ), ( High -PreviousClose ), ( PreviousClose - Low )
The +DI , -DI and TR are each accumulated and smoothed using a custom smoothing method proposed by Wilder. For an n period smoothing, 1/n of each period’s value is added to the total each period, similar to an exponential smoothing:
+DIt = (+DIt-1 - (+DIt-1 / n)) + (+DIt)
-DIt = (-DIt-1 - (-DIt-1 / n)) + (-DIt)
TRt = (TRt-1 - (TRt-1 / n)) + ( TRt )
Compute the positive/negative Directional Indexes, +DI and -DI , as a percentage of the True Range:
+DI = ( +DI / TR ) * 100
-DI = ( -DI / TR ) * 100
Compute the Directional Difference as the absolute value of the differences: DIdiff = | (( +DI ) - ( -DI )) |
Sum the directional indicator values: DIsum = (( +DI ) + ( -DI )) .
Calculate the Directional Movement index: DX = ( DIdiff / DIsum ) * 100 . The DX is always between 0 and 100.
Finally, apply Wilder’s smoothing technique to produce the final ADX value:
ADXt = ( ( ADXt-1 * ( n - 1) ) + DXt ) / n
When indicator tell us to buy?
If when DI+ crosses DI- and ADX is bigger than DI- indicator tell us to buy.
Ultimate Strategy TemplateHello Traders
As most of you know, I'm a member of the PineCoders community and I sometimes take freelance pine coding jobs for TradingView users.
Off the top of my head, users often want to:
- convert an indicator into a strategy, so as to get the backtesting statistics from TradingView
- add alerts to their indicator/strategy
- develop a generic strategy template which can be plugged into (almost) any indicator
My gift for the community today is my Ultimate Strategy Template
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
For doing so:
1) Find in your indicator where are the conditions printing the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator wether it's a MACD, ZigZag, Pivots, higher-highs, lower-lows or whatever indicator with clear buy and sell conditions
//@version=4
study(title='Moving Average Cross', shorttitle='Moving Average Cross', overlay=true, precision=6, max_labels_count=500, max_lines_count=500)
type_ma1 = input(title="MA1 type", defval="SMA", options= )
length_ma1 = input(10, title = " MA1 length", type=input.integer)
type_ma2 = input(title="MA2 type", defval="SMA", options= )
length_ma2 = input(100, title = " MA2 length", type=input.integer)
// MA
f_ma(smoothing, src, length) =>
iff(smoothing == "RMA", rma(src, length),
iff(smoothing == "SMA", sma(src, length),
iff(smoothing == "EMA", ema(src, length), src)))
MA1 = f_ma(type_ma1, close, length_ma1)
MA2 = f_ma(type_ma2, close, length_ma2)
// buy and sell conditions
buy = crossover(MA1, MA2)
sell = crossunder(MA1, MA2)
plot(MA1, color=color_ma1, title="Plot MA1", linewidth=3)
plot(MA2, color=color_ma2, title="Plot MA2", linewidth=3)
plotshape(buy, title='LONG SIGNAL', style=shape.circle, location=location.belowbar, color=color_ma1, size=size.normal)
plotshape(sell, title='SHORT SIGNAL', style=shape.circle, location=location.abovebar, color=color_ma2, size=size.normal)
/////////////////////////// SIGNAL FOR STRATEGY /////////////////////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Basically, I identified my buy, sell conditions in the code and added this at the bottom of my indicator code
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal , and -1 for the bearish signal
Now you can connect your indicator to the Strategy Template using the method below or that one
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings and in the Data Source field select your 🔌Connector🔌 (which comes from your indicator)
From then, you should start seeing the signals and plenty of other stuff on your chart
🔥 Note that whenever you'll update your indicator values, the strategy statistics and visual on your chart will update in real-time
Settings
- Color Candles : Color the candles based on the trade state (bullish, bearish, neutral)
- Close positions at market at the end of each session : useful for everything but cryptocurrencies
- Session time ranges : Take the signals from a starting time to an ending time
- Close Direction : Choose to close only the longs, shorts, or both
- Date Filter : Take the signals from a starting date to an ending date
- Set the maximum losing streak length with an input
- Set the maximum winning streak length with an input
- Set the maximum consecutive days with a loss
- Set the maximum drawdown (in % of strategy equity)
- Set the maximum intraday loss in percentage
- Limit the number of trades per day
- Limit the number of trades per week
- Stop-loss: None or Percentage or Trailing Stop Percentage or ATR
- Take-Profit: None or Percentage or ATR
- Risk-Reward based on ATR multiple for the Stop-Loss and Take-Profit
This script is open-source so feel free to use it, and optimize it as you want
Alerts
Maybe you didn't know it but alerts are available on strategy scripts.
I added them in this template - that's cool because:
- if you don't know how to code, now you can connect your indicator and get alerts
- you have now a cool template showing you how to create alerts for strategy scripts
Source: www.tradingview.com
I hope you'll like it, use it, optimize it and most importantly....make some optimizations to your indicators thanks to this Strategy template
Special Thanks
Special thanks to @JosKodify as I borrowed a few risk management snippets from his website: kodify.net
Additional features
I thought of plenty of extra filters that I'll add later on this week on this strategy template
Best
Dave
IV Rank and Percentile"All stocks in the market have unique personalities in terms of implied volatility (their option prices). For example, one stock might have an implied volatility of 30%, while another has an implied volatility of 50%. Even more, the 30% IV stock might usually trade with 20% IV, in which case 30% is high. On the other hand, the 50% IV stock might usually trade with 75% IV, in which case 50% is low.
So, how do we determine whether a stock's option prices (IV) are relatively high or low?
The solution is to compare each stock's IV against its historical IV levels. We can accomplish this by converting a stock's current IV into a rank or percentile.
Implied Volatility Rank (IV Rank) Explained
Implied volatility rank (IV rank) compares a stock's current IV to its IV range over a certain time period (typically one year).
Here's the formula for one-year IV rank:
(Current IV - 1 Year Low IV) / (1 Year High IV - 1 Year Low IV) * 100
For example, the IV rank for a 20% IV stock with a one-year IV range between 15% and 35% would be:
(20% - 15%) / (35% - 15%) = 25%
An IV rank of 25% means that the difference between the current IV and the low IV is only 25% of the entire IV range over the past year, which means the current IV is closer to the low end of historical levels of implied volatility.
Furthermore, an IV rank of 0% indicates that the current IV is the very bottom of the one-year range, and an IV rank of 100% indicates that the current IV is at the top of the one-year range.
Implied Volatility Percentile (IV Percentile) Explained
Implied volatility percentile (IV percentile) tells you the percentage of days in the past that a stock's IV was lower than its current IV.
Here's the formula for calculating a one-year IV percentile:
Number of trading days below current IV / 252 * 100
As an example, let's say a stock's current IV is 35%, and in 180 of the past 252 days, the stock's IV has been below 35%. In this case, the stock's 35% implied volatility represents an IV percentile equal to:
180/252 * 100 = 71.42%
An IV percentile of 71.42% tells us that the stock's IV has been below 35% approximately 71% of the time over the past year.
Applications of IV Rank and IV Percentile
Why does it help to know whether a stock's current implied volatility is relatively high or low? Well, many traders use IV rank or IV percentile as a way to determine appropriate strategies for that stock.
For example, if a stock's IV rank is 90%, then a trader might look to implement strategies that profit from a decrease in the stock's implied volatility, as the IV rank of 90% indicates that the stock's current IV is at the top of its range over the past year (for a one-year IV rank).
On the other hand, if a stock's IV rank is 0%, then traders might look to implement strategies that profit from an increase in implied volatility, as the IV rank of 0% indicates the stock's current implied volatility is at the bottom of its range over the past year."
This script approximates IV by using the VIX products, which calculate the 30-day implied volatility of the specified security.
*Includes an option for repainting -- default value is true, meaning the script will repaint the current bar.
False = Not Repainting = Value for the current bar is not repainted, but all past values are offset by 1 bar.
True = Repainting = Value for the current bar is repainted, but all past values are correct and not offset by 1 bar.
In both cases, all of the historical values are correct, it is just a matter of whether you prefer the current bar to be realistically painted and the historical bars offset by 1, or the current bar to be repainted and the historical data to match their respective price bars.
As explained by TradingView,`f_security()` is for coders who want to offer their users a repainting/no-repainting version of the HTF data.
Resistances v2[UO] - Uncluttered DisplayThis script shows support-and-resistance levels that span months and weeks.
It also shows the levels in the last 100 bars in higher detail. Details detection is only applied to last 100 bars so that your chart is not cluttered with infinite horizontal lines. 100 can be changed in the settings.
For example, here, you see the levels in small time frames at a different detail level:
This script uses the arrays introduced in pine script v4
[blackcat] L2 Ehlers Adaptive Commodity Channel IndexLevel: 2
Background
John F. Ehlers introucedAdaptive Commodity Channel Index in his "Rocket Science for Traders" chapter 21 on 2001.
Function
The Commodity Channel Index (CCI) computes the average of the median price of each bar over the observation period. It also computes the Mean Deviation (MD) from this average. The CCI is formed as the current deviation from the average price normalized to the MD. With a Gaussian probability distribution, 68 percent of all possible outcomes are contained within the first standard deviation from the mean. The CCI is scaled so that values above +l00 are above the upper first
standard deviation from the mean and values below -100 are below the lower first standard deviation from the mean. Multiplying the MD in the code by 0.015 implements this normalization. Many traders use this indicator as an overbought/oversold indicator with 100 or greater indicating that the market is overbought, and -100 or less that the market is oversold. Since the trading channel is being formed by the indicator, the obvious observation period is the same as the cycle length. Since the complete cycle period may not be the universal answer, Dr. Ehlers includes a CycPart input as a modifier. This input allows you to optimize the observation period for each particular situation.
Key Signal
CCI ---> Adaptive Commodity Channel Index fast line
CCI ---> Adaptive Commodity Channel Index slow line
Pros and Cons
100% John F. Ehlers definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
Remarks
The 20th script for Blackcat1402 John F. Ehlers Week publication.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Triple EMA Scalper low lag stratHi all,
This strategy is based on the Amazing scalper for majors with risk management by SoftKill21
The change is in lines 11-20 where the sma's are replaced with Triple ema's to
lower the lag.
The original author is SoftKill21. His explanation is repeated below:
Best suited for 1M time frame and majors currency pairs.
Note that I tried it at 3M time frame.
Its made of :
Ema ( exponential moving average ) , long period 25
Ema ( exponential moving average ) Predictive, long period 50,
Ema ( exponential moving average ) Predictive, long period 100
Risk management , risking % of equity per trade using stop loss and take profits levels.
Long Entry:
When the Ema 25 cross up through the 50 Ema and 100 EMA . and we are in london or new york session( very important the session, imagine if we have only american or european currencies, its best to test it)
Short Entry:
When the Ema 25 cross down through the 50 Ema and 100 EMA , and we are in london or new york session( very important the session, imagine if we have only american or european currencies, its best to test it)
Exit:
TargetPrice: 5-10 pips
Stop loss: 9-12 pips
TST Signals & AlertsThis is an unofficial script for strategies tested on Trading Strategy Testing Youtube channel. Over time, most successful strategies will be added with an option to set strategy-specific alerts . TST Signals & Alerts will draw signals on the chart when the entry conditions are met. You can also opt for displaying indicators .
My script is meant for beginners but can be used by veterans too. Just pick one or two strategies, you don't want to flood your chart with conflicting signals. You may want to support your trades with a proper analysis. Is the market trending? Is there a fundament around the corner?
If a new signal occurs when there is still an open position, you are not supposed to take another.
The current version includes MACD and ADX + BB and BB strategies.
MACD strategy:
►Buy, when MACD crosses below the signal line when it is negative. The price must also be above 200 EMA.
►Sell, when MACD crosses above the signal line when it is positive. The price must also be below 200 EMA.
►This strategy was tested on 15-minute charts of EURUSD with reward-to-risk ratio 1,5 and win rate of 61% over 100 trades.
►►►MACD has to be added to your chart separately because it needs a new window. Ticking display indicators will not add MACD to your chart.
►►►MACD was also tested by a different channel I made a script for. You can view the results and the script here:
ADX + BB strategy:
►Buy, when the price is above 200 EMA and ADX becomes higher than 25.
►Sell, when the price is below 200 EMA and ADX becomes higher than 25.
►Stop-loss is either 200 EMA or Bollinger Bands level. Check the channel for more information.
►This strategy was tested on 5-minute charts of EURUSD, USDJPY, AUDUSD with reward-to-risk ratio 1,2 and win rate of 56% over 100 trades in total.
BB strategy:
►Buy, when the price is above 200 EMA and candle's low is below the lower Bollinger Band.
►Sell, when the price is below 200 EMA and candle's high is above the upper Bollinger Band.
►This strategy was tested on 15-minute charts of EURUSD with reward-to-risk ratio 1,5 and win rate of 52% over 100 trades in total.
►►►Due to the relatively low win rate of this strategy, you need to filter out potentially harmful signals with a proper analysis.
Bear in mind that backtesting performance doesn't guarantee future profitability. • Most systematic strategies are not suitable for each timeframe - if you use the different timeframe than the one it was tested on, the result can differ significantly. • You should perform your own backtest to base your trades on more data & to establish confidence in the selected strategy. • This script is not a replacement for proper analysis.
New strategies will be added when I have time. If I see multiple people asking for the same feature, I might agree to release it with a new version. I am not going to add input options in this script, it could come as a separate script though. I am in no way affiliated with the Youtube channel, so if you find the script helpful, shot me a message or send me some TradingView coins >)
If you encounter any bug, you can report it in a message or in comments. Support it with screenshot and relevant information such as a time when it occurred and what options were on etc.
Amazing scalper for majors with risk managementHello,
Today I am glad to bring you an amazing simple and efficient scalper strategy.
Best suited for 1M time frame and majors currency pairs.
Its made of :
Ema (exponential moving average) , long period 25
Ema(exponential moving average) Predictive, long period 50,
Ema(exponential moving average) Predictive, long period 100
Risk management , risking % of equity per trade using stop loss and take profits levels.
Long Entry:
When the Ema 25 cross up through the 50 Ema and 100 EMA. and we are in london or new york session( very important the session, imagine if we have only american or european currencies, its best to test it)
Short Entry:
When the Ema 25 cross down through the 50 Ema and 100 EMA, and we are in london or new york session( very important the session, imagine if we have only american or european currencies, its best to test it)
Exit:
TargetPrice: 5-10 pips
Stop loss: 9-12 pips
Hope you enjoy it :)
Percentile Nearest Rank Using Arrays [LuxAlgo]The new array feature is extremely powerful, as it will allow pinescript users to do more complex things, or compute existing calculations more efficiently, it will also be possible to shine some light to some already existing functions, one of them being percentile_nearest_rank .
We have been working on this new feature with our pal alexgrover, and made this script which computes a rolling percentile using the nearest rank method.
Settings
Length: Window of the rolling percentile, determine the number of past data to be used.
Percentage: Return the current value if Percentage % of the data fall below that value, the setting is in a range (0,100).
Src: Input source of the indicator.
Usage
A rolling percentile can have many usages when it comes to technical analysis, this is due to its ability to return the value of three common rolling statistics, the rolling median, which can be obtained using a percentage equal to 50, the rolling maximum, obtained with a percentage equal to 100, and the rolling minimum, obtained with a percentage equal to 0.
When we use our rolling percentile as a rolling median, we can obtain a robust estimation of the underlying trend in the price, while using it as a rolling maximum/minimum can allow us to determine if the market is trending, and at which direction. The rolling maximum/minimum is a rolling statistic used to calculate the well known stochastic oscillator and Donchian channel indicator.
We can also compute rolling quartiles, which can be obtained using a percentage of 25 or 75, with one of 25 returning the lower quartile and 75 the upper quartile.
In blue the upper rolling quartile (%75), in orange the lower rolling quartile (%25), both using a window size of 100.
Details
In order to compute a rolling percentile nearest rank, we must first take the most recent length closing prices, then order them in ascending order, we then return the value of the ordered observations at index (percentage/100*length) - 1 (we use - 1 because our array index starts at 0).