FTKF EMAC(傅里叶变换与卡尔曼滤波的EMA交叉)是一种趋势追踪想法,它鸠合了傅里叶变换类似、卡尔曼滤波和两个不同长度的指数移动平均线(EMA),以提供准确且平滑的阛阓趋势信号。通过这三者的鸠合,该想法大略捕捉阛阓底层周期,减少杂音,并生成可操作的瞻念察,使其符合于检测新兴趋势和证明现存趋势。
更好的私用想法,期货自动化交往要害与股票自动化要害在星球图片
工夫细节傅里叶变换类似旨在通过柔顺要害频率来识别价钱行为中的主导周期性形状,同期过滤掉杂音和不太迫切的波动。它强调最有好奇艳羡好奇艳羡的价钱周期,使想法大略间隔迫切趋势,忽略次要波动。这种周期性意志为趋势检测加多了独特的深度,使EMA大略措置更清洁、更可靠的数据集。
卡尔曼滤波加多了动态杂音减少功能,把柄曩昔和现时的数据和洽其对将来价钱趋势的展望。跟着新价钱数据的输入,滤波器会再行校准本人,以确保价钱行为保抓平滑且无非常波动。这种实时和洽是要害,不错最小化滞后并幸免诞妄信号,确保EMA对更准确和谨慎的阛阓数据作念出反应。卡尔曼滤波器在保抓对趋势变化明锐性的同期平滑价钱数据的才气,与傅里叶类似相反相成,确保在波动和谨慎的阛阓环境中具有高精度。
图片
EMA交叉触及使用两个EMA:一个较短的EMA对价钱变动反应赶紧,一个较长的EMA反应较慢。较短的EMA讲求捕捉即时的阛阓变化,检测潜在的看涨或看跌趋势。较长的EMA平滑价钱波动并提供趋势证明,与较短的EMA所有这个词责任,确保信号的可靠性。当较短的EMA穿越到较长的EMA之上时,示意看涨趋势;反之,当它穿越到较长的EMA之下时,示意看跌趋势。这种开拓提供了一种明晰的形势来追踪阛阓标的,并使用样式编码信号(绿色示意看涨,红色示意看跌)以增强视觉明晰度。和洽EMA周期的生动性使交往者大略把柄其偏好的时辰框架和战术进行微调,使其妥当不同的阛阓条目。
一个要害的工夫方面是,第一个EMA应永恒短于第二个EMA。要是第一个EMA比第二个长,器具的灵验性将受到影响,因为较快的EMA料想打算用于发出看涨信号,而较长的EMA用于发出看跌信号。倒置它们的变装会导致信号蔓延或交加,裁减想法早期检测趋势变化的才气,使其在波动阛阓中成果裁减。这是该想法的独一要害缺欠,不治服这一规定将导致交加。
这些组件像时钟同样协同责任,创建一个全面且灵验的趋势追踪系统。傅里叶类似卓越了要害的周期性通顺,卡尔曼滤波通曩昔除杂音来优化这些通顺,而EMA则阐述过滤后的数据以生成可操作的趋势信号。每个组件齐增强了下一个组件,确保最终输出既反应又可靠,具有最小的诞妄信号或滞后。创建了一个使用鄙俚主见但以前未鸠合过的想法。
图片
工夫纪念该想法鸠合了傅里叶变换类似、卡尔曼滤波和两个不同长度的EMA,以提供准确且实时的趋势追踪信号。傅里叶类似识别主导阛阓周期,而卡尔曼滤波动态去除杂音并在实时中优化价钱数据。两个EMA随后使用这些过滤后的数据生成基于交叉的买入和卖出信号。较短的EMA对价钱变化反应赶紧,而较长的EMA提供更平滑的趋势证明。组件协同责任,以最小的诞妄信号或滞后捕捉趋势,确保交往者大略实时支吾阛阓变化。可定制的EMA周期使器具妥当不同的阛阓条目,增强了其对各式交往战术的妥当性。
要使用该想法,交往者应把柄当时辰框架和战术和洽EMA长度,确保较短的EMA永恒短于较长的EMA,以保抓器具的反应性。样式编码信号提供了视觉明晰度,使其易于识别潜在的入场和出场点。这种傅里叶、卡尔曼和EMA步履的鸠合提供了一个平滑且高度灵验的趋势追踪器具,在趋势和涟漪阛阓中阐述出色。
卡尔曼滤波量化源代码:
//@version=5////////// MADE BY lijin/////////indicator('FTKF EMAC [Mattes]', overlay=true)// Input parameters for Kalman FilterkalmanProcessNoise = input(0.001, title='Kalman Process Noise', group='Kalman Filtration')kalmanMeasurementNoise = input(0.01, title='Kalman Measurement Noise', group='Kalman Filtration')// Input parameters for Fourier ApproximationfourierPeriod = input(20, title='Fourier Approximation Period', group='Fourier Approximation')emaFourierPeriod = input(14, title='EMA Smoothing for Fourier', group='Fourier Approximation')// Input parameters for MAsperiod1 = input(7, title='MA Period 1', group='EMA inputs')period2 = input(21, title='MA Period 2', group='EMA inputs')PlotDema = input(false, title='Show Both EMAs as confluence?', group='Additional')ColoredBG = input(true, title='Color Background?', group='Additional')// Function to apply a simple Kalman FilterkalmanFilter(src) => var float x = na var float p = na // Initialize variables if they're not set if na(x) x := src p := 1.0 // Prediction k = p / (p + kalmanMeasurementNoise) // Kalman Gain x := x + k * (src - x) // Update estimate p := (1 - k) * p + kalmanProcessNoise // Update error covariance x// Function for Fourier approximationfourierApprox(src, length) => sine_sum = 0.0 cosine_sum = 0.0 for i = 0 to length - 1 sine_sum := sine_sum + src[i] * math.sin(2 * math.pi * i / length) cosine_sum := cosine_sum + src[i] * math.cos(2 * math.pi * i / length) amplitude = math.sqrt(sine_sum * sine_sum + cosine_sum * cosine_sum) / length amplitude// Applying Kalman Filter on the pricefilteredPrice = kalmanFilter(close)// Applying Fourier approximationfourierResult = fourierApprox(close, fourierPeriod)// Smoothing the Fourier approximation with an EMAsmoothedFourier = ta.ema(fourierResult, emaFourierPeriod)// Calculate MAs based on Kalman-filtered pricema1 = ta.ema(filteredPrice, period1)ma2 = ta.ema(filteredPrice, period2)// Determine the dominant MAdominantMA = ma1 > ma2 ? ma1 : ma2// Define colors based on trend directiondominantColor = dominantMA == ma1 ? #00ff08 : #ff0707// Plotting the dominant MA with corresponding colorsplot(dominantMA, color=dominantColor, title='Dominant MA', linewidth=2)plot(PlotDema ? ma1 : na, color=#b9b9b9, title='ma1', linewidth=1)plot(PlotDema ? ma2 : na, color=#6f6f6f, title='ma2', linewidth=1)// Optional: Add background color based on trend directionbgcolor(ColoredBG ? dominantMA == ma1 ? color.new(color.green, 90) : color.new(color.red, 90) : na)更好的私用想法,期货自动化交往要害与股票自动化要害在星球
本站仅提供存储办事,通盘实质均由用户发布,如发现存害或侵权实质,请点击举报。