Trabalho concluído
Tempo de execução 22 horas
Comentário do cliente
I hired this developer to create a complex custom indicator. The code was flawless, with zero bugs, and they implemented all my requested features precisely.
Comentário do desenvolvedor
Thanks for your fair order. Wish you safe trades,
Termos de Referência
Please convert the 2 Pine Scripts below into MQL5 Indicator, it has to be done in 2 days:
1. RMD
//@version=5
indicator('Ranging Market Detector', shorttitle='RMD')
// input paraneters
treshold_level = input.float(title='treshold', defval=4, minval=0, step=1)
//Kalman filter calculation
p = ohlc4
value1 = 0.0
value2 = 0.0
klmf = 0.0
value1 := 0.2 * (p - p[1]) + 0.8 * nz(value1[1])
value2 := 0.1 * (high - low) + 0.8 * nz(value2[1])
lambda = math.abs(value1 / value2)
alpha = (-lambda * lambda + math.sqrt(lambda * lambda * lambda * lambda + 16 * lambda * lambda)) / 8
klmf := alpha * p + (1 - alpha) * nz(klmf[1])
// Calculateing the absolute value of the Kalman filter curve slope
klmf_diff = math.abs(klmf - klmf[1])
// Long term average of the Kalman filter slope
av_klmf_diff = 1.0 * ta.ema(klmf_diff, 200)
// The Kalman filter slope minus the average slope (Decline from the average slope)
// This slope decline is divided by the average slope value to normalize it
normalized_slope_decline = (klmf_diff - av_klmf_diff) / av_klmf_diff
// Condition that defines the trend regime
// Slope declined from the average by not less than the given treshold value
trend_condition = (normalized_slope_decline >= treshold_level) or (normalized_slope_decline[1] >= treshold_level)
bgcol = trend_condition ? color.new(color.yellow, 30) : color.new(color.gray, 30)
// Plot normalized slope decline as histogram plot
plot(normalized_slope_decline, style=plot.style_columns, color=bgcol, linewidth=3)
//plot(lambda, style=plot.style_histogram, color=color.new(color.blue, 0), linewidth=3)
// Plot treshold level line
plot(treshold_level, color=color.new(color.yellow, 0))
2. HalfTrend
//@version=5
indicator('HalfTrend', overlay=true)
amplitude = input(title='Amplitude', defval=1)
channelDeviation = 2
atr_input = 100
showArrows = true
showChannels = true
var int trend = 0
var int nextTrend = 0
var float maxLowPrice = nz(low[1], low)
var float minHighPrice = nz(high[1], high)
var float up = 0.0
var float down = 0.0
float atrHigh = 0.0
float atrLow = 0.0
float arrowUp = na
float arrowDown = na
atr2 = ta.atr(atr_input) / 2
dev = channelDeviation * atr2
highPrice = high[math.abs(ta.highestbars(amplitude))]
lowPrice = low[math.abs(ta.lowestbars(amplitude))]
highma = ta.ema(high, amplitude)
lowma = ta.ema(low, amplitude)
if nextTrend == 1
maxLowPrice := math.max(lowPrice, maxLowPrice)
if highma < maxLowPrice and close < nz(low[1], low)
trend := 1
nextTrend := 0
minHighPrice := highPrice
minHighPrice
else
minHighPrice := math.min(highPrice, minHighPrice)
if lowma > minHighPrice and close > nz(high[1], high)
trend := 0
nextTrend := 1
maxLowPrice := lowPrice
maxLowPrice
if trend == 0
if not na(trend[1]) and trend[1] != 0
up := na(down[1]) ? down : down[1]
arrowUp := up - atr2
arrowUp
else
up := na(up[1]) ? maxLowPrice : math.max(maxLowPrice, up[1])
up
atrHigh := up + dev
atrLow := up - dev
atrLow
else
if not na(trend[1]) and trend[1] != 1
down := na(up[1]) ? up : up[1]
arrowDown := down + atr2
arrowDown
else
down := na(down[1]) ? minHighPrice : math.min(minHighPrice, down[1])
down
atrHigh := down + dev
atrLow := down - dev
atrLow
ht = trend == 0 ? up : down
var color buyColor = color.blue
var color sellColor = color.red
htColor = trend == 0 ? buyColor : sellColor
htPlot = plot(ht, title='HalfTrend', linewidth=2, color=htColor)
Respondido
1
Classificação
Projetos
603
34%
Arbitragem
65
22%
/
57%
Expirado
147
24%
Trabalhando
Publicou: 1 artigo, 22 códigos
2
Classificação
Projetos
499
67%
Arbitragem
5
40%
/
0%
Expirado
4
1%
Livre
Publicou: 8 códigos
3
Classificação
Projetos
378
72%
Arbitragem
19
32%
/
47%
Expirado
16
4%
Livre
Publicou: 15 códigos
Informações sobre o projeto
Orçamento
30+ USD
Prazo
para 2 dias