[Kobalt updated sorted] Mad Hatter Indicators: MHB MACD v2

stable
By Kobalt in Sideways Published January 2020 👁 2,086 views 💬 0 comments

Description

Mad Hatter: MHB MACD v2 Input Menu Group format and order of elements. Every MHB Indicator has option of using a different timeframe. Custom MACD signal implementation for Mad Hatter Extended v3.1 / Mad Hatter Basic -- Sorted Input Group items to match MadHatter, clean group format. -- Added Interval per indicator -- Optional description name, included in chart plot instead of script name.
HaasScript
-- Author: kob
DefineCommand("MadHatterMACDv2", "Custom MACD signal implementation for MadHatter")
-- Added Input Menu Groups 
-- Define command parameters.
local chartIndex = DefineParameter(NumberType, 'chartIndex', 'The index on which to chart', true, 2, 'Number')
local name = DefineParameter(StringType, 'name', 'Optional unique name of the indicator, timefrme or something...', false, '', 'Text')
local interval = DefineParameter(NumberType, 'interval', 'Used interval for price data. Default is 0 and the main interval will be used.', false, 0, 'Number,InputInterval')

DefineIntervalOptimization(interval)
 
-- Input fields for the indicator. Add the name in front.
--InputGroupHeader('MHB MACD ')
local interval = InputInterval(name..' Interval', 1, 'The timeframe for MadHatter MACD.', {group = "MHB MACD"}) 
local fastLength = Input(name..' MACD Fast', 12, {group = "MHB MACD"})  
local slowLength = Input(name..' MACD Slow', 26, {group = "MHB MACD"}) 
local signalLength = Input(name..' MACD Signal', 4, {group = "MHB MACD"}) 
 
-- Calculate the indicator
local prices = ClosePrices(interval)
local macdData =  MACD(prices, fastLength, slowLength, signalLength)
local macd = macdData[1]
local signal = macdData[2]
local hist = macdData[3]
 
local signal = SignalNone
if macdData.macd < macdData.signal and IsRising(macdData.hist, 1) then
    signal = SignalLong
elseif macdData.macd > macdData.signal and macdData.hist[1] >= macdData.hist[2] then
    signal = SignalLong
elseif macdData.macd > macdData.signal and IsFalling(macdData.hist, 1)  then
    signal = SignalShort
elseif macdData.macd < macdData.signal and macdData.hist[1] <= macdData.hist[2] then
    signal = SignalLong
end
 
-- Plot the indicator Use the chartIndex parameter.
PlotHistogramSignals(chartIndex, 'MHB', macdData.hist, macdData.macd, macdData.signal)
ChartSetOptions(chartIndex, name.. 'MHB MACD')
--Return the custom signal.
DefineOutput(EnumType, signal, 'Signal result', 'TradeBotContainer, IndicatorContainer, Signal Helpers')

0 Comments

Sign in to leave a comment.

No comments yet. Be the first!