PineScript v4 - Forex Pin-Bar Trading StrategyPineScript v4, forex trading robot based on the commonly used bullish / bearish pin-bar piercing the moving averages strategy.
I coded this robot to stress-test the PineScript v4 language to see how advanced it is, and whether I could port a forex trading strategy from MT4 to TradingView.
In my opinion, PineScript v4 is still not a professional coding language; for example you cannot use IF-statements to modify the contents of global variables; this makes complex robot behaviour difficult to implement. In addition, it is unclear if the programmer can use nested IF-ELSE, or nested FOR within IF.
The sequence of program execution is also unclear, and although complex order entry and exit appears to function properly, I am not completely comfortable with it.
Recommended Chart Settings:
Asset Class: Forex
Time Frame: H1
Long Entry Conditions:
a) Moving Average up trend, fast crosses above slow
b) Presence of a Bullish Pin Bar
c) Pin Bar pierces either Moving Average
d) Moving Averages must be sloping up, angle threshold (optional)
Short Entry Conditions:
a) Moving Average down trend, fast crosses below slow
b) Presence of a Bearish Pin Bar
c) Pin Bar pierces either Moving Average
d) Moving Averages must be sloping down, angle threshold (optional)
Exit Conditions:
a) Stoploss level is hit
b) Takeprofit level is hit
c) Moving Averages cross-back (optional)
Default Robot Settings:
Equity Risk (%): 3 //how much account balance to risk per trade
Stop Loss (x*ATR, Float): 2.1 //stoploss = x * ATR, you can change x
Risk : Reward (1 : x*SL, Float): 3.1 //takeprofit = x * stop_loss_distance, you can change x
Fast MA (Period): 20 //fast moving average period
Slow MA (Period): 50 //slow moving average period
ATR (Period): 14 //average true range period
Use MA Slope (Boolean): true //toggle the requirement of the moving average slope
Bull Slope Angle (Deg): 1 //angle above which, moving average is considered to be sloping up
Bear Slope Angle (Deg): -1 //angle below which, moving average is considered to be sloping down
Exit When MA Re-Cross (Boolean): true //toggle, close trade if moving average crosses back
Cancel Entry After X Bars (Period): 3 //cancel the order after x bars not triggered, you can change x
Backtest Results (2019 to 2020, H1, Default Settings):
EURJPY - 111% profit, 2.631 profit factor, 16.43% drawdown
EURUSD - 103% profit, 2.899 profit factor, 14.95% drawdown
EURAUD - 76.75% profit, 1.8 profit factor, 17.99% drawdown
NZDUSD - 64.62% profit, 1.727 profit factor, 19.14% drawdown
GBPUSD - 58.73% profit, 1.663 profit factor, 15.44% downdown
AUDJPY - 48.71% profit, 1.635 profit factor, 11.81% drawdown
USDCHF - 30.72% profit, 1.36 profit factor, 22.63% drawdown
AUDUSD - 8.54% profit, 1.092 profit factor, 19.86% drawdown
EURGBP - 0.03% profit, 1.0 profit factor, 29.66% drawdown
USDJPY - 1.96% loss, 0.972 profit factor, 28.37% drawdown
USDCAD - 6.36% loss, 0.891 profit factor, 21.14% drawdown
GBPJPY - 28.27% loss, 0.461 profit factor, 39.13% drawdown
To reduce the possibility of curve-fitting, this robot was backtested on 12 popular forex currencies, as shown above. The robot was profitable on 8 out of 12 currencies, breakeven on 1, and made a loss on 3.
The default robot settings could be over-fitting for the EUR, as we can see out-sized performance for the EUR pairs, with the exception of the EURGBP. We can see that GBPJPY made the largest loss, so these two pairs could be related.
Risk Warning:
This is a forex trading strategy that involves high risk of equity loss, and backtest performance will not equal future results. You agree to use this script at your own risk.
Media mobile semplice (SMA)
Static + Dynamic LevelsShows static and dynamic levels which can act as support/resistance. These are important as there is a lot of users who are interested in buying/selling at these prices.
Static Levels include -
Daily/Weekly/Monthly/Yearly Open (changes color depending on if below or above price)
Previous Daily/Weekly/Monthly/Yearly Open
Previous day's High/Low
Dynamic Levels include -
100/200 Daily MA
100/200 Weekly MA
PEC Range (Prefer on 1D chart)Price Expansion and Contraction is basic calculation of Candles High-Low and it is average of previous 5 High-Low. Which will help to analyse volatility of running situation. This can be used for analysis purpose only not as buy/sell signals.
How to use this?
Ranges of candles may increase on lower value of PEC.
Ranges of candles may decrease on high of PEC.
This is not ATR of 5 period.
Barcolor Averaging1. Colors candles or bars, ascending (blue) or descending (red), as determined by the MA setting.
2. Colors candles white when the MA is flat, or the market is moving sideways or in consolidation.
Moving Average Colored EMA/3 SMA1. Updated this available script to have 2 SMA's and 2 EMA's.
2. Revised so that plot turns white when flat.
3. Added Trend Gain to control what slope "flat" has for different TF's.
The Lazy Trader - Index (ETF) Trend Following Robot50/150 moving average, index (ETF) trend following robot. Coded for people who cannot psychologically handle dollar-cost-averaging through bear markets and extreme drawdowns (although DCA can produce better results eventually), this robot helps you to avoid bear markets. Be a fair-weathered friend of Mr Market, and only take up his offer when the sun is shining! Designed for the lazy trader who really doesn't care...
Recommended Chart Settings:
Asset Class: ETF
Time Frame: Daily
Necessary ETF Macro Conditions:
a) Country must have healthy demographics, good ratio of young > old
b) Country population must be increasing
c) Country must be experiencing price-inflation
Default Robot Settings:
Slow Moving Average: 50 (integer) //adjust to suit your underlying index
Fast Moving Average: 150 (integer) //adjust to suit your underlying index
Bullish Slope Angle: 5 (degrees) //up angle of moving averages
Bearish Slope Angle: -5 (degrees) //down angle of moving averages
Average True Range: 14 (integer) //input for slope-angle formula
Risk: 100 (%) //100% risk means using all equity per trade
ETF Test Results (Default Settings):
SPY (1993 to 2020, 27 years), 332% profit, 20 trades, 6.4 profit factor, 7% drawdown
EWG (1996 to 2020, 24 years), 310% profit, 18 trades, 3.7 profit factor, 10% drawdown
EWH (1996 to 2020, 24 years), 4% loss, 26 trades, 0.9 profit factor, 36% drawdown
QQQ (1999 to 2020, 21 years), 232% profit, 17 trades, 3.6 profit factor, 2% drawdown
EEM (2003 to 2020, 17 years), 73% profit, 17 trades, 1.1 profit factor, 3% drawdown
GXC (2007 to 2020, 13 years), 18% profit, 14 trades, 1.3 profit factor, 26% drawdown
BKF (2009 to 2020, 11 years), 11% profit, 13 trades, 1.2 profit factor, 33% drawdown
A longer time in the markets is better, with the exception of EWH. 6 out of 7 tested ETFs were profitable, feel free to test on your favourite ETF (default settings) and comment below.
Risk Warning:
Not tested on commodities nor other financial products like currencies (code will not work), feel free to leave comments below.
Moving Average Slope Angle Formula:
Reproduced and modified from source:
SSL Backtester With ATR SL TP and Money ManagementSimilar to other SSL Channel scripts, but this one allows you to set an ATR-derived stop loss and adds the option to risk a % of the equity or used a fixed lot.
Enters upon a long or short SSL crossover.
FIXED LOTS
For 0.01 "lots" use 1000
For 1 standard lot, use 100,000
FOR MONEY MANAGEMENT
For 1% risk, enter 0.01
For 10% risk, enter 0.1
etc
You should be able to adapt this to any other indicator by just changing the entry conditions and adding your own indicator values.
It is not meant to be a profitable script, just a template to begin adding money management ideas to existing scripts which currently just enter and exit on an event.
Golden Ratio MultiplierThe moving averages 350 and 111 by themselves do a great job of identifying market tops/bottoms. The fraction 350/111 is very close to Pi as well (3.15) so that's is suspicious in its own right.
Nonetheless, fibonacci retracements/multiplies of the 350 SMA does a remarkable job of finding reversal points. I commented out a couple of multiplies for simplicity's sake (the lines became rather crowded). However, the script is open source so you all can copy it into Pine Editor and delete the "//" and add it back to the script.
Cheers.
AK Simple Moving Average 50 days Simple Moving average suitable for Intraday on 1Hr,30Min.15Min Time frames
1. When candle crossing above SMA Line - Go for Long Entries
2. When candle crossing below SMA Line - Go for short Entries
Deep_Fractal_Signals_and_Rubber_Band_TradesThis indicator is based on Williams Fractals and the TopDog Trading "Rubber Band Trade"
The Deep Fractal Signals are triangles that indicate the price is forming a pattern of decreasing lows in a down trend (orange) or, increasing highs in an up trend (green).
The triangles are placed above or below the last bar of the pattern, unlike Fractals which are drawn 2 candles prior to the current candle, and are re-painted on the chart.
When the triangle is indicated above the moving average in a down trend (blue), or below the moving average in an up trend (yellow), this is a Rubber Band Trade.
When the slope of the moving average is less than the Gain set by the user, or are counter-trend, the triangles are plotted in silver.
When used in conjunction with the Power Analyzer indicator, a signal to the long side should be taken when the Power Analyzer momentum indicator is at a cycle low. Similarly, a signal to the short side should be taken when the indicator is at a cycle high.
The first, second or third signal in a new trend have the highest probability of a follow through.
The indicator sometimes gives a false signal at the very end of the trend, just before the market reverses. This is an attempt by the Market Makers to persuade traders that the trend will continue.
Please leave a comment and "Like" this indicator if you find it useful.
FX Engineering
MTF SMA on specific timeframe(5M-4H)Japanese below. 日本語の説明は下記
This is multi time frame simple moving average that is shown only on the specific timeframe; 5M, 15M, 30M, 1H, 4H.
Problem of conventional MTF moving average is that MTF MA is sometimes annoying especially when you look at upper timeframe such as daily chart and/or weekly chart.
e.g. You set 20 MA of 4 hour chart into 1 hour chart, however, when you look at daily chart, daily chart also shows 20MA of 4 hour chart which is unnecessary.
This is why I have developed this MTF SMA indicator shown only on the timeframe from 5M to 4 hour.
With this indicator, even if you set MA of upper timeframe(such as 4 hour) into Lower timeframe, that MA will not be shown on above daily chart.
You can customize adding or removing below code;
timeframe.period == “X”? security(syminfo.tickerid, res, sma(src, ma_len))
X is the timeframe that you would add/remove from the indicator.
——————————————————————————————
特定の時間軸にのみ表示されるマルチタイムフレーム移動平均線のインジケーターです。
従来のマルチタイムフレーム移動平均線の問題点は、上位足に切り替えた時にもマルチタイムフレーム移動平均線の設定が表示され、チャートが見にくくなる点でした。
例: 4時間足の20MAをマルチタイムフレーム移動平均線としてセットしたとします。この場合、1時間足などの下位足で4時間足の20MAが表示されることになりますが、同時に日足や週足といった上位足チャートを見る時にも、この4時間足の20MAが表示されてしまいます。
このインジケーターでは、従来のマルチタイムフレーム移動平均線と同様に、設定元となる上位足の時間軸(4時間、日足など)を選択し、期間とソースを設定することができる一方で、表示されるのは5分足、15分足、30分足,1時間足、4時間足のみとなります。
スクリプトのMAの取得部分に以下コードを追加することで、必要な時間軸を追加・削除することが可能です。
timeframe.period == “X”? security(syminfo.tickerid, res, sma(src, ma_len))
Xは表示したい時間軸です。4時間足チャートからこのインジケーターを削除したい場合は
timeframe.period == “240”? security(syminfo.tickerid, res, sma(src, ma_len))
を削除してください。
2-Year MA MultiplierThis script improves on the basic moving average multiplier script by adding inputs for the multiplier and moving average type.
Multi EMA+SMAMulti EMA+SMA with default value of 20/50/200 ... User can change value and color as required... As ema and sma both has same value thats why only three lines are visible, changing value will reflect other Moving averages. Hope it will help my trader friends.
Love
Indyan...
CryptoSignalScanner - Advanced Moving Averages - Cross & RainbowDESCRIPTION:
With this script you can plot 6 moving averages.
You can decide which Moving Average you want to show or hide.
For every plot you can decide to display the Simple Moving Average ( SMA ) or Exponential Moving Average ( EMA ).
It provides CrossOver and CrossUnder labels when loading the script. Those labels you can show or hide.
You have the possibility to show or hide the rainbow colors. This rainbow function gives you a clear view of the current trend.
HOW TO USE:
• When one Moving Average crosses above another Moving Average it signals an uptrend.
• When one Moving Average crosses below another Moving Average it signals a downtrend.
• The higher to length of the Moving Average the stronger the trend.
FEATURES:
• You can show/hide the preferred Moving Averages.
• You can set the length, type and source for every Moving Average.
• You can show/hide the rainbow colors.
• You can show/hide the CrossUp labels.
• You can show/hide the CrossDown labels.
• You can set alerts for every Moving Average.
• Etc...
DEFAULT SETTINGS:
• MA1 => EMA5
• MA2 => EMA10
• MA3 => EMA20
• MA4 => SMA50
• MA5 => SMA100
• MA6 => SMA200
Simple Moving Average vs. Exponential Moving Average:
SMA and EMA are calculated differently. The exponential moving average ( EMA ) focuses more on recent prices than on a long series of data points, as the simple moving average required.
The calculation makes the EMA quicker to react to price changes and the SMA react slower. That is the main difference between the two.
One is not necessarily better than another. It comes down to personal preference. Plot an EMA and SMA of the same length on a chart and see which one helps you make better trading decisions.
Moving Average Trading Strategies:
The first strategy is a price crossover, when the price crosses above or below a moving average, it signals a potential change in trend.
The second strategy applies when one moving averages crosses another moving average.
• When the short-term MA crosses above the long-term MA, it signals a buy signal.
• When the short-term MA crosses below the long-term MA, it signals a sell signal.
REMARKS:
• This advice is NOT financial advice.
• We do not provide personal investment advice and we are not a qualified licensed investment advisor.
• All information found here, including any ideas, opinions, views, predictions, forecasts, commentaries, suggestions, or stock picks, expressed or implied herein, are for informational, entertainment or educational purposes only and should not be construed as personal investment advice.
• We will not and cannot be held liable for any actions you take as a result of anything you read here.
• We only provide this information to help you make a better decision.
• While the information provided is believed to be accurate, it may include errors or inaccuracies.
If you like this script please donate some coins to share your appreciation.
Good Luck,
SEOCO
Hannibal's Quadruple SMA IndicatorFour SMAs, one indicator. Great for the moving average enthusiast. Planning on adding alerts, trade signals, etc.
SMA 9/50/180 | EMA 20 | BUY/SELLAllows for 3 SMAs and One EMA, Combined with Buy/Sell Indicator
Defaults to following settings:
9 SMA - Red
50 SMA - Blue
180 SMA - White
20 EMA - Yellow
Input Values and Colors can be modified
Recommend changes to the Style default
-uncheck SMA2
-uncheck Buy/Sell Chart Line
All EMA & MA in onDas Script zeigt EMA sowie MA 21, 50 ,100, 200
Es sind alle Farben einstellbar sowie die bereiche zwischen EMA und MA als Zone einfärbbar.
COVID19 New Cases & Threshold per 100k inhabitantsGoal is to be able to keep track of new COVID cases and see when the relative threshold is passed.
The default threshold is set to 10 new cases per 100.000 inhabitants per 14-days, please change the available inputs to change this metric
Out of curiosity I've added the population density. Because people generally live and socially interact on land I've used the land-area for population density calculation.
When comparing metrics between countries there are many more factors to be considered.
Create your own symbol list for the CONFIRMED tickers:
Create a new list
Paste the following text where you would add a symbol:
COVID19:CONFIRMED_AT,COVID19:CONFIRMED_BE,COVID19:CONFIRMED_DK,COVID19:CONFIRMED_FI,COVID19:CONFIRMED_FR,COVID19:CONFIRMED_DE,COVID19:CONFIRMED_IS,COVID19:CONFIRMED_IE,COVID19:CONFIRMED_IT,COVID19:CONFIRMED_LV,COVID19:CONFIRMED_LI,COVID19:CONFIRMED_LT,COVID19:CONFIRMED_LU,COVID19:CONFIRMED_MT,COVID19:CONFIRMED_MD,COVID19:CONFIRMED_MC,COVID19:CONFIRMED_NO,COVID19:CONFIRMED_PL,COVID19:CONFIRMED_PT,COVID19:CONFIRMED_RO,COVID19:CONFIRMED_RU,COVID19:CONFIRMED_SK,COVID19:CONFIRMED_SI,COVID19:CONFIRMED_ES,COVID19:CONFIRMED_SE,COVID19:CONFIRMED_CH,COVID19:CONFIRMED_TR,COVID19:CONFIRMED_UA,COVID19:CONFIRMED_AE,COVID19:CONFIRMED_AR,COVID19:CONFIRMED_AU,COVID19:CONFIRMED_BR,COVID19:CONFIRMED_CA,COVID19:CONFIRMED_CL,COVID19:CONFIRMED_CN,COVID19:CONFIRMED_CO,COVID19:CONFIRMED_HR,COVID19:CONFIRMED_ID,COVID19:CONFIRMED_IL,COVID19:CONFIRMED_IN,COVID19:CONFIRMED_IR,COVID19:CONFIRMED_JP,COVID19:CONFIRMED_KR,COVID19:CONFIRMED_KW,COVID19:CONFIRMED_MX,COVID19:CONFIRMED_MY,COVID19:CONFIRMED_NZ,COVID19:CONFIRMED_PE,COVID19:CONFIRMED_PH,COVID19:CONFIRMED_SG,COVID19:CONFIRMED_TH,COVID19:CONFIRMED_US,COVID19:CONFIRMED_US_AZ,COVID19:CONFIRMED_US_CA,COVID19:CONFIRMED_US_FL,COVID19:CONFIRMED_US_IL,COVID19:CONFIRMED_US_MA,COVID19:CONFIRMED_US_NC,COVID19:CONFIRMED_US_NJ,COVID19:CONFIRMED_US_NY,COVID19:CONFIRMED_US_TX,COVID19:CONFIRMED_UZ,COVID19:CONFIRMED_VE,COVID19:CONFIRMED_ZA
Mayer MultiplesScript that plots the 200 Moving average, and several Mayer Multiple levels in the chart. This may help guestimate TP levels
Extension from 20 Period Simple Moving AverageSimple indicator to help show when stocks are over extended intraday. It's based on the distance between a stock and it's moving average. The thesis being that, the farther away a stock is from it's 20 period simple moving average, the move extended it is. I've found that when a stock is more than 2-3% extended from it's 5min 20 period moving average, it's typically getting over extended, and can be a great time to start considering a short.
I primarily use this indicator when shorting intraday parabolic moves, while the stock is still on the frontside of the move. Note that this works best when the indicator is showing overextended AND there's a volume spike/mountain matching the overextension. In the attached example, you can see that I overlay this indicator on top of the volume panel because it helps me better visualize when the stock is getting over extended on heavy/elevated volume.
Hope this helps; any feedback is appreciated!
P.S. This works best on a 5min chart, but I'm sure it could be helpful on other timeframes, but may need to tweak the default outer bounds percentage.
Performance ComparatorThis indicator allows to compare the performance (% change) of a given symbol with the larger market ( AMEX:SPY ) and/or with a custom symbol, which defaults to AMEX:XLK (an ETF tracking technology companies from the S&P 500).
The performance for the current symbol is displayed as a blue histogram, while performance for the AMEX:SPY and the custom symbol are respectively displayed as orange and white lines, making it easy to spot when the symbol outperformed the market.
Features:
Configurable time resolution (default: same as chart)
Comparison using change percentage or its EMA/WMA/SMA (default: EMA)
Configurable moving average length
Optionally hide AMEX:SPY or the custom symbol from the chart