Is there any way to minimize the false signals? I'm using one of the original supertrend indicator by Mobius.
I'm day trading using 1, 3 and 5 min candle charts. For day trading I think 3min chart will give the best input and will reduce the amount of noise that a 1min chart will give.
5min chart sell signal could be very delayed from the previous Hi stock value and because of that you can give back $$. My frustration is after I buy the Buy signal goes away sometimes. I know I should wait for the candle to close but still I was wondering if there is any set up to minimize these false signals.
Thanks.
The script has been modified
(in bold font) to include additional logic to smooth out false signals.
# Mobius
# SuperTrend - "Strategy" A Very simple SuperTrend Strategy
# Chat Room Request
# V03.10.2015
#Hint:Supertrend Indicator: shows trend direction and gives buy or sell signals according to that.
input AtrMult = .70;
input nATR = 4;
input AvgType = AverageType.HULL;
input PaintBars = yes;
input BubbleOn = yes;
input ShowLabel = yes;
def h = high;
def l = low;
def c = close;
def ATR = MovingAverage(AvgType, TrueRange(h, c, l), nATR);
def UP = HL2 + (AtrMult * ATR);
def DN = HL2 + (-AtrMult * ATR);
def ST = if c < ST[1]
then UP
else DN;
plot SuperTrend = ST;
SuperTrend.AssignValueColor(if c < ST then Color.RED else Color.GREEN);
SuperTrend.SetPaintingStrategy(PaintingStrategy.LINE);
AssignPriceColor(if PaintBars and c < ST then Color.RED else if PaintBars and c > ST then Color.GREEN else Color.CURRENT);
input useOriginal = No;
AddOrder(OrderType.BUY_AUTO, useOriginal and HL2 crosses above ST, price = open[-1], tickcolor = Color.BLACK, arrowcolor = Color.BLACK, name = "B");
AddOrder(OrderType.SELL_AUTO, useOriginal and HL2 crosses below ST, price = open[-1], tickcolor = Color.BLACK, arrowcolor = Color.BLACK, name = "S");
input usePriceFilter = yes;
def priceup = if HL2 crosses above ST then c else priceup[1];
def pricedn = if HL2 crosses below ST then c else pricedn[1];
def sell = Average(priceup, nATR / 2) crosses above Average(pricedn, nATR / 3);
def buy = Average(pricedn, nATR / 2) crosses below Average(priceup, nATR / 3);
AddOrder(OrderType.BUY_AUTO, usePriceFilter and buy, price = open[-1], tickcolor = Color.CYAN, arrowcolor = Color.CYAN, name = "B");
AddOrder(OrderType.SELL_AUTO, usePriceFilter and sell, price = open[-1], tickcolor = Color.CYAN, arrowcolor = Color.CYAN, name = "S");
#END of strategy
The script now includes a price filter feature, which uses two moving averages (Average) to smooth out the price data and reduce false signals. The moving averages are calculated using the priceup and pricedn definitions, which are based on the high-low (HL2) crossing above/below the short-term (ST) moving average.
The buy and sell signals are generated when the averaged priceup/pricedn crosses above/below each other.
Overall, this modification introduces an additional layer of filtering to the trading strategy, which can help improve its performance by reducing whipsaws and false signals.