Работа завершена
Время выполнения 22 часа
Отзыв от исполнителя
Thanks for your fair order. Wish you safe trades,
Отзыв от заказчика
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.
Техническое задание
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)
Откликнулись
1
Оценка
Проекты
603
34%
Арбитраж
65
22%
/
57%
Просрочено
146
24%
Работает
Опубликовал: 1 статью, 22 примера
2
Оценка
Проекты
499
67%
Арбитраж
5
40%
/
0%
Просрочено
4
1%
Свободен
Опубликовал: 8 примеров
3
Оценка
Проекты
378
72%
Арбитраж
19
32%
/
47%
Просрочено
16
4%
Свободен
Опубликовал: 15 примеров
Информация о проекте
Бюджет
30+ USD
Сроки выполнения
до 2 дн.