Indicator

Indicator

Indicator

Indicator

Strategy

PSAR + EMA/TEMA/RSI/OBVThe Parabolic Stop-and-Reservse (PSAR) is a trend indicator, intended to capture reversal signals and show entry and exit points. The PSAR is bullish when the PSAR is below the candle body (usually indicated by a dot) and bearish when the PSAR is above the candle body. The PSAR generally only moves in the direction of the trend, making it useful for markets with an upward or downward trend, as well as swing markets. It is weaker when the market it sideways, as it can be prone to frequent flips (bull-to-bear or vice versa) in markets where a predominant trend is not present.
In order to combat the tendency for rapid swings in the PSAR, it is commonly paired with a second indicator. Often, this is a moving average (MA) to confirm the PSAR signal. Here is a common example:
PSAR + 2 EMAs: A trade would consider entering long when the PSAR is bullish and the fast EMA is above the short EMA.
PSAR + 3 EMAs: As above, but the trader could also add a very long EMA (200, for example) and use that as an additional filter.
In addition to using EMA, other MAs can be used and may be more appropriate to certain instruments and timeframes. Using TEMA, for example, may result in less lag but introduce more noise. Likewise, the Ehler's MAMA is an option.
Some traders use other indicators as PSAR confirmation signals, such as the relative strength index (RSI) on on-balance volume (OBV). The strategy is similar:
bullish PSAR + RSI oversold = consider long entry
bullish PSAR + OBV oscillator > 0 = consider long entry
The strategy presented here is based on my PSAR + EMA + TEMA study. Any of the above strategies are supported by this script:
1. The PSAR is the primary signal.
2. Confirmation is provided by any of the following: EMA , TEMA , Ehler's MAMA , RSI , or OBV.
3. You may use a third EMA (set to 200 as the default) to filter entries -- if used, the strategy will only show signals if the price is above the third (additional) EMA .
For example, a normal long signal would be a bullish PSAR + fast EMA > slow EMA + price > ema 200.
In addition, you may use a SL, which is set to the PSAR dots shown. You may also limit the backtesting dates. (Please note in the chart above, I do not have a limit on the trading dates. I believe this exaggerates the success of the strategy, but the house rules demand I not limit the timeframe to show you a more accurate picture.) Strategy

Strategy

vol_signalNote: This description is copied from the script comments. Please refer to the comments and release notes for updated information, as I am unable to edit and update this description.
----------
USAGE
This script gives signals based on a volatility forecast, e.g. for a stop
loss. It is a simplified version of my other script "trend_vol_forecast", which incorporates a trend following system and measures performance. The "X" labels indicate when the price touches (exceeds) a forecast. The signal occurs when price crosses "fcst_up" or "fcst_down".
There are only three parameters:
- volatility window: this is the number of periods (bars) used in the
historical volatility calculation. smaller number = reacts more
quickly to changes, but is a "noisier" signal.
- forecast periods: the number of periods for projecting a volatility
forecast. for example, "21" on a daily chart means the plots will
show the forecast from 21 days ago.
- forecast stdev: the number of standard deviations in the forecast.
for example, "2" means that price is expected to remain within
the forecast plot ~95% of the time. A higher number produces a
wider forecast.
The output table shows:
- realized vol: the volatility over the previous N periods, where N =
"volatility window".
- forecast vol: the realized volatility from N periods ago, where N =
"forecast periods"
- up/down fcst (level): the price level of the forecast for the next
N bars, where N = "forecast periods".
- up/down fcst (%): the difference between the current and forecast
price, expressed as a whole number percentage.
The plots show:
- blue/red plot: the upper/lower forecast from "forecast periods" ago.
- blue/red line: the upper/lower forecast for the next
"forecast periods".
- red/blue labels: an "X" where the price touched the forecast from
"forecast periods" ago.
+ NOTE: pinescript only draws a limited number of labels.
They will not appear very far into the past. Indicator

3Commas BotBjorgum 3Commas Bot
A strategy in a box to get you started today
With 3rd party API providers growing in popularity, many are turning to automating their strategies on their favorite assets. With so many options and layers of customization possible, PulseWire offers a place no better for young or even experienced coders to build a platform from to meet these needs. 3Commas has offered easy access with straight forward PulseWire compatibility. Before long many have their brokers hooked up and are ready to send their alerts (or perhaps they have been trying with mixed success for some time now) only they realize there might just be a little bit more to building a strategy that they are comfortable letting out of their sight to trade their money while they eat, sleep, etc. Many may have ideas for entry criteria they are excited to try, but further questions arise... "What about risk mitigation?" "How can I set stop or limit orders?" "Is there not some basic shell of a strategy that has laid some of this out for me to get me going?"
Well now there is just that. This strategy is meant for those that have begun to delve into the world of algorithmic trading providing a template that offers risk defined positions complete with stops, limit orders, and even trailing stops should one so choose to employ any of these criteria. It provides a framework that is easily manipulated (with some basic working knowledge of pine coding) to encompass ones own ideas and entry criteria, while also providing an already functioning strategy.
The default settings have a basic 1:1 risk to reward ratio, which sets a limit and a stop equal distance from the entry. The entry is a simple MA cross (up for long, down for short). There a variety of MA's to choose from and the user can define the lengths of the averages. The ratio can be adjusted from the menu along with a volatility based adder (ATR) that helps to distance a stop from support or resistance. These values are calculated off the swing low/high of the user defined lookback period. Risk is calculated from position entry to stop, and projected upwards to the limit as a function of the desired risk to reward ratio. Of note: the default settings include 0.05% commissions. Competitive commissions of the leading cryptocurrency exchanges are .1% round trip (one buy and one sell) for market orders. There is also some slippage to allow time for alerts to be sent and orders to fill giving the back test results a more accurate representation of real time conditions. Its recommended to research the going rates for your exchange and set them to default for the strategy you use or build.
To get started a user would:
1) Make a copy of the code and paste in their bot keys in the area provided under the "3Comma Keys" section
- eg. Long bot "start deal" copied from 3commas in to define "Long" etc. (code is commented)
2) Place alert on desired asset with desired settings ensuring to select "Order fills and alert() function calls"
3) Paste webhook into the webhook box and select webhook URL alerts (3rd party provided webhook)
3) Delete contents of alert message box and replace with {{strategy.order.alert_message}} and nothing else
- the codes will be sent to the webhook appropriately as the strategy enters and exits positions. Only 1 alert is needed
settings used for the display image:
1hr chart on BTCUSD
-ATR stop
-Risk adjustment 1.2
-ATR multiplier 1.3
-RnR 0.6
-MAs HEMA/SMA
-MA Length 50/100
-Order size percent of equity
-Trail trigger 60% of target
Experiment with your own settings on your crypto of choice or implement your own code!
Implementing your trailing stop (optional)
Among the options for possible settings is a trailing stop. This stop will ratchet higher once triggered as a function of the Average True Range (ATR). There is a variable level to choose where the user would like to begin trailing the stop during the trade. The level can be assigned with a decimal between 0 and 1 (eg. 0.5 = 50% of the distance between entry and the target which must be exceeded before the trail triggers to begin). This can allow for some dips to occur during the trade possibly keeping you in the trade for longer, while potentially reducing risk of drawdown over time. The default for this setting is 0 meaning unless adjusted, the trail will trigger on entry if the trailing stop exit method is selected. An example can be seen below:
Again, optional as well is the choice to implement a limit order. If one were to select a trailing stop they could choose not to set a limit, which could allow a trail to run further until hit. Drawdowns of this strategy would be foregoing locking gains at highs on target on other trades. This is a trade-off the user can decide on and test. An example of this working in favor can be observed below:
Conclusion
Although a simple strategy is implemented here, the benefits of this script allow a user a starting platform to build their strategies from with built in risk mitigation. This allows the user to sidestep some of the potential difficulties' that can arise while learning Pine and taking on the endeavor of automating their trading strategies. It is meant as an aid, a structure, and an educational piece that can be seen as a "pick-up-and-go" strategy with easy 3Commas compatibility. Additionally, this can help users become more comfortable with strategy alert messages and sending strings in the form of alerts from Pine. As well, FAQs are often littered with questions regarding "strategy.exit" calls, how to implement stops. how to properly set a trailing stop based on ATR, and more. The time this can save an individual to get started is likely of the best "take-aways" here.
Happy trading Strategy

trend_vol_stopThe description below is copied from the script's comments. Because PulseWire does not allow me to edit this description, please refer to the script's comments section, as well as the release notes, for the most up-to-date information.
----------
Usage:
The inputs define the trend and the volatility stop.
Trend:
The trend is defined by a moving average crossover. When the short
(or fast) moving average is above the long (slow) moving average, the
trend is up. Otherwise, the trend is down. The inputs are:
long: the number of periods in the long/slow moving average.
short: the number of periods in the short/fast moving average.
The slow moving average is shown in various colors (see explanation
below. The fast moving average is a faint blue.
Volatility stop:
The volatility stop has two modes, percentage and rank. The percentage
stop is given in terms of annualized volatility. The rank stop is given
in terms of percentile.
stop_pct and stop_rank are initialized with "-1". You need to set one of
these to the values you want after adding the indicator to your chart.
This is the only setting that requires your input.
mode: choose "rank" for a rank stop, "percentage" for a percentage stop.
vol_window: the number of periods in the historical volatility
calculation. e.g. "30" means the volatility will be a weighted
average of the previous 30 periods. applies to both types of stop.
stop_pct: the volatility limit, annualized. for example, "50" means
that the trend will not be followed when historical volatility rises
above 50%.
stop_rank: the trend will not be followed when the volatility is in the
N-th percentile. for example, "75" means the trend will not be
followed when the current historical volatility is greater than 75%
of previous volatilities.
rank_window: the number of periods in the rank percentile calculation.
for example, if rank_window is "252" and "stop_rank" is "80", the
trend will not be followed when current historical volatility is
greater than 80% of the previous 252 historical volatilities.
Outputs:
The outputs include moving averages, to visually identify the trend,
a volatility table, and a performance table.
Moving averages:
The slow moving average is colored green in an uptrend, red in a
downtrend, and black when the volatility stop is in place.
Volatility table:
The volatility table gives the current historical volatility, annualized
and expressed as a whole number percentage. E.g. "65" means the
instrument's one standard deviation annual move is 65% of its price.
The current rank is expressed, also as a whole number percentage. E.g.
"15" means the current volatility is greater than 15% of previous
volatilities. For convenience, the volatilities corresponding to the
0, 25, 50, 75, and 100th percentiles are also shown.
Performance table:
The performance table shows the current strategy's performance versus
buy-and-hold. If the trend is up, the instrument's return for that
period is added to the strategy's return, because the strategy is long.
If the trend is down, the negative return is added, because the strategy
is short. If the volatility stop is in (the slow moving average is
black), that period's return is excluded from the strategy returns.
Every period's return is added to the buy-and-hold returns.
The table shows the average return, the standard deviation of returns,
and the sharpe ratio (average return / standard deviation of returns).
All figures are expressed as per-period, whole number percentages.
For exmaple, "0.1" in the mean column on a daily chart means a
0.1% daily return.
The number of periods (samples) for each strategy is also shown. Indicator

trend_vol_forecastNote: The following description is copied from the script's comments. Since PulseWire does not allow me to edit this description, please refer to the comments and release notes for the most up-to-date information.
-----------
USAGE
This script compares trend trading with a volatility stop to "buy and hold".
Trades are taken with the trend, except when price exceeds a volatility
forecast. The trend is defined by a moving average crossover. The forecast
is based on projecting future volatility from historical volatility.
The trend is defined by two parameters:
- long: the length of a long ("slow") moving average.
- short: the length of a short ("fast") moving average.
The trend is up when the short moving average is above the long. Otherwise
it is down.
The volatility stop is defined by three parameters:
- volatility window: determines the number of periods in the historical
volatility calculation. More periods means a slower (smoother)
estimate of historical volatility.
- stop forecast periods: the number of periods in the volatility
forecast. For example, "7" on a daily chart means that the volatility
will be forecasted with a one week lag.
- stop forecast stdev: the number of standard deviations in the stop
forecast. For example, "2" means two standard deviations.
EXAMPLE
The default parameters are:
- long: 50
- short: 20
- volatility window: 30
- stop forecast periods: 7
- stop forecast standard deviations: 1
The trend will be up when the 20 period moving average is above the 50
period moving average. On each bar, the historical volatility will be
calculated from the previous 30 bars. If the historical volatility is 0.65
(65%), then a forecast will be drawn as a fuchsia line, subtracting
0.65 * sqrt(7 / 365) from the closing price. If price at any point falls
below the forecast, the volatility stop is in place, and the trend is
negated.
OUTPUTS
Plots:
- The trend is shown by painting the slow moving average green (up), red
(down), or black (none; volatility stop).
- The fast moving average is shown in faint blue
- The previous volatility forecasts are shown in faint fuchsia
- The current volatility forecast is shown as a fuchsia line, projecting
into the future as far as it is valid.
Tables:
- The current historical volatility is given in the top right corner, as a
whole number percentage.
- The performance table shows the mean, standard deviation, and sharpe
ratio of the volatility stop trend strategy, as well as buy and hold.
If the trend is up, each period's return is added to the sample (the
strategy is long). If the trend is down, the inverse of each period's
return is added to the sample (the strategy is short). If there is no
trend (the volatility stop is active), the period's return is excluded
from the sample. Every period is added to the buy-and-hold strategy's
sample. The total number of periods in each sample is also shown. Indicator

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: PulseWire-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 :) Strategy

Indicator

Indicator

Strategy

Indicator

YesillimThe "Yesillim" indicator is a trend follower and trailing stop indicator that reacts quickly and aims to enter early in an uptrend and exit early from a downtrend. Since moving averages are used, it can be used in daytrade and scalping in daily or lower periods. The crossover and crossdown intersections of the price and the indicator line may be meaningful, but it is actually a color changing indicator and color changes should be interpreted. The bullish market gains strength when the color turns green, and the bearish market when it turns red. When prices get too far from the indicator, they are approaching again, in this case, it may be support will work like resistance according to the current trend. Like any indicator, it is possible to produce false signals in the horizontal market, so it should not be used alone, the oscillator and volume should support the current trend. In strong trend changes, angle changes in the indicator can also be interpreted manually. In this case, sharp angled turns indicate a sharp trend change. Technically customized weighted moving average weights are specially weighted with golden ratio coefficients, smoothed with a lower period for noise removal with the same principle and added bias. I wish it to be used in profitable transactions.
Turkish (Türkçe): Yeşillim indikatörü bir trend izleme ve hareketli iz süren indikatördür. Son barları agresif olarak ağırlıklandırdığı için var olan bir yükseliş trendine erken sokup, düşüş trendinden erken çıkarması olasıdır. İndikatör yorumlanırken fiyat ve indikatör kesişimleri anlamlı olsada (yükseliş düşüş trendlerinde destek-direnç görevi görebilecektir) ancak asıl amaç renk değişimi yorumlanmalıdır, yeşil yükseliş trendinin, kırmızı ise düşüş trendinin güç kazandığını göstermektedir. Her indikatör gibi yatay piyasada hatalı sonuçlar üretebilir, bu nedenle rsi, sokastik gibi bir osilatörle desteklenmesi hacimin mevcut trendi desteklemesi gerekmektedir. Kazançlı işlemlerde kullanılmasını temenni ederim. Indicator

Strategy

Indicator

Indicator

MultiAlert, MultiTargets + TickersThis is my first script, completely made from scratch. Bear with me.
Script that allows one to set an alert for Multiple Price Levels, on Multiple Tickers, complete with Dynamic Messages showing you which ticker, at which price, at which alert (Stop loss, Target 1 etc.), set to Once Per Bar.
Select Ticker, type in price levels that you have for targets & stop loss, move on to the next, or don't and leave 0 and blank.
Disable the targets you do not need in STYLE tab to disable plotting & scaling, leave unused tickers & targets blank & 0.
Create Alert, select this indicator, anyfunction() alert.
MAKE SURE to remake the alert every time you change something, they are not smart enough to change as you change things. Can Confirm by using the numbers in the alert name. You will also have to set the profit level or stop loss to zero every time it triggers to avoid triggered again.
In fact, you do not need the indicator active at all. Add it to a chart and hide it by clicking on the little eyeball icon, to make an alert open the settings for the indicator and type in your targets like normal. Indicator will remain invisable.
I have not found a way to dynamic message the alert name, or else I would.
DISCLAIMER: NONE OF THIS IS FINANCIAL ADVICE. You are completely responsible for whatever happens to you. Do not use the targets in this chart. Do your own research before trading. Indicator

Indicator

Strategy
