AMASling - All Moving Average Sling ShotThis indicator modifies the SlingShot System by Chris Moody to allow it to be based on 'any' Fast and Slow moving average pair. Open Long / Close Long / Open Short / Close Short alerts can be generated for automated bot trading based on the SlingShot strategy:
• Conservative Entry = Fast MA above Slow MA, and previous bar close below Fast MA, and current price above Fast MA
• Conservative Entry = Fast MA below Slow MA, and previous bar close above Fast MA, and current price below Fast MA
• Aggressive Entry = Fast MA above Slow MA, and price below Fast MA
• Aggressive Exit = Fast MA below Slow MA, and price above Fast MA
Entries and exits can also be made based on moving average crossovers, I initially put this in to make it easy to compare to a more standard strategy, but upon backtesting combining crossovers with the SlingShot appeared to produce better results on some charts.
Alerts can also be filtered to allow long deals only when the fast moving average is above the slow moving average (uptrend) and short deals only when the fast moving average is below the slow moving averages (downtrend).
If you have a strategy that can buy based on External Indicators you can use the 'Backtest Signal' which plots the values set in the 'Long / Short Signals' section.
The Fast, Slow and Signal Moving Averages can be set to:
• Simple Moving Average (SMA)
• Exponential Moving Average (EMA)
• Weighted Moving Average (WMA)
• Volume-Weighted Moving Average (VWMA)
• Hull Moving Average (HMA)
• Exponentially Weighted Moving Average (RMA) (SMMA)
• Linear regression curve Moving Average (LSMA)
• Double EMA (DEMA)
• Double SMA (DSMA)
• Double WMA (DWMA)
• Double RMA (DRMA)
• Triple EMA (TEMA)
• Triple SMA (TSMA)
• Triple WMA (TWMA)
• Triple RMA (TRMA)
• Symmetrically Weighted Moving Average (SWMA) ** length does not apply **
• Arnaud Legoux Moving Average (ALMA)
• Variable Index Dynamic Average (VIDYA)
• Fractal Adaptive Moving Average (FRAMA)
'Backtest Signal' and 'Deal State' are plotted to display.none, so change the Style Settings for the chart if you need to see them for testing.
Yes I did choose the name because 'It's Amasling!'
Cari dalam skrip untuk "backtest"
BEAM DCA Strategy MonthlyThis strategy is based on BEAM bands for BTC. The space between the original BEAM bands is broken up into 10 bands representing levels of risk for investing fresh capital.
The strategy will buy bitcoin when the price is in the bottom 5 bands, increasing the amount investmented as the price approaches the 1400 D SMA.
The strategy will limit sell bitcoin when the price is in the top 5 bands, increasing the amount sold as the price approaches the upper BEAM band.
Best used on Daily timeframe and on a chart with history of price data, i.e. INDEX:BTCUSD or BITSTAMP:BTCUSD
To use the strategy:
Set start date
Set day of month to invest
Set the maximum amount to be invested on any given month
Toggle buy/sell orders
Observe the backtest
You can see how the strategy backtests via the information boxes in the bottom right.
There is also functionality to adjust the bands for diminishing returns. Note, this should be used with great skepticism, as the adjustments were made by simple function fitting and not rigorous statistical processes.
That about sums it up! As you can see, even with just a small amount of capital invested at regular intervals can lead to huge realised gains using this version of BEAM bands!
Chanu Delta RSI StrategyThis strategy is built on the Chanu Delta RSI , which indicates the strength of the Bitcoin market. The problem with the previous Chanu Delta Strategy was that it was simply based on the price difference between the two Bitcoin markets, so there was no universality. However, this new Chanu Delta RSI strategy solves the problem by introducing an RSI that compares the price difference trend.
When the Chanu Delta RSI hits “Bull Level” and “Bear Level” and closes the candle, long and short signals are triggered respectively. The example shown on the screen is a default setting optimized for a 4-hour candlestick strategy based on the Bybit BTCUSDT futures market. You can use it by adjusting the setting value and modifying it to suit you.
This strategy is selectable from both reference and large amplitude BTCUSD markets in order to enable fine backtesting. I recommend using BYBIT:BTCUSDT for the reference market and COINBASE:BTCUSD for the large amplitude market.
(Note) Using the "Chanu Delta RSI" to know the current indicator value in real time, it is convenient to predict the signal of the strategy.
(Note) Because the Chanu Delta RSI represents the price difference based on the Bybit BTCUSDT futures market, backtesting is possible from March 2020.
_____________________________________________________________
이 전략은 비트코인 시장의 강점을 나타내는 Chanu Delta RSI를 기반으로 합니다. 기존 Chanu Delta 전략의 문제점은 단순히 두 비트코인 시장의 가격차를 기준으로 하여 보편성이 없었다는 점이다. 하지만 이번 새로운 Chanu Delta RSI 전략은 가격차이 추세를 비교하는 RSI를 도입해 문제를 해결했습니다.
Chanu Delta RSI가 "Bull Level"과 "Bear Level"에 도달하고 봉마감하면 롱, 숏 신호가 각각 트리거됩니다. 화면에 보이는 예시는 Bybit BTCUSDT 선물 시장을 기반으로 한 4시간 캔들스틱 전략에 최적화된 기본 설정입니다. 설정값을 조정하여 자신에게 맞게 수정하여 사용하시면 됩니다.
이 전략은 정밀한 백테스팅을 가능하게 하기 위해 참조 및 큰 진폭 BTCUSD 시장에서 모두 선택할 수 있습니다. 참조 시장에는 BYBIT:BTCUSDT를 사용하고 큰 진폭 시장에는 COINBASE:BTCUSD를 사용하는 것이 좋습니다.
(주) "Chanu Delta RSI"를 이용하여 현재 지표 값을 실시간으로 알 수 있어 전략의 시그널을 예측하는데 편리합니다.
(주) Chanu Delta RSI는 바이비트 BTCUSDT 선물시장을 기준으로 가격차이를 나타내므로 2020년 3월부터 백테스팅이 가능합니다.
Modified QQE-ZigZag [Non Repaint During Candle Building]V V V V V V V Please Read V V V V V V V
I ask Peter and he is fine, that im published this script
Tell me if you have some ideas or criticism about that sricpt
>>>>>>>>>> This is a modified Version of Peter_O's Momentum Based ZigZag <<<<<<<<<<<
This is only a test, and i want to share it with the community
It works like other ZigZags
Because Peters_O's original Version is only non repaint on closed historical Data ,
during a Candle building process it can still repaint (signal appears / 21 seconds later signal disapears / 42 seconds later signal appears again in the same candle / etc.),
but that isnt important for backtesting, its only important for realtime PivotPoints during a candle.
My goal for this zigzag was to make it absolute non repaint neither during a candle building process (current candle),
so once the signal is shown there is no chance that it disapers and shown a few seconds later again on that same candle, it can only show up one time per candle an thats it,
and that makes it absolute non repaint in all time frames.
Credits to:
==> Thanks to @glaz , for bringing the QQE to Tradingview <3
==> Thanks to @Peter_O , for sharing his idea to use the QQE as base for a Zigzag
and for sharing his MTF RSI with the Community <3
Changes:
- I changed the MTF RSI a little bit, you can choose between two version
- I changed the QQE a little bit, its now using the MTF RSI , and its using High and Low values as Source to make it absolute non repaint during a candle is building
- I added a little Divergence Calculation beween price and the MTF RSI that is used for the ZigZag
Colors :
- Green for HH / HL Continuation
- Red for LL / LH Continuation
- Yellow for Positive Divergence
- Purple for Negative Divergence
Important:
It is not possible to backtest this script correctly with historical Data, its only possible in Realtime,
because the QQE is using crossunders with RSILowSource and the QQE Line to find the Tops and,
because the QQE is using crossovers with RSIHighSource and the QQE Line to find the Bottoms,
and that means it is not possible to find the correct Time/Moment when that crossovers / crossunders happens in historical Data
=============> So please be sure you understand the Calculation and Backtest it in Realtime when you want to use it,
because i didn't published this script for real trading
=============> Im not a financial advisor and youre using this script at your own risk
=============> Please do your own research
Joint Conditions Strategy Suite + TradingConnector alerts bot"Please give us combined alerts with the possibility of having several conditions in place to trigger the alert." - was the top voted request from users under one of the recent blogposts by TradingView.
Ask and you shall receive ;)
TradingView is a great platform, with unmatched set of functionalities, yet this particular combo of features indeed seems not to be in place. Fortunately, TradingView is also very open platform, thanks to PineScript coding language, which enables developing combos like the requried one and plenty of other magic.
I have already published numerous "educational" scripts, showing how to code indicators and alerts with PineScript, but... this is not one of them. This one is for real. READY FOR USE on real markets, also by the non-coding traders. Just take my script, set parameters with dropdowns, backtest the strategy, fire the alerts and execute them.
HOW TO USE IT
In "Settings" popup I tried to mimic the CreateAlert popup dropdowns for selecting logic. Let's say you want to enter Long position at Stochastic KxD crossover. In first line of Long Entry conditions set "StochK" + "Crossing Up" + "StochD". Last field doesn't matter because in 3rd dropdown something else than "value" was selected. In second line you could set "maB" + "Greater Than" + "maC" to filter out those entries which are in direction of the uptrend. And yeah, add ADX>25 to make sure the market is actually moving: "ADX" + "Greater Than" + "value" + "25". All condition lines must be TRUE (or skipped) for the entry to be triggered. Toghether with an alert.
The same for Short entries. Combinations are limitless.
INDICATORS AND MTF (MULTI-TIMEFRAME)
In those dropdowns you can select candle values like open/close/high/low/ohlc4, but also some most popular indicators, which I have pre-built into this script: RSI, various Moving Averages, ADX-DMI, Stochastic and Bollinger Bands for start. You can configure parameters of those indicators also in "Settings" popup, in "Indicator Definitions" section. What's important, you can use any of these indicators from higher timeframe, setting MTF multiplier. So if you applied this indicator to 1h chart, but want to use rsi(close,14) from 4h chart, set MTF to 4. If you want to use current timeframe indicators, keep MTF at 1, which is a default setting here.
Note for coders: to keep focus of this script on joining conditions, entire logic for those indicators has been moved to external library, also open source. I encourage you to dig into the code and see how it's done. I love the addition of libraries concept in PineScript.
CUSTOM INDICATOR
Following the "openness" spirit of my master - which is TradingView itself - my work is also open, in 2 ways:
1. This script is open source. So you can grab it, modify or add any functionalities you want. I cannot and don't want to stop you from doing that. I'm asking for only one favor - please mention this source script in your credits.
2. You can import the plot (series) from any other indicator on TradingView. In Settings popup of my script, scroll down to "Indicator Definitions" section, and select the series of your choice in the first dropdown. Now it is ready to use in conditions dropdowns on top of the Settings popup.
Let me give you an example of that last scenario. Take another script of mine, "Pivot Points on SR lines DEMO". You can find it in "Indicators & Strategies" library or here: (). Attach it to your chart. Now come back to THIS script, open Settings popup and in "Custom Indicator aka Imported Source" select "Pivot Points on SR lines: ...". The way it works - it detects if a pivot point happened on Support/Resistance line from the past and returns 1 for PivotLow and -1 for Pivot High. Now in first Long Entry condition set: "custom indicator" + "Greater Than" + "value" + "0" and long entries will be marked on every pivot low noticed on Support/Resistance line.
ALERTS
Last but not least - the alerts. This script produces alerts on the entries calculated by strategy logic, as marked on the chart by the backtester. Moreover, syntax of those alerts is already prepared and fully compatible with TradingConnector - alerts executing tool (bot), if you want to auto-execute those trades. Apart from installing the tool, you need to set
up the alerts in TradingView, here is how:
open CreateAlert popup
in first dropdown select "Joint Conditions Strategy Template"
in second dropdown select "alert() function calls only"
And that's all. You only need to set one alert for the whole script, not one for Longs and one for Shorts as it was in the past. Also, you don't need to setup closing alerts, because stop-loss/take-profit/trailing-stop information is embedded in the entry alert so your broker receives it as early as possible. Alerts sent will look like this: "long sl=40 tp=80", which is exactly what TradingConnector expects.
Phew, that's all folks. If you think I should add something to this template (maybe other indicators?) please let me know in comments or via DM. Happy trading!
P.S. Pyramiding is not supported in this script.
Disclaimer : I'm not saying above combination of conditions will make you money. Actually none of this can be considered financial advice. It is only a software tool. Use it wisely, be aware of the risk and do your own research!
Argo I (alerts for 3commas single bots)This script lets users create BUY/SELL alerts for 3commas single bots in a simple way, based on a built in set of indicators that can be tweaked to work together or separately through the study settings. Indicators include Bollinger Bands, Williams %R, RSI, EMA, SMA , Market Cipher, Inverse Fisher Transform.
If the user choses to create both BUY and SELL signals from the study settings, the alert created will send both BUY and SELL signals for the selected pair. Note the script will only send alerts for the pair selected in the study settings, not for the current chart (if different).
How to use:
- Add the script to the current chart
- Open the study settings , insert bot details. Pairs MUST be in capital letters or 3commas will not recognize them.
- Still in the study settings, tweak the deal start/close conditions from various indicators until happy. The study will plot the entry / exit points below the current chart (1 = buy, 2 = sell)
- Ideally, test the settings with a backtesting script. The present script is compatible with the Trading Parrot's backtester.
- When happy, right click on the "..." next to the study name, then "Add alert'".
- Under "Condition", on the second line, chose "Any alert () function call". Add the webhook from 3commas, give it a name, and "create".
Happy tweaking!
How to use Leverage and Margin in PineScriptEn route to being absolutely the best and most complete trading platform out there, TradingView has just closed 2 gaps in their PineScript language.
It is now possible to create and backtest a strategy for trading with leverage.
Backtester now produces Margin Calls - so recognizes mid-trade drawdown and if it is too big for the broker to maintain your trade, some part of if will be instantly closed.
New additions were announced in official blogpost , but it lacked code examples, so I have decided to publish this script. Having said that - this is purely educational stuff.
█ LEVERAGE
Let's start with the Leverage. I will discuss this assuming we are always entering trades with some percentage of our equity balance (default_qty_type = strategy.percent_of_equity), not fixed order quantity.
If you want to trade with 1:1 leverage (so no leverage) and enter a trade with all money in your trading account, then first line of your strategy script must include this parameter:
default_qty_value = 100 // which stands for 100%
Now, if you want to trade with 30:1 leverage, you need to multipy the quantity by 30x, so you'd get 30 x 100 = 3000:
default_qty_value = 3000 // which stands for 3000%
And you can play around with this value as you wish, so if you want to enter each trade with 10% equity on 15:1 leverage you'd get default_qty_value = 150.
That's easy. Of course you can modify this quantity value not only in the script, but also afterwards in Script Settings popup, "Properties" tab.
█ MARGIN
Second newly released feature is Margin calculation together with Margin Calls. If the market goes against your trades and your trading account cannot maintain mid-trade drawdown - those trades will be closed in full or partly. Also, if your trading account cannot afford to open more trades (pyramiding those trades), Margin mechanism will prevent them from being entered.
I will not go into details about how Margin calculation works, it was all explainged in above mentioned blogpost and documentation .
All you need to do is to add two parameters to the opening line of your script:
margin_long = 1./30*50, margin_short = 1./30*50
Whereas "30" is a leverage scale as in 30:1, and "50" stands for 50% of Margin required by your broker. Personally the Required Margin number I've met most often is 50%, so I'm using value 50 here, but there are literally 1000+ brokers in this world and this is individual decision by each of them, so you'd better ask yourself.
--------------------
Please note, that if you ever encounter a strategy which triggers Margin Call at least once, then it is probably a very bad strategy. Margin Call is a last resort, last security measure - all the risks should be calculated by the strategy algorithm before it is ever hit. So if you see a Margin Call being triggred, then something is wrong with risk management of the strategy. Therefore - don't use it!
Improved simple RSI Buy/Sell at a level (SL/TP)Improved Simple Strategy based on RSI, using overbought or oversold levels.
Backtest: ETHPERP (FTX) - 30m
Set STOP LOSS and GET PROFIT as a percentage (2% and 10% by default).
If strategy.position_size != 0 algorithm convert percentages into points and set stop loss and take profit limit orders.
Using `varip` variables [PineCoders]█ OVERVIEW
The new varip keyword in Pine can be used to declare variables that escape the rollback process, which is explained in the Pine User Manual's page on the execution model . This publication explains how Pine coders can use variables declared with varip to implement logic that was impossible to code in Pine before, such as timing events during the realtime bar, or keeping track of sequences of events that occur during successive realtime updates. We present code that allows you to calculate for how much time a given condition is true during a realtime bar, and show how this can be used to generate alerts.
█ WARNINGS
1. varip is an advanced feature which should only be used by coders already familiar with Pine's execution model and bar states .
2. Because varip only affects the behavior of your code in the realtime bar, it follows that backtest results on strategies built using logic based on varip will be meaningless,
as varip behavior cannot be simulated on historical bars. This also entails that plots on historical bars will not be able to reproduce the script's behavior in realtime.
3. Authors publishing scripts that behave differently in realtime and on historical bars should imperatively explain this to traders.
█ CONCEPTS
Escaping the rollback process
Whereas scripts only execute once at the close of historical bars, when a script is running in realtime, it executes every time the chart's feed detects a price or volume update. At every realtime update, Pine's runtime normally resets the values of a script's variables to their last committed value, i.e., the value they held when the previous bar closed. This is generally handy, as each realtime script execution starts from a known state, which simplifies script logic.
Sometimes, however, script logic requires code to be able to save states between different executions in the realtime bar. Declaring variables with varip now makes that possible. The "ip" in varip stands for "intrabar persist".
Let's look at the following code, which does not use varip :
//@version=4
study("")
int updateNo = na
if barstate.isnew
updateNo := 1
else
updateNo := updateNo + 1
plot(updateNo, style = plot.style_circles)
On historical bars, barstate.isnew is always true, so the plot shows a value of "1". On realtime bars, barstate.isnew is only true when the script first executes on the bar's opening. The plot will then briefly display "1" until subsequent executions occur. On the next executions during the realtime bar, the second branch of the if statement is executed because barstate.isnew is no longer true. Since `updateNo` is initialized to `na` at each execution, the `updateNo + 1` expression yields `na`, so nothing is plotted on further realtime executions of the script.
If we now use varip to declare the `updateNo` variable, the script behaves very differently:
//@version=4
study("")
varip int updateNo = na
if barstate.isnew
updateNo := 1
else
updateNo := updateNo + 1
plot(updateNo, style = plot.style_circles)
The difference now is that `updateNo` tracks the number of realtime updates that occur on each realtime bar. This can happen because the varip declaration allows the value of `updateNo` to be preserved between realtime updates; it is no longer rolled back at each realtime execution of the script. The test on barstate.isnew allows us to reset the update count when a new realtime bar comes in.
█ OUR SCRIPT
Let's move on to our script. It has three parts:
— Part 1 demonstrates how to generate alerts on timed conditions.
— Part 2 calculates the average of realtime update prices using a varip array.
— Part 3 presents a function to calculate the up/down/neutral volume by looking at price and volume variations between realtime bar updates.
Something we could not do in Pine before varip was to time the duration for which a condition is continuously true in the realtime bar. This was not possible because we could not save the beginning time of the first occurrence of the true condition.
One use case for this is a strategy where the system modeler wants to exit before the end of the realtime bar, but only if the exit condition occurs for a specific amount of time. One can thus design a strategy running on a 1H timeframe but able to exit if the exit condition persists for 15 minutes, for example. REMINDER: Using such logic in strategies will make backtesting their complete logic impossible, and backtest results useless, as historical behavior will not match the strategy's behavior in realtime, just as using `calc_on_every_tick = true` will do. Using `calc_on_every_tick = true` is necessary, by the way, when using varip in a strategy, as you want the strategy to run like a study in realtime, i.e., executing on each price or volume update.
Our script presents an `f_secondsSince(_cond, _resetCond)` function to calculate the time for which a condition is continuously true during, or even across multiple realtime bars. It only works in realtime. The abundant comments in the script hopefully provide enough information to understand the details of what it's doing. If you have questions, feel free to ask in the Comments section.
Features
The script's inputs allow you to:
• Specify the number of seconds the tested conditions must last before an alert is triggered (the default is 20 seconds).
• Determine if you want the duration to reset on new realtime bars.
• Require the direction of alerts (up or down) to alternate, which minimizes the number of alerts the script generates.
The inputs showcase the new `tooltip` parameter, which allows additional information to be displayed for each input by hovering over the "i" icon next to it.
The script only displays useful information on realtime bars. This information includes:
• The MA against which the current price is compared to determine the bull or bear conditions.
• A dash which prints on the chart when the bull or bear condition is true.
• An up or down triangle that prints when an alert is generated. The triangle will only appear on the update where the alert is triggered,
and unless that happens to be on the last execution of the realtime bar, it will not persist on the chart.
• The log of all triggered alerts to the right of the realtime bar.
• A gray square on top of the elapsed realtime bars where one or more alerts were generated. The square's tooltip displays the alert log for that bar.
• A yellow dot corresponding to the average price of all realtime bar updates, which is calculated using a varip array in "Part 2" of the script.
• Various key values in the Data Window for each parts of the script.
Note that the directional volume information calculated in Part 3 of the script is not plotted on the chart—only in the Data Window.
Using the script
You can try running the script on an open market with a 30sec timeframe. Because the default settings reset the duration on new realtime bars and require a 20 second delay, a reasonable amount of alerts will trigger.
Creating an alert on the script
You can create a script alert on the script. Keep in mind that when you create an alert from this script, the duration calculated by the instance of the script running the alert will not necessarily match that of the instance running on your chart, as both started their calculations at different times. Note that we use alert.freq_all in our alert() calls, so that alerts will trigger on all instances where the associated condition is met. If your alert is being paused because it reaches the maximum of 15 triggers in 3 minutes, you can configure the script's inputs so that up/down alerts must alternate. Also keep in mind that alerts run a distinct instance of your script on different servers, so discrepancies between the behavior of scripts running on charts and alerts can occur, especially if they trigger very often.
Challenges
Events detected in realtime using variables declared with varip can be transient and not leave visible traces at the close of the realtime bar, as is the case with our script, which can trigger multiple alerts during the same realtime bar, when the script's inputs allow for this. In such cases, elapsed realtime bars will be of no use in detecting past realtime bar events unless dedicated code is used to save traces of events, as we do with our alert log in this script, which we display as a tooltip on elapsed realtime bars.
█ NOTES
Realtime updates
We have no control over when realtime updates occur. A realtime bar can open, and then no realtime updates can occur until the open of the next realtime bar. The time between updates can vary considerably.
Past values
There is no mechanism to refer to past values of a varip variable across realtime executions in the same bar. Using the history-referencing operator will, as usual, return the variable's committed value on previous bars. If you want to preserve past values of a varip variable, they must be saved in other variables or in an array .
Resetting variables
Because varip variables not only preserve their values across realtime updates, but also across bars, you will typically need to plan conditions that will at some point reset their values to a known state. Testing on barstate.isnew , as we do, is a good way to achieve that.
Repainting
The fact that a script uses varip does not make it necessarily repainting. A script could conceivably use varip to calculate values saved when the realtime bar closes, and then use confirmed values of those calculations from the previous bar to trigger alerts or display plots, avoiding repaint.
timenow resolution
Although the variable is expressed in milliseconds it has an actual resolution of seconds, so it only increments in multiples of 1000 milliseconds.
Warn script users
When using varip to implement logic that cannot be replicated on historical bars, it's really important to explain this to traders in published script descriptions, even if you publish open-source. Remember that most TradingViewers do not know Pine.
New Pine features used in this script
This script uses three new Pine features:
• varip
• The `tooltip` parameter in input() .
• The new += assignment operator. See these also: -= , *= , /= and %= .
Example scripts
These are other scripts by PineCoders that use varip :
• Tick Delta Volume , by RicadoSantos .
• Tick Chart and Volume Info from Lower Time Frames by LonesomeTheBlue .
Thanks
Thanks to the PineCoders who helped improve this publication—especially to bmistiaen .
Look first. Then leap.
Delta-RSI Strategy (with filters)Delta-RSI Strategy (with filters):
This is a version of the Delta-RSI Oscillator strategy with several criteria available to filter entry and exit signals. This script is also suitable for backtesting over a user-defined period and offers several risk management options (take profit and stop loss).
Since the publication of the Delta-RSI Oscillator script, I have been asked many times to make it compatible with the Strategy Tester and add filtering criteria to minimize "false" signals. This version covers many of these requests. Feel free to insert your favorite D-RSI parameters and play around!
ABOUT DELTA-RSI
Delta-RSI represents a smoothed time derivative of the RSI designed as a momentum indicator (see links below):
INPUT DESCTIPTION
MODEL PARAMETERS
Polynomial Order : The order of local polynomial used to interpolate the relative strength index (RSI).
Length : The length of the lookback frame where local regression is applied.
RSI Length : The timeframe of RSI used as input.
Signal Length : The signal line is a EMA of the D-RSI time series. This input parameter defines the EMA length.
ALLOWED ENTRIES
The strategy can include long entries, short entries or both.
ENTRY AND EXIT CONDITIONS
Zero-crossing : bullish trade signal triggered when D-RSI crosses zero from negative to positive values (bearish otherwise)
Signal Line Crossing : bullish trade signal triggered when D-RSI crosses from below to above the signal line (bearish otherwise)
Direction Change : bullish trade signal triggered when D-RSI was negative and starts ascending (bearish otherwise)
APPLY FILTERS TO
The filters (described below) can be applied to long entry, short entry and exit signals.
RELATIVE VOLUME FILTER
When activated, the D-RSI-driven entries and exits will be triggered only if the current volume is greater than N times the average over the last M bars.
VOLATILITY FILTER
When activated, the D-RSI-driven entries and exits will be triggered only if the N-period average true range, ATR, is greater than the M-period ATR. If N < M, this condition implies increasing volatility.
OVERBOUGHT/OVERSOLD FILTER
When activated, the D-RSI-driven entries and exits will be triggered only if the value of 14-period RSI is in the range between N and M.
STOP LOSS/TAKE PROFIT
Fixed and trailing stop loss as well as take profit options are available.
FIXED BACKTESTING START/END DATES
If the checkboxes are not checked, the strategy will backtest all available price bars.
CHOP Zone Entry Strategy + DMI/PSAR ExitThis is a Strategy with associated visual indicators and Long/Short and Reverse/Close Position Alerts for the Choppiness Index (CHOP) . It is used to determine if the market is choppy (trading sideways) or not choppy (trading within a trend in either direction). CHOP is not directional, so a DMI script was ported into this strategy to allow for trend confirmation and direction determination; it consists of an Average Directional Index (ADX) , Plus Directional Indicator (+DI) and Minus Directional Indicator (-DI) . In addition, a Parabolic SAR is also included to act as a trailing stop during any strong trends.
Development Notes
---------------------------
This indicator, and most of the descriptions below, were derived largely from the TradingView reference manual. Feedback and suggestions for improvement are more than welcome, as well are recommended Input settings and best practices for use.
www.tradingview.com
www.tradingview.com
www.tradingview.com
Recommend using the below DMI and PSAR indicators in conjunction with this script to fully visualize and understand how entry and exit conditions are chosen. Variable inputs should correlate between the scripts for uniformity and visual compatibility.
THANKS to LazyBear and his Momentum Squeeze script for helping me quickly develop a momentum state model for coloring the Chop line by trend.
Strategy Description
---------------------------
CHOP produces values that determine whether the market is choppy or trending . The closer the value is to 100 , the higher the choppiness levels , while the closer it is to 0 , the stronger the market is trending . Territories for both levels, and their associated upper and lower thresholds, are popularly defined using the Fibonacci Retracements, 61.8 and 38.2.
Basic Use
---------------------------
CHOP is often used to confirm the market condition to help you stay out of sideways markets and only enter when there is movement or imminent explosions. When readings are above the upper threshold, continued sideways movement may be expected, while readings below the lower threshold are typically indicative of a continuing trend. It is also used to anticipate upcoming trendiness changes, with the general belief that extended periods of consolidation (sideways movement) are followed by extended periods of strong, trending, directional movement, and vice versa.
One limitation in this index is that you must be cautious in deciding whether the range or trend will likely continue, or if it will reverse.
Confidence in price action and trend is higher when two or more indicators are in agreement -- while this strategy combines CHOP with both DMI and PSAR, we would still recommend pairing with other indicators to determine entry or exit trade opportunities.
Recommend also choosing 'Once Per Bar Close' when creating alerts.
Inputs
---------------------------
Strategy Direction - an option to only trade Short, Long, Both, or only in the direction of the Trend (Follow Trend is the Default).
Sensitivity - an incremental variable to test whether the past n candles are in the same trend state before triggering a delayed long or short alert (1 is the Default). Can help filter out noise and reduces active alerts.
Show Chop Index - two visual styles are provided for user preference, a visible Chop line with a background overlay, or a compact column and label only view.
Chop Lookback Period - the time period to be used in calculating CHOP (14 is the Default).
Chop Offset - changing this number will move the CHOP either forwards or backwards relative to the current market (0 is the Default).
Smooth Chop Line and Length - if enabled, the entered time period will be used in calculating a smooth average of the index (Enabled and 4 are the Defaults).
Color Line to Trend Direction - toggles whether the index line is colored to visually depict the current trend direction (Enabled is the Default).
Color Background - toggles the visibility of a background color based on the index state (Enabled is the Default).
Enable DMI Option - if enabled, then entry will be confirmed by and dependent on the ADX Key Level, with any close or reversal confirmed by both ADX and +/-DI to determine whether there is a strong trend present or not (Enabled is the Default).
ADX Smoothing - the time period to be used in calculating the ADX which has a smoothing component (14 is the Default).
DI Length - the time period to be used in calculating the DI (14 is the Default).
ADX Key Level - any trade with the ADX above the key level is a strong indicator that it is trending (23 to 25 is the suggested setting).
Enable PSAR Option - enables trailing stop loss orders (Enabled is the Default).
PSAR Start - the starting value for the Acceleration Force (0.015 is our chosen Default, 0.02 is more common).
PSAR Increment - the increment in which the Acceleration Force will move (0.001 is our chosen Default, 0.02 is more common).
PSAR Max Value - the maximum value of the Acceleration Factor (0.2 is the Default).
Color Candles Option - an option to transpose the CHOP condition levels to the main candle bars. Note that the outer red and green border will still be distinguished by whether each individual candle is bearish or bullish during the specified timeframe.
Note too that if both DMI and PSAR are deselected, then close determinations will default to a CHOP reversal strategy (e.g., close long when below 38.2 and close short when above 61.8). Though if either DMI or PSAR are enabled, then the CHOP reversal for close determination will automatically be disabled.
Indicator Visuals
---------------------------
For the candle colors, black indicates tight chop (45 to 55), yellow is loose chop (38.2 to 45 and 55 to 61.8), dark purple is trending down (< 38.2), and dark blue is trending up (> 61.8).
The background color has additional shades to differentiate a wider range of more levels…
• < 30 is dark purple
• 30 to 38.2 is purple
• 38.2 to 45 is light purple
• 45 to 55 is black
• 55 to 61.8 is light blue
• 61.8 to 70 is blue
• > 70 is dark blue
Long, Short, Close, and Reverse labels are plotted on the Chop line, which itself can be colored based on the trend. The chop line can also be hidden for a clean and compact, columnar view, which is my preferred option (see example image below).
Visual cues are intended to improve analysis and decrease interpretation time during trading, as well as to aid in understanding the purpose of this strategy and how its inclusion can benefit a comprehensive trading plan.
DMI and Trend Strength
---------------------------
To analyze trend strength, the focus should be on the ADX line and not the +DI or -DI lines. An ADX reading above 25 indicates a strong trend , while a reading below 20 indicates a weak or non-existent trend . A reading between those two values would be considered indeterminable. Though what is truly a strong trend or a weak trend depends on the financial instrument being examined; historical analysis can assist in determining appropriate values.
DMI exits trade when ADX is below the user selected key level (e.g., default is 25) and when the +/- DI lines cross (e.g., -DI > +DI exits long position and +DI > -DI exits short position).
PSAR and Trailing Stop
---------------------------
PSAR is a time and price based indicator that excels at measuring direction and duration, though not the actual strength of a trend, which is why we use this in conjunction with DMI. It is also included in this script as a trailing stop option to maximize gains during strong trends and to mitigate any false ADX strengthening signals.
This creates a parabola that is located below the candle during a Bullish trend and above during a Bearish trend. A buy or reversal is signaled when the price crosses above or below the Parabolic SAR.
Long/Short Entry
---------------------------
1. CHOP must be over 61.8 (long) or under 38.2 (short).
2. If DMI is enabled, then the ADX signal line must be above the user selected Key Level (default is 25).
3. If Sensitivity is selected, then that past candle must meet the criteria in step 1, as well as all the intermediate candles in between.
4. If "Follow Trend" is selected and PSAR is enabled, then a long position can only open when the momentum and PSAR are in an uptrend, or short when both are in a downtrend, to include all intermediate candles if the Sensitivity option is set on a past candle.
Close/Reverse
---------------------------
1. If DMI is enabled, then a close flag will be raised when the ADX signal drops below the Key Level (of 25), and -DI crosses over +DI (if long), or +DI crosses over -DI (if short).
2. If PSAR is enabled, then a close flag will be raised when the current trend state is opposite the last state.
3. If both DMI and PSAR are disabled, then a close flag will be raised if the Chop line drops under 38.2 (if long) or goes over 61.8 (if short).
4. If a Long or Short Entry is triggered on the same candle as any of the above close flags, then the position will be reversed, else the position will be closed.
Strategy Alerts
---------------------------
1. Long Entry
2. Short Entry
3. Reverse
4. Close
The provided backtest result is based on a position sizing of 10% equity with 100k initial capital. When testing SPX, disabling the DMI performed the best, but EURUSD performed poorly without it enabled, and TSLA had a small reduction in net profit. Timeframe likewise differed between commodities with TSLA performing best at 30M, SPX at 15M, and EURUSD at 4H. I do not plan on using this as a standalone strategy, but I also was expecting better results with the inclusion of EMI and PSAR to compliment the CHOP. Key elements of this script will likely be included in future, more holistic strategies.
Disclaimer
---------------------------
Past performance may not be indicative of future results. Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting. This post and the script are not intended to provide any financial advice. Trade at your own risk.
No known repainting, though there may be if an offset is introduced in the Inputs. I did my best not to code any other variables that repaint, but cannot fully attest to this fact.
The Strategy - Ichimoku Kinko Hyo and moreThe purpose of this strategy is to make the signals from my scripts available for verification by backtests. Different signal and filter combinations can be created and specific manual parameter optimization can be carried out.
In detail, this strategy includes:
23 entry signals
two entry filters with each 9 filters
two exit filters with each 9 filters
take profit and stop loss
time period for backtesting
expected range STRATEGYThis is the strategy version of "expected range STUDY". The buy and sell signals are generated with the study version, but what is displayed on the chart is different. Here, the PnL of each trade is shown on the chart, as well as the peak profit point of each trade up till the present. Black areas represent take profit and waiting for the next trade to start. Green = long. Red = short. Set to take profit at 53% and stoploss is set to -7%. Having a stoploss trigger does not put a black area on the chart. For the XBTUSD 2 hour chart, but use it however you like on whatever chart for backtesting.
Enjoy. Don't get rekt. A good backtest doesn't mean a good forward test. Use at your own risk.
Simple EMA_Hull_RSI StrategyAnother simple strategy. Crossing EMA & Hull MA and the level of RSI (overbought/oversold) defines long or short.
Can be improved by varying the parameters and adding take profit / stop loss.
Backtest: ETHUSD (Bitmex): 5m
Simple RSI Strategy Buy/Sell at a certain levelSimple Strategy based on RSI, using overbought or oversold levels, defined by us, sell or buy an asset.
Backtest: ETHUSD (Bitmex) - 3h
TradingView Alerts to MT4 MT5 + dynamic variables NON-REPAINTINGAccidentally, I’m sharing open-source profitable Forex strategy. Accidentally, because this was aimed to be purely educational material. A few days ago TradingView released a very powerful feature of dynamic values from PineScript now being allowed to be passed in Alerts. And thanks to TradingConnector, they could be instantly executed in MT4 or MT5 platform of any broker in the world. So yeah - TradingConnector works with indices and commodities, too.
The logic of this EURUSD 6h strategy is very simple - it is based on Stochastic crossovers with stop-loss set under most recent pivot point. Setting stop-loss with surgical precision is possible exactly thanks to allowance of dynamic values in alerts. TradingConnector has been also upgraded to take advantage of these dynamic values and it now enables executing trades with pre-calculated stop-loss, take-profit, as well as stop and limit orders.
Another fresh feature of TradingConnector, is closing positions only partly - provided that the broker allows it, of course. A position needs to have trade_id specified at entry, referred to in further alerts with partial closing. Detailed spec of alerts syntax and functionalities can be found at TradingConnector website. How to include dynamic variables in alert messages can be seen at the very end of the script in alertcondition() calls.
The strategy also takes commission into consideration.
Slippage is intentionally left at 0. Due to shorter than 1 second delivery time of TradingConnector, slippage is practically non-existing. This can be achieved especially if you’re using VPS server, hosted in the same datacenter as your brokers’ servers. I am using such setup, it is doable. Small slippage and spread is already included in commission value.
This strategy is NON-REPAINTING and uses NO TRAILING-STOP or any other feature known to be faulty in TradingView backtester. Does it make this strategy bulletproof and 100% success-guaranteed? Hell no! Remember the no.1 rule of backtesting - no matter how profitable and good looking a script is, it only tells about the past. There is zero guarantee the same strategy will get similar results in the future.
To turn this script into study so that alerts can be produced, do 2 things:
1. comment “strategy” line at the beginning and uncomment “study” line
2. comment lines 54-59 and uncomment lines 62-65.
Then add script to the chart and configure alerts.
This script was build for educational purposes only.
Certainly this is not financial advice. Anybody using this script or any of its parts in any way, must be aware of high risks connected with trading.
Thanks @LucF and @a.tesla2018 for helping me with code fixes :)
TRAILING STOP LOSS TO LONG AND SHORT##THIS SCRIPT IS ON GITHUB
This TradingView strategy it is designed to integrate with other strategies with indicators.
It performs a trailing stop loss from entry and exit conditions.
In this strategy you can add conditions for long and short positions.
The strategy will ride up your stop loss when price moviment 1%.
The strategy will close your operation when the market price crossed the stop loss.
Also is possible to select the period that strategy will execute the backtest.
The strategy has the following parameters:
+ **INITIAL STOP LOSS** - Where can isert the value to first stop.
+ **POSITION TYPE** - Where can to select trade position.
+ **BACKTEST PERIOD** - To select range.
## DISCLAIMER
1. I am not licensed financial advisors or broker dealers. I do not tell you when or what to buy or sell. I developed this software which enables you execute manual or automated trades multiple trades using TradingView. The software allows you to set the criteria you want for entering and exiting trades.
2. Do not trade with money you cannot afford to lose.
3. I do not guarantee consistent profits or that anyone can make money with no effort. And I am not selling the holy grail.
4. Every system can have winning and losing streaks.
5. Money management plays a large role in the results of your trading. For example: lot size, account size, broker leverage, and broker margin call rules all have an effect on results. Also, your Take Profit and Stop Loss settings for individual pair trades and for overall account equity have a major impact on results. If you are new to trading and do not understand these items, then I recommend you seek education materials to further your knowledge.
**YOU NEED TO FIND AND USE THE TRADING SYSTEM THAT WORKS BEST FOR YOU AND YOUR TRADING TOLERANCE.**
**I HAVE PROVIDED NOTHING MORE THAN A TOOL WITH OPTIONS FOR YOU TO TRADE WITH THIS PROGRAM ON TRADINGVIEW.**
## NOTE
I accept suggestions to improve the script.
If you encounter any problems I will be happy to share with me.
+ Authors: @exit490
+ Revision: v1.0.0
+ Date: 03-Aug-2019
+ Pinescript version: 4
## LICENSE
Copyright 2019 Mauricio Pimenta / exit490
Trailing Stop Loss script may be freely distributed under the MIT license .
Adding some essential components to a prebuilt RSI strategyThis is more to be used as a blank_slate for any strategy build adding more effective backtesting with a period selector and inputs like TS, TP, SL that can all be used as plots for alerts.
It has the BackTest Component created by Pbergden
It also includes the standard long/short with trailing stop, take profit, stop loss and margin call.
Here is a video using the blank_slate to add in the built-in RSI Strategy.
youtu.be
We hope this brings good results and helps speed things up for everyone.
CM RSI-2 Strategy Lower IndicatorRSI-2 Strategy
***At the bottom of the page is a link where you can download the PDF of the Backtesting Results.
This year I am focusing on learning from two of the best mentors in the Industry with outstanding track records for Creating Systems, and learning the what methods actually work as far as back testing.
I came across the RSI-2 system that Larry Connors developed. Larry has become famous for his technical indicators, but his RSI-2 system is what actually put him “On The Map” per se. At first glance I didn’t think it would work well, but I decided to code it and ran backtests on the S&P 100 In Down Trending Markets, Up Trending Markets, and both combined. I was shocked by the results. So I thought I would provide them for you. I also ran a test on the Major forex Pairs (12) for the last 5 years, and All Forex Pairs (80) from 11/28/2007 - 6/09/2014, impressive results also.
The RSI-2 Strategy is designed to use on Daily Bars, however it is a short term trading strategy. The average length of time in a trade is just over 2 days. But the results CRUSH the general market averages.
Detailed Description of Indicators, Rules Below:
Link For PDF of Detailed Trade Results
d.pr
Original Post
CM RSI-2 Strategy - Upper Indicators.RSI-2 Strategy
***At the bottom of the page is a link where you can download the PDF of the Backtesting Results.
This year I am focusing on learning from two of the best mentors in the Industry with outstanding track records for Creating Systems, and learning the what methods actually work as far as back testing.
I came across the RSI-2 system that Larry Connors developed. Larry has become famous for his technical indicators, but his RSI-2 system is what actually put him “On The Map” per se. At first glance I didn’t think it would work well, but I decided to code it and ran backtests on the S&P 100 In Down Trending Markets, Up Trending Markets, and both combined. I was shocked by the results. So I thought I would provide them for you. I also ran a test on the Major forex Pairs (12) for the last 5 years, and All Forex Pairs (80) from 11/28/2007 - 6/09/2014, impressive results also.
The RSI-2 Strategy is designed to use on Daily Bars, however it is a short term trading strategy. The average length of time in a trade is just over 2 days. But the results CRUSH the general market averages.
Detailed Description of Indicators, Rules Below:
Link For PDF of Detailed Trade Results
d.pr
Original Post
Money Risk Management with Trade Tracking
Overview
The Money Risk Management with Trade Tracking indicator is a powerful tool designed for traders on TradingView to simplify trade simulation and risk management. Unlike the TradingView Strategy Tester, which can be complex for beginners, this indicator provides an intuitive, beginner-friendly interface to evaluate trading strategies in a realistic manner, mirroring real-world trading conditions.
Built on the foundation of open-source contributions from LuxAlgo and TCP, this indicator integrates external indicator signals, overlays take-profit (TP) and stop-loss (SL) levels, and provides detailed money management analytics. It empowers traders to visualize potential profits, losses, and risk-reward ratios, making it easier to understand the financial outcomes of their strategies.
Key Features
Signal Integration: Seamlessly integrates with external long and short signals from other indicators, allowing traders to overlay TP/SL levels based on their preferred strategies.
Realistic Trade Simulation: Simulates trades as they would occur in real-world scenarios, accounting for initial capital, risk percentage, leverage, and compounding effects.
Money Management Dashboard: Displays critical metrics such as current capital, unrealized P&L, risk amount, potential profit, risk-reward ratio, and trade status in a customizable, beginner-friendly table.
TP/SL Visualization: Plots TP and SL levels on the chart with customizable styles (solid, dashed, dotted) and colors, along with optional labels for clarity.
Performance Tracking: Tracks total trades, win/loss counts, win rate, and profit factor, providing a clear overview of strategy performance.
Liquidation Risk Alerts: Warns traders if stop-loss levels risk liquidation based on leverage settings, enhancing risk awareness.
Benefits for Traders
Beginner-Friendly: Simplifies the complexities of the TradingView Strategy Tester, offering an intuitive interface for new traders to simulate and evaluate trades without confusion.
Real-World Insights: Helps traders understand the actual profit or loss potential of their strategies by factoring in capital, risk, and leverage, bridging the gap between theoretical backtesting and real-world execution.
Enhanced Decision-Making: Provides clear, real-time analytics on risk-reward ratios, unrealized P&L, and trade performance, enabling informed trading decisions.
Customizable and Flexible: Allows customization of TP/SL settings, table positions, colors, and sizes, catering to individual trader preferences.
Risk Management Focus: Encourages disciplined trading by highlighting risk amounts, potential profits, and liquidation risks, fostering better financial planning.
Why This Indicator Stands Out
Many traders struggle to translate backtested strategy results into real-world outcomes due to the abstract nature of percentage-based profitability metrics. This indicator addresses that challenge by providing a practical, user-friendly tool that simulates trades with real-world parameters like capital, leverage, and compounding. Its open-source nature ensures accessibility, while its integration with other indicators makes it versatile for various trading styles.
How to Use
Add to TradingView: Copy the Pine Script code into TradingView’s Pine Editor and add it to your chart.
Configure Inputs: Set your initial capital, risk percentage, leverage, and TP/SL values in the indicator settings. Select external long/short signal sources if integrating with other indicators.
Monitor Dashboards: Use the Money Management and Target Dashboard tables to track trade performance and risk metrics in real time.
Analyze Results: Review win rates, profit factors, and P&L to refine your trading strategy.
Credits
This indicator builds upon the open-source contributions of LuxAlgo and TCP , whose efforts in sharing their code have made this tool possible. Their dedication to the trading community is deeply appreciated.
Chaikin Momentum Scalper🎯 Overview
The Chaikin Momentum Scalper is a powerful trading strategy designed to identify momentum shifts in the market and ride the trend for maximum profits. This strategy is ideal for trading the USD/JPY currency pair on a 15-minute chart, making it perfect for high-frequency trading (HFT). Whether you’re starting with a small account of $1,000 or managing a larger portfolio, this strategy can scale to suit your needs.
________________________________________
🔑 How the Strategy Works
Here’s how the Chaikin Momentum Scalper identifies trade opportunities:
1️⃣ Momentum Detection
The core of this strategy is the Chaikin Oscillator, a tool that measures the flow of money into or out of a market. It helps us understand whether buyers (bulls) or sellers (bears) are in control.
• When the indicator crosses above zero, it signals that buying momentum is picking up – a buying opportunity.
• When the indicator crosses below zero, it signals that selling momentum is increasing – a selling opportunity.
2️⃣ Trend Confirmation
We don’t just jump into trades based on momentum alone. We also use a 200-period simple moving average (SMA) to confirm the overall trend.
• If the price is above the SMA, it confirms an uptrend, so we look for buy trades.
• If the price is below the SMA, it confirms a downtrend, so we look for sell trades.
This way, we align our trades with the broader market direction for higher success rates.
3️⃣ Volatility & Risk Management
We use a tool called the Average True Range (ATR) to measure market volatility. This helps us:
• Set a stop-loss (where we’ll exit the trade if the market moves against us) at a safe distance from our entry point.
• Set a take-profit (where we’ll lock in profits) at a target that’s larger than the stop-loss, ensuring a good reward-to-risk ratio.
This approach adapts to the market’s behavior, tightening stops in calmer conditions and widening them when volatility increases.
________________________________________
📈 Why This Strategy Works
✅ It combines momentum and trend-following principles, increasing the chances of trading in the right direction.
✅ It dynamically adjusts risk levels based on market volatility, keeping losses small and profits big.
✅ It’s scalable – perfect for both small accounts (like $1,000) and larger, corporate-sized portfolios.
✅ It has been deep-backtested on USD/JPY 15-minute charts, proving its consistency across different market conditions.
________________________________________
📝 Important Notes
📌 This strategy is best used for USD/JPY on a 15-minute chart, making it great for high-frequency trading while you continue to build and refine your trading system.
📌 It’s designed to work on both small ($1,000+) and large accounts, so it can grow with you as your capital increases.
📌 While it has passed deep backtesting on this pair and timeframe, remember that no strategy is perfect. It’s crucial to test it yourself, start with a demo account, and apply proper risk management before trading real money.
🌟 Final Thoughts
The Chaikin Momentum Scalper is a solid, adaptable trading approach combining momentum, trend direction, and volatility awareness. If you’re looking for a strategy to kick-start your trading journey—or to add to your existing system—it offers a strong foundation.
Connors VIX Reversal III invented by Dave LandryThis strategy is based on trading signals derived from the behavior of the Volatility Index (VIX) relative to its 10-day moving average. The rules are split into buying and selling conditions:
Buy Conditions:
The VIX low must be above its 10-day moving average.
The VIX must close at least 10% above its 10-day moving average.
If both conditions are met, a buy signal is generated at the market's close.
Sell Conditions:
The VIX high must be below its 10-day moving average.
The VIX must close at least 10% below its 10-day moving average.
If both conditions are met, a sell signal is generated at the market's close.
Exit Conditions:
For long positions, the strategy exits when the VIX trades intraday below its previous day’s 10-day moving average.
For short positions, the strategy exits when the VIX trades intraday above its previous day’s 10-day moving average.
This strategy is primarily a mean-reversion strategy, where the market is expected to revert to a more normal state after the VIX exhibits extreme behavior (i.e., large deviations from its moving average).
About Dave Landry
Dave Landry is a well-known figure in the world of trading, particularly in technical analysis. He is an author, trader, and educator, best known for his work on swing trading strategies. Landry focuses on trend-following and momentum-based techniques, teaching traders how to capitalize on shorter-term price swings in the market. He has written books like "Dave Landry on Swing Trading" and "The Layman's Guide to Trading Stocks," which emphasize practical, actionable trading strategies.
About Connors Research
Connors Research is a financial research firm known for its quantitative research in financial markets. Founded by Larry Connors, the firm specializes in developing high-probability trading systems based on historical market behavior. Connors’ work is widely respected for its data-driven approach, including systems like the RSI(2) strategy, which focuses on short-term mean reversion. The firm also provides trading education and tools for institutional and retail traders alike, emphasizing strategies that can be backtested and quantified.
Risks of the Strategy
While this strategy may appear to offer promising opportunities to exploit extreme VIX movements, it carries several risks:
Market Volatility: The VIX itself is a measure of market volatility, meaning the strategy can be exposed to sudden and unpredictable market swings. This can result in whipsaws, where positions are opened and closed in rapid succession due to sharp reversals in the VIX.
Overfitting: Strategies based on specific conditions like the VIX closing 10% above or below its moving average can be subject to overfitting, meaning they work well in historical tests but may underperform in live markets. This is a common issue in quantitative trading systems that are not adaptable to changing market conditions .
Mean-Reversion Assumption: The core assumption behind this strategy is that markets will revert to their mean after extreme movements. However, during periods of sustained trends (e.g., market crashes or rallies), this assumption may break down, leading to prolonged drawdowns.
Liquidity and Slippage: Depending on the asset being traded (e.g., S&P 500 futures, ETFs), liquidity issues or slippage could occur when executing trades at market close, particularly in volatile conditions. This could increase costs or worsen trade execution.
Scientific Explanation of the Strategy
The VIX is often referred to as the "fear gauge" because it measures the market's expectations of volatility based on options prices. Research has shown that the VIX tends to spike during periods of market stress and revert to lower levels when conditions stabilize . Mean reversion strategies like this one assume that extreme VIX levels are unsustainable in the long run, which aligns with findings from academic literature on volatility and market behavior.
Studies have found that the VIX is inversely correlated with stock market returns, meaning that higher VIX levels often correspond to lower stock prices and vice versa . By using the VIX’s relationship with its 10-day moving average, this strategy aims to capture reversals in market sentiment. The 10% threshold is designed to identify moments when the VIX is significantly deviating from its norm, signaling a potential reversal.
However, academic research also highlights the limitations of relying on the VIX alone for trading signals. The VIX does not predict market direction, only volatility, meaning that it cannot indicate the magnitude of price movements . Furthermore, extreme VIX levels can persist longer than expected, particularly during financial crises.
In conclusion, while the strategy is grounded in well-established financial principles (e.g., mean reversion and the relationship between volatility and market performance), it carries inherent risks and should be used with caution. Backtesting and careful risk management are essential before applying this strategy in live markets.