Swing forex strategy 15minThis is a strategy made using BB+ RSI indicators that seems to work great with 15 min major pairs for FOREX.
THe rules for it are simple:
For long we enter when the close of our candle crosses upwards the lower line and rsi crossover the over sold line
We exit long when we have a short entry.
For short we enter when the close of the candle crosses downwards the top line and rsi cross under the over bought line
WE exit short when we have a long entry.
Careful, this strategy has no risk management inside.
If you have any questions let me know !
Forex
[astropark] Moon Phases [alarms]Dear Followers,
today I'm glad to present you an indicator which calculates Moon Phases and let's you set an alert over it.
This is a public free indicator based on the public one by @paaax:
I added my usual alert system logic, plus some more customization inputs for easy coloring.
The lower the timeframe you use it and set your alerts on, the more precise the alert value you get.
Here below the script for backtesting it:
Enjoy!
-- astropark
quarter level dinamicLimited quarter level script but more flexible in compared to my FX script, same logic behind
quarter level 0.5 to 2.0This script could help to see edged level for a reverse on forex, not for yen pairs and is based on quarter and round number theory.
I suggest to use it on H4 timeframe or lower to have a confermation on support or resistance level.
Alert(), alertcondition() or strategy alerts?Variety of possibilities offered by PineScript, especially thanks to recent additions, created some confusion. Especially one question repeats quite often - which method to use to trigger alerts?
I'm posting this to clarify and give some syntax examples. I'll discuss these 3 methods in chronological order, meaning - in the order they were introduced to PineScript.
ALERTCONDITION() - it is a function call, which can be used only in study-type script. Since years ago, you could create 2 types of a script: strategy and study. First one enables creating a backtest of a strategy. Second was to develop scripts which didn't require backtesting and could trigger alerts. alertcondition() calls in strategy-type scripts were rejected by Pine compiler. On the other hand compiling study-type scripts rejected all strategy...() calls. That created difficulties, because once you had a nice and backtested strategy, you had to rip it off from all strategy...() function calls to convert your script to study-type so you could produce alerts. Maintenance of two versions of each script was necessary and it was painful.
"STRATEGY ALERTS" were introduced because of alertcondition() pains. To create strategy alert, you need to click "Add alert" button inside Strategy Tester (backtester) and only there. Alerts set-up this way are bound with the backtester - whenever backtester triggers an order, which is visible on the chart, alert is also fired. And you can customize alert message using some placeholders like {{strategy.order.contracts}} or {{ticker}}.
ALERT() was added last. This is an alerts-triggering function call, which can be run from strategy-type script. Finally it is doable! You can connect it to any event coded in PineScript and generate any alert message you want, thanks to concatenation of strings and wrapping variables into tostring() function.
Out of these three alertcondition() is obviously archaic and probably will be discontinued. There is a chance this makes strategy/study distinction not making sense anymore, so I wouldn't be surprised if "studies" are deprecated at some point.
But what are the differences between "Strategy alerts" and alert()? "Strategy alerts" seem easier to set-up with just a few clicks and probably easier to understand and verify, because they go in sync with the backtester and on-chart trade markers. It is especially important to understand how they work if you're building strategy based on pending orders (stop and limit) - events in your code might trigger placing pending order, but alert will be triggered only (and when) such order is executed.
But "Strategy Alerts" have some limitations - not every variable you'd like to include in alert message is available from PineScript. And maybe you don't need the alert fired when the trade hit a stop-loss or take-profit, because you have already forwarded info about closing conditions in entry alert to your broker/exchange.
Alert() was added to PineScript to fill all these gaps. Is allows concatenating any alert message you want, with any variable you want inside it and you can attach alert() function at any event in your PineScript code. For example - when placing orders, crossing variables, exiting trades, but not explicitly at pending orders execution.
The Verdict
"Strategy Alerts" might seem a better fit - easier to set-up and verify, flexible and they fire only when a trade really happens, not producing unnecessary mess when each pending order is placed. But these advantages are illusionary, because they don't give you the full-control which is needed when trading with real money. Especially when using pending orders. If an alert is fired when price actually hit a stop-order or limit-order level, and even if you are executing such alert within 1 second thanks to a tool like TradingConnector, you might already be late and you are making entry at a market price. Slippage will play a great role here. You need to send ordering alert when logical conditions are met - then it will be executed at the price you want. Even if you need to cancel all the pending orders which were not executed. Because of that I strongly recommend sticking to ALERT() when building your alerts system.
Below is an example strategy, showing syntax to manage placing the orders and cancelling them. Yes, this is another spin-off from my TradingView Alerts to MT4 MT5 . As usual, please don't pay attention to backtest results, as this is educational script only.
P.S. For the last time - farewell alertcondition(). You served us well.
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 :)
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!
Stronger Classical Support/Resistance + Round LevelsI wrote some Support/Resistance scripts before this. In this new script, I implemented the logic of the code from the scratch, so it's very different from my previous S/R indicators and I think it's more advanced, accurate and efficient.
As the result it could do the followings for now:
- Draw more strong classical resistance/support levels by checking previous direction changes of the chart as far as Pine technically allows
- Colorize the levels based on the counted points of retracement/pullback (The darker the color is, the stronger the level is.)
- Show the number of reactions to each level
- Change the color of each level based on its main role as support, resistance or both
- Draw close round levels to current price for Forex pairs
I suggest all users of my previous S/R indicators to try this one.
Feel free to send me any issue or opinion!
Hammers & Stars StrategyOverview
This script trades basic hammer and shooting star candlestick patterns.
It's an extremely simple strategy with minimal filters, and according to my personal manual backtesting and automated trading results, performs best on the Daily chart on certain forex pairs.
It is intended to be traded on the forex markets but theoretically should work on all markets (especially if you optimize the settings).
The script also comes with complete AutoView automation for Oanda.
Make sure you've connected AutoView to TradingView and Oanda, then simply set an alert using the "alert() function calls only" condition and it will automatically execute trades based on whatever settings you've selected (only recommended for experienced traders - use at your own risk!)
If you're not sure how to set up AutoView, search "The Art of Trading AutoView Guide" on YouTube to find my detailed video guide.
Check out my website and YouTube channel for more information, scripts, resources and free Pine Script & trading lessons (link in my profile).
Best of luck with your trading!
- Matt / The Art of Trading
Settings Menu
Tooltips are included explaining what the various settings do, but here's a quick summary:
Strategy Settings
>= ATR Filter: Minimum size of entry candle compared to ATR
<= ATR Filter: Maximum size of entry candle compared to ATR
Stop Loss ATR: Stop loss multiplier (x ATR)
R:R: Risk:Reward profile
Fib Level: Used to calculate upper/lower third of candle. (For example, setting it to 0.5 will mean hammers must close >= 50% mark of the total candle size)
Start Date Filter: Date & time to begin trading from
End Date Filter: Date & time to stop trading
AutoView Oanda Settings
Use Oanda Demo: If turned on then oandapractice broker prefix will be used for AutoView alerts (demo account). If turned off then live account will be used
Use Limit Order: If turned on then AutoView will use limit orders. If turned off then market orders will be used (recommended to use limit order to mitigate spread issues)
Days To Leave Limit Order: This is your GTD setting (good til day)
Account Balance: Your account balance (used for calculating position size)
Account Currency: Your account balance currency (used for calculating position size)
Risk Per Trade %: Your risk per trade as a % of your account balance
Reversal with Bollinger Bands + RSI + ADX + ATR (Upgraded)Hi,
Welcome to my 4th script.
Someone asked me some questions about the Bollinger Band strategy I previously published. When I went back to my published script I couldn't help myself but simply try and make it better. Which I did.
Since I've published that script, I've gained much more knowledge about how Pinescript functions. As well as gaining more and more knowledge about how the markets are structered etc.
In this reversal script we use 4 indicators to determine good entry signals, we determine whether the market is ranging or trending and we still only want to take trades in the direction of the "trend".
Bollinger Bands are used for our entry signal. When price hits either side of the band, we wait for a reverse candlestick before we enter a position.
RSI is used to determine if we're in a trending market or in a ranging market. You can adjust the values in the inputs. You can determine the minimum RSI value and the maximum RSI value.
ADX is used the same way as RSI, you can adjust the value in the inputs. You can determine the minimum ADX value.
Last but not least we use two EMA's, a 200 EMA and 100 EMA. Both are adjustable through the inputs. I used two EMA's because I noticed when using this strategy that we'd enter a new position often after having a bad trade. Using two EMA's might clean up some signals, in my case with EUR/USD on a 15m timeframe, it didn't clean up enough signals.
All the default values are pretty decent but might require some finetuning on a certain instrument. Don't overfit the strategy though, that'll only give you bad signals in the future.
Then we are off to our exit signals.
Initially I wanted to incorporate my previous Bollinger Band exit signals as well, but it was too much of a hassle to make the script work as intended so I left it out. If you want to use those exit signals, just find my other script.
When we're in a position and price crosses the opposite band, we wait for a reverse candlestick before we exit the position.
Additionally we want our losses to be as small as possible, so we use RSI to signal us when the market is, or starts to, trend against us. This is where you use the minimum and maximum exit values. So when RSI crosses over or under that value, it'll exit the position.
Furthermore, we use the ATR indicator to set our stop loss, which is pretty basic stuff. You can adjust the ATR multiplier in the inputs. Disabling "Use Trailing Stop?" is really inadvisable unless you know this script inside out as your only exit signals will be opposite Bollinger Band Cross and RSI overbought / oversold areas.
Matrix Series and Vix Fix with VWAP CCI and QQE SignalsBased on @ChrisMoody Williams_VIX_Fix and @glaz Matrix Series .
This indicator identify potential zone of reversal according to momentum and volatility.
Includes VWAP CCI and QQE Signals.
V2_Major_Trend_FinderThis script is a major trend following script. The calculations use Keltner Channels, moving averages and RSI.
The indicator is simple to follow:
Green Candlesticks indicate more bullish momentum expected
Red Candlesticks indicate more bearish momentum expected
blue dots are possible long ideas due to RSI oversold
Orange dots are possible short ideas due to RSI overbought
olive line is a one year moving average
The script is open for those looking for deeper understanding of the script.
Many Regards
Sulaiman
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
Ehler Fisher applied on distance EMAThis is an improved version of Fisher, which use as a source the distance from EMA , compared to the initial source which was on the close of a candle.
It can be used in any market, any time frame .
For conditions we have multiple conditions for the logic, in this case initially if our fisher is above 0 is a long direction ,if its belowe 0 its a short direction.
Also we can improve this condition even further, in this case if we cross up our previous line its a buy signal, and if we cross down its a sell signal.
For best usage combine the cross together with the position of fisher respecting the 0.
If you have any other questions, let me know with a private message.
GBP/JPY Daily time FX Strategy ATR W% BaselineThis is a preety good strategy suited for long term trading.
It has been adapted and optimized in this case for GBP/JPY 1D time frame.
Its made of Kiojun baseline, together with ATR for stop loss and size calculation and Williams % R
For the purpose of this example we simulate that we have a leverage of 100x in order to be able to buy the ammount of lots required for our stop loss to be in same page with the risk % of our capital.
For entry we have for long, ascending R in the last 2 candles and crossover of close with KIOJUN baseline. For short the same but in reverse.
We exit if we reach the TP -100 points in this example, or SL , which is based on ATR of the last x days.
If you have any questions feel free to write me in private !
Marubozu Forex Price actionHi, today I bring you a price action strategy/indicator for Forex, made out for Marubozu candle type.
For the entries of it check if we have a long or a short marubozu.
For exit we have for long when the actual candle is green and the last previous two were red.
For exit we have for short, when the actual candle is red and the last previous two were green.
If you have any questions private message me !
London Breakout/Session GBP/USD Forex DaytradeThis is a forex strategy suited for day traders, specialized in the london breakout session
The key elements for this strategy are the specific london time session, together with an exit time(before asian trade/at the end of new york session).
At the same time, as logic elements we only use price action inside like :
For long we have 3 ascending candles, and for short we have 3 descending candles.
For exit we have both TP/SL based on price percentage movement, or we exit if we reach the end of the day.
If you have any questions message me in private !
Dynamic Take Profit & Signals (AussieBogan)Dynamic Take Profit & Signals (DTS) help us to dynamically place potential take profit levels. These levels are measured based on standard deviation in conjunction with swing high and low points. Head over to the settings to control your take profit and multiplicative factor setting.
In short, higher values of either setting will return more spread out between tp's. The logic behind using the standard deviation is that a low value of it will return tp closer to where you entered the trade, as such it will have higher chances of the price reaching them.
The Indicator also has alert features for buy and sell so any trader can be aware of every potential signal the indicator produces.
Heiken Ashi MTF Strategy- IndicatorHello, this is both a strategy and indicator that revolves around Heikin Ashi candles.
In this case we take 3 different time frames, in this example we use daily , weekly and monthly.
The conditions for entry are :
For long : we check that we have a green daily candle, at the same time we check that the weekly and monthly candles are also green.
For short : We check that all candles, daily, weekly and monthly and red.
For exit of long : as soon as 1 of the 3 candles, daily or weekly or monthly converts to red, we exit.
For exit of short : as soon as 1 of the 3 candles converts to green, we exit.
This strategy- indicator can be adapted to any type of market.
Profit MAX MTF HeatMapThis is a powerfull strategy which is made from combining 3 multi timeframes into one for profit max indicator
In this case we have daily, weekly and montly.
Our long conditions are the next ones :
if we have an uptrend on all 3 at the same time, we go long.
If we have a downtrend on all 3 of them at the same time we go short.
For exit, for long, as soon as one of the 3 converts into downtrend we exit the trade.
For exit, for short, as soon as one of the 3 converts into uptrend we exit the trade.
This tool can be used on all types of markets, and can also be changed the time frames.
Price action strategy FOREX with amazing results
Hello, today I bring another amazing strategy for forex .
Its made of T3 moving average , combined together with a pattern rule and a specific entry time.
We take all of that and we trade it in inverse.
So what normally for long would be : close higher than the previos high and close higher than the average, we use this as a short condition. We do the same stuff for long condition.
So in the end we end up with an amazing product.
It also has a risk management inside, with a TP/SL based on % move of the price .
Let me know how it goes .