Moving Stop-Loss mechanism + alerts to MT4/MT5"How to code moving stop-loss mechanism", is one of the most often repeating questions in private messages I receive, so just to focus on this mechanism, I made a spin-off from my previous script: TradingView-Alerts-to-MT4-MT5-dynamic-variables-NON-REPAINTING .
The logic here moves the stop-loss each time a trade is running and a new pivot high/low is detected. When such event occurs (UpdateLongStopLoss or UpdateShortStopLoss), stoploss_long or stoploss_short mutable variable is modified. And it needs to be coded inside strategy.exit() line as "stop=stoploss_long" or "stop=stoploss_short". Entries are pretty straightforward - on Stoch crosses.
Last lines of the script show how to wrap information about such updates and send send alerts to MetaTrader via TradingConnector for execution in Forex/indices/commodities/crypto markets via MetaTrader. Please note that "tradeid=" variable must be passed with each alert, to let MetaTrader know which trade to modify. SLMOD, TPMOD are recently added commands, along with BE (as in "move stop-loss to breakeven" - but that's another topic).
Please disregard strategy backtest results, as this script is for coding education purposes only. However, it seems with the stop-loss mechanism enabled, the results are even better, than in original version of the script :)
Stochastic-Oscillator
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!
scalping against trapped countertrendAbstract
This script attempts to find the end of countertrend.
This script uses oscillators to measure long term and short period trends. When the long term trend keeps positive and clear short term period is over, this script provides a buy signal.
This script does not contain pullback, cut loss and re-enter. You need to add it manually.
Introduction
Many traders want to buy when long term trend is bullish and short term pullback is over.
This is because we can take advantage to the emotion of countertrend traders.
Countertrend traders realizes their profit is finite and therefore want to protect their profit well and limit their loss.
This script is inspired by a searchable trading strategy video.
The video mentioned 4 points.
(1) long term trend. The video did not spend much ink on this point. You can use any method to observe.
(2) clear pullback bar (at least 50% body)
(3) weak bar after clear pullback
(4) entry trigger buy stop
This script attempts to quantize these points to determine trading direction.
This script is originally designed for timeframes lower than examples in the video but you can apply it on any timeframe.
Computing and Adjusting
(1) long term trend
This script uses smoothed stochastic.
(2) clear pullback bar
Since this script is originally designed for timeframes lower than examples in the video, so the condition becomes:
RSI is low enough
(3) weak bar after clear pullback
RSI goes back from low level.
(4) entry trigger buy stop
This script does not include this condition.
You can decide enter when buy stop or pullback.
Parameters
x_src : the value for computing oscillators
x_len_a : how many bars for measuring short term trend
x_len_b : how many bars for measuring long term trend
x_k_b : smooth long term trend, the average value of stochastic values
x_changk = check if clear short term pullback appears recently. 1 means do not use, larger numbers means how long of periods to check.
x_rsi_ct : threshold of short term pullback clear
x_rsi_ft : threshold of short term pullback end
Reading numbers in Strategy Tester
Most possible loss :
(1) to find rational pullback. Generally 1/3 to 2/3 atr.
(2) to find cut loss distance. Generally 1 to 2 atr.
Most possible profit :
to find if trading the opposite direction against this script is profitable.
Conclusion
This script can suggest us trading direction.
Waiting for pullback can reduce risk, compared to buy stop.
This script does not provide good signals in sideways markets.
Reference
A searchable trading strategy video
TradingView Alerts to MT4 MT5 - Forex, indices, commoditiesHowdy Algo-Traders! This example script has been created for educational purposes - to present how to use and automatically execute TradingView Alerts on real markets.
I'm posting this script today for a reason. TradingView has just released a new feature of the PineScript language - ALERT() function. Why is it important? It is finally possible to set alerts inside PineScript strategy-type script, without the need to convert the script into study-type. You may say triggering alerts straight from strategies was possible in PineScript before (since June 2020), but it had its limitations. Starting today you can attach alert to any custom event you might want to include in your PineScript code.
With the new feature, it is easier not only to execute strategies, but to maintain codebase - having to update 2 versions of the code with each single modification was... ahem... inconvenient. Moreover, the need to convert strategy into study also meant it was required to rip the code from all strategy...() calls, which carried a lot of useful information, like entry price, position size, and more, definitely influencing results calculated by strategy backtest. So the strategy without these features very likely produced different results than with them. While it was possible to convert these features into study with some advanced "coding gymnastics", it was also quite difficult to test whether those gymnastics didn't introduce serious, bankrupting bugs.
//////
How does this new feature work? It is really simple. On your custom events in the code like "GoLong" or "GoShort", create a string variable containing all the values you need inside your alert and this string variable will be your alert's message. Then, invoke brand new alert() function and that's it (see lines 67 onwards in the script). Set it up in CreateAlert popup and enjoy. Alerts will trigger on candle close as freq= parameter specifies. Detailed specification of the new alert() function can be found in TradingView's PineScript Reference (www.tradingview.com), but there's nothing more than message= and freq= parameters. Nothing else is needed, it is very simple. Yet powerful :)
//////
Alert syntax in this script is prepared to work with TradingConnector. Strategy here is not too complex, but also not the most basic one: it includes full exits, partial exits, stop-losses and it also utilizes dynamic variables calculated by the code (such as stop-loss price). This is only an example use case, because you could handle variety of other functionalities as well: conditional entries, pending entries, pyramiding, hedging, moving stop-loss to break-even, delivering alerts to multiple brokers and more.
//////
This script is a spin-off from my previous work, posted over a year ago here: Some comments on strategy parameters have been discussed there, but let me copy-paste most important points:
* Commission is taken into consideration.
* Slippage is intentionally left at 0. Due to shorter than 1 second delivery time of TradingConnector, slippage is practically non-existing.
* This strategy is NON-REPAINTING and uses NO TRAILING-STOP or any other feature known to be causing problems.
* The strategy was backtested on EURUSD 6h timeframe, will perform differently on other markets and timeframes.
Despite the fact this strategy seems to be still profitable, it is not guaranteed it will continue to perform well in the future. 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.
Full specs of TradingView alerts and how to set them up can be found here: www.tradingview.com
TKP McClellan Summation Index Stochastics StrategyThis strategy uses NYSE McClellan summation Index as an input for Stochastics to produce Buy/Sell signals. Buy signal is produced when Stochastics K Line Closes over 50, and Sell signal when closes under 50.
Info on McClellan Summation Index: www.investopedia.com
Info on Stochastics: www.investopedia.com
Simple yet effective strategy, let me know if you have any questions!
Cycles StrategyThis is back-testable strategy is a modified version of the Stochastic strategy. It is meant to accompany the modified Stochastic indicator: "Cycles".
Modifications to the Stochastic strategy include;
1. Programmable settings for the Stochastic Periods (%K, %D and Smooth %K).
2. Programmable settings for the MACD Periods (Fast, Slow, Smoothing)
3. Programmable thresholds for %K, to qualify a potential entry strategy.
4. Programmable thresholds for %D, to qualify a potential exit strategy.
5. Buttons to choose which components to use in the trading algorithm.
6. Choose the month and year to back test.
The trading algorithm:
1. When %K exceeds the upper/lower threshold and then hooks down/up, in the direction of the Moving Average (MA). This is the minimum entry qualification.
2. When %D exceeds the lower/upper threshold and angled in the direction of the trade, is the exit qualification.
3. Additional entry filters include the direction of MACD, Signal and %D. Also, the "cliff", being a long entry is a higher high or a short entry is a lower low.
4. Strategy can only go "Long" or "Short" depending on the selected setting.
5. By matching the settings in the "Cycles" indicator, you can (almost) see what the strategy is doing.
6. Be sure to select the "Recalculate" buttons, to recalculate on every new Tick, for best results.
Please click the Like button and leave a comment if you appreciate this script. Improvements will be implemented as time goes on.
I am not a licensed trade advisor. This strategy is for entertainment only. Use at your own risk!
CCU MFI + RSI + STOCH RSIThis demonstrates the accuracy of entry signal of the MFI + RSI + STOCH RSI strategy
Pure Stochastic long onlyJust a stochastic for giving you a smart and quick signals of entering and exiting.
Your enter is K>D in the low band and close > last bar's high.
An Ema has been added for targeting and stops.
You exit also in case of high values of K or in case D crosses over K but in the "upper".
Length, periods and level of bands are personalized.
The system goes long only, because it fits at best for shares only; I leave you the attemp of writing code for other classes and for going short, in particular.
SUGGESTIONS:
Keep Oversold period high (> 20, also 40-45)
Keep Emaperiodfast higher (> 5)
Stochastic Pop and Drop by Jake Bernstein v1 [Bitduke]I found a simple strategy by Jake Bernstein, modified it a little and created a strategy with Risk Management System (SL+TP); After that I test it on the different cryptocurrency pairs.
About the Indicator
Basically it's the strategy of 2 indicators: Stochastic Oscillator to define the bias and Average Directional Index to confirm it.
One again, It uses Stochastic Oscillator to define the trading bias. In particular, the trading bias was deemed bullish when the weekly 14-period Stochastic Oscillator was above some default value (in him paper - 50) and rising and vice versa.
Once the trading bias is established, Steckler used the Average Directional Index (ADX) to define a slowdown in the trend. ADX measures the strength of the trend and a move below 20 signals a weak trend.
Modifications
I didn't implement Average Directional Index (ADX) and test just different sources for data, oscillator periods and different levels in relation to the crypto market.
So, it shows good results with two tight thresholds at 55 and 45 level.
The bar chart below the defining the bullish and bearish periods (green and red) and gives a signal to enter the trade (purple bars).
Backtesting
Backtested on XBTUSD , BTCPERP (FTX) pairs. You may notice it shows good results on 3h timeframe.
Relatively low drawdown
~ 10% (from 2019 to date) FTX
~ 22% (4 years from 2016) Bitmex
I backtested on the different altcoin pairs as well, but the results were just not good.
Relatively good results were shown by some index pairs from the FTX exchange ( FTX:SHITPERP ), but I think there is a few data for backtesting to be asure in them.
Bitmex 3h (2017 - 2020) :
i.imgur.com
FTX 3h (2019 - 2020):
i.imgur.com
Possible Improvements
- Regarding trading algorithm it would be good to check with strategy with ADX somehow. Maybe for the better entries
- As for Risk Management system, it can be improved by adding trailing stop to the strategy.
Link: school.stockcharts.com
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 :)
Easy to Use Stochastic + RSI StrategyA simple strategy that yields some great results.
CODE VARIABLES
LINE 2 - Here you can change your currency and amount you want to invest on each entry.
LINE 10/11/12 - Here we establish what date we want to start backtesting from. Simply change the defval on each line to change the date (In the code below we start on Jan 1st, 2014).
LINES 19 through 27 - Here we set our Stochastic and RSI sensitivity (Currently %K = 14, %D = 3, RSI = 14). Change these to your preference.
LINE 39/41 - Here we execute our orders (Currently set when %K crosses %D under the 20 value and RSI is less than 50 to BUY, %K crosses %D above the 80 value and RSI is greater than 60 to SELL). Change these to your preference.
NOTE: As a beginner you may not want to short stock, therefore LINE 6 was added to only allow long positions.
I didn't overlay the RSI value over the Stochastics because it was too cluttered. Just add the RSI indictor seperately to your layout.
As always, couple this with trend following and exit/entry rules to make the profitability even higher!
Cheers!
Double StochasticUses two sets of stochastic's to find bull/bear conditions tested on BTC daily and Gold etf weekly charts
Bilateral Stochastic Oscillator StrategyIntroduction
Strategy based on the bilateral stochastic oscillator, this oscillator aim to detect trends and possible reversal points of the current trend. The oscillator is composed of 1 bull line in blue and 1 bear line in red as well as a signal line in orange, the strategy have many options such as two different strategy framework and a martingale mode. If you require more information about the indicator go check it into my uploaded indicators.
Strategy Frameworks
There are two frameworks available that can be selected from the strategy settings window. Both have the same closing conditions, the "Bull/Bear Cross" entry conditions are :
Buy : when the bull line cross over the bear line
Sell : when the bear line cross over the bull line
The "Signal Cross" entry conditions are :
Buy : when the bull line cross over the signal line
Sell : when the bear line cross over the signal line
Both have the same close conditions that is : close when bull/bear cross under the signal line.
Introduction To Martingale
The martingale money management system consist to double the order size after a loosing trade and can be described as a 2^x where x is the current number of loosing trades since the last win trade, when we win a trade the order size return to the default order size. Therefore our order size function is based on exponential growth.
This system enable the trader to win back his previous losses plus a potential profit, martingales must always be used with stops and sometimes take profits in order to get control in a strategy.
It must always be taken into account that in a series of losses the balance can exponentially decay thus ending to 0 in a matter of trades, this is why it is not recommended to use such system. The strategy allow you to select a martingale multiplier that can be inferior to 2 thus limiting risks, a multiplied of 1 disable the martingale.
Results
Those are the some statistics of the strategy applied to some forex majors by using the default settings in a time frames of 15 minutes.
//-------------------------------------------------------
EURUSD - Order Size 1000 - Spread 0.0002
Profit : $ 21.08
Trades : 19
PP : 57.89 %
Profit Factor : 3.228
Max Drawdown : -$ 3.81
Average Trade : $ 1.11
//-------------------------------------------------------
GBPUSD - Order Size 1000 - Spread 0.0002
Profit : $ 2.31
Trades : 20
PP : 55 %
Profit Factor : 0.938
Max Drawdown : -$ 20.29
Average Trade : $ 0.12
//-------------------------------------------------------
EURAUD - Order Size 1000 - Spread 0.0002
Profit : -$ 9.22
Trades : 20
PP : 40 %
Profit Factor : 0.698
Max Drawdown : -$ 23.44
Average Trade : $ 0.46
//-------------------------------------------------------
EURCHF - Order Size 1000 - Spread 0.0002
Profit : $ 1.58
Trades : 24
PP : 54.17 %
Profit Factor : 1.103
Max Drawdown : -$ 7.23
Average Trade : $ 0.07
//-------------------------------------------------------
Conclusions
Based on the results the strategy does not posses the sufficient performance in order to apply a martingale or any other growth systems as order size. Parameters might be subject to drastic changes depending on the market/time-frame in order to return long-term positive results. I let you draw your conclusions.
IFTS+TS Strategy OverlayInverse Fisher transform on stochastic with Hull MA and Donchian Channels with oversell/overbuy levels and dynamic trailing stop
Options:
Fixed trailing stop
Dynamic, based on ATR trailing stop
Re-enter after trailing stop
Includes Hull MA
Hull MA filtration for re-entering after trailing stop
Donchian channels, with overbuy/oversell levels
No repaints
IFT Stochastic + Trailing StopInverse fisher transform on stochastic strategy with trailing stop. Good work on flats with mid-wave length
Stochastic + ATRStochastic oscillator with dynamic buy/sell levels. Levels calculate with volatility/averag true range. No repaint
Stochastic Strategy of BiznesFilosofThis strategy allows you to test the stochastic indicator, as well as adjust it to a specific trading pair. The parameters indicated in the books are too approximate and have nothing to do with modern reality. The optimal parameters for Bitcoin are now set. You can customize better for yourself. This strategy allows you to make settings.
===
Эта стратегия позволяет протестировать индикатор стохастик, а также настроить его на конкретную торговую пару. Параметры, указанные в книжках слишком приблизительные и не имеют ничего общего с современной реальностью. Сейчас установлены оптимальные параметры для биткоина. Вы же можете настроить лучше под себя. Это стратегия позволяет сделать в настройках.
FSCG-TSSLA modification of dasanc's "Fisher Stochastic Center of Gravity"
Added:
- Thresholds for Buy/Sell Signals
- Trailing Stop / Stop Loss
- Backtest Range
Support the open-source community.
Screw you people selling open-source scripts to newbies.
Tip Jar: 3KNZq8mE24MuBmpDJVF31bBy8zc9beDiZo
Contact me for collaborations and let's take things to the next level!
Do NOT contact me for alert scripts or paid-custom work, I don't work for clients.
StochRSI Strategy by jurevSimple strategy on Stochastic RSI, opens buy when K is undersold, and buys when K is overbought. You can experiment with SL and TP points to optimize profit.
stoch startegyStoch strategy that try to buy in uptrend and to sell in low trend
the bearish and bullish zones are based on regular K stoch over MTF D (3X or timeX3) and vice versa .
The buy and sell rule based on conditions
2- when mtf stochastic cross above 50 and current is rising, buy
3- when mtf stochastic cross bellow 50 and current isfalling, sell
the main script was written by
03.freeman
I just change some settings to improve it
CS Basic Scripts - Stochastic Special (Strategy)This Stochastic Special Strategy features inputs for:
- Custom Backtesting Date Range
- Long and Short Strategy Discinctions
- Utilize SMI, RSI, Martingale, and Body-Filter Strategy
- Adjust the SMI Percent Lengths and Limit
- Automate with the Autoview Trading Bot
Strategy script may be tested by favoriting and adding to any chart.
Study script is available for automated trading at www.cryptoscores.org
Stochastic & MACD Strategy Ver 1.0This strategy is inspired by ChartArt and jasonluk28.
The following input changes from the initial ChartArt version to achieve higher stability and profit:
Fast MA Len:11
Slow MA len: 24
Stoch Len: 20
No difference is found in minor changes (+-10) lv. of overbought/oversold
It works above 40% winning rate in Heng Heng Index, Shanghai Composite, Dow Jones Industrial Averge, S&P 500 NASDAQ, VT (World Total Market) and in 15 mins chart
Profit: above ~10 to 30% in less than 1year backtest for most major indice of China and US and ~62% in Heng Seng Index (Hong Kong) & 40.5% in SZSE Composite (Shen Zhen)
P.S. Profit: 700 (Tencent) +150.5%, 939 (CCB) +66.5%, 1299 (AIA) +45%, 2628 (CLIC) +41%, 1 (CK Hutchison) +31%
NFLX +82.5%, BABA +55.5%, AMZN +44%, GOOG +38%, MCD +24.5%
However, Loss in FB -19% , AMD -38.5%
Not suitable for stocks with great influences in News or Events ???