Convert trading view indicator into mt5 indicator

指定

I am looking for someone to convert( Or sell me) trading view indicator to mt5 and have the same, dunctionality with the source code.

the indicator is " Market Structure Break & Order Block by EmreKb", 

to have the same functionalities in mt5.

You can either convert the pine script to mql5 or create a new from scratch.

pine script code are below.


// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// © EmreKb


//@version=5

indicator("Market Structure Break & Order Block", "MSB-OB", overlay=true, max_lines_count=500, max_bars_back=4900, max_boxes_count=500)


settings = "Settings"

zigzag_len = input.int(9, "ZigZag Length", group=settings)

show_zigzag = input.bool(true, "Show Zigzag", group=settings)

fib_factor = input.float(0.33, "Fib Factor for breakout confirmation", 0, 1, 0.01, group=settings)


text_size = input.string(size.tiny, "Text Size", [size.tiny, size.small, size.normal, size.large, size.huge], group=settings)


delete_boxes = input.bool(true, "Delete Old/Broken Boxes", group=settings)


bu_ob_inline_color = "Bu-OB Colors"

be_ob_inline_color = "Be-OB Colors"

bu_bb_inline_color = "Bu-BB Colors"

be_bb_inline_color = "Be-BB Colors"


bu_ob_display_settings = "Bu-OB Display Settings"

bu_ob_color = input.color(color.new(color.green, 70), "Color", group=bu_ob_display_settings, inline=bu_ob_inline_color)

bu_ob_border_color = input.color(color.green, "Border Color", group=bu_ob_display_settings, inline=bu_ob_inline_color)

bu_ob_text_color = input.color(color.green, "Text Color", group=bu_ob_display_settings, inline=bu_ob_inline_color)


be_ob_display_settings = "Be-OB Display Settings"

be_ob_color = input.color(color.new(color.red, 70), "Color", group=be_ob_display_settings, inline=be_ob_inline_color)

be_ob_border_color = input.color(color.red, "Border Color", group=be_ob_display_settings, inline=be_ob_inline_color)

be_ob_text_color = input.color(color.red, "Text Color", group=be_ob_display_settings, inline=be_ob_inline_color)


bu_bb_display_settings = "Bu-BB & Bu-MB Display Settings"

bu_bb_color = input.color(color.new(color.green, 70), "Color", group=bu_bb_display_settings, inline=bu_bb_inline_color)

bu_bb_border_color = input.color(color.green, "Border Color", group=bu_bb_display_settings, inline=bu_bb_inline_color)

bu_bb_text_color = input.color(color.green, "Text Color", group=bu_bb_display_settings, inline=bu_bb_inline_color)


be_bb_display_settings = "Be-BB & Be-MB Display Settings"

be_bb_color = input.color(color.new(color.red, 70), "Color", group=be_bb_display_settings, inline=be_bb_inline_color)

be_bb_border_color = input.color(color.red, "Border Color", group=be_bb_display_settings, inline=be_bb_inline_color)

be_bb_text_color = input.color(color.red, "Text Color", group=be_bb_display_settings, inline=be_bb_inline_color)



var float[] high_points_arr = array.new_float(5)

var int[] high_index_arr = array.new_int(5)

var float[] low_points_arr = array.new_float(5)

var int[] low_index_arr = array.new_int(5)


var box[] bu_ob_boxes = array.new_box(5)

var box[] be_ob_boxes = array.new_box(5)

var box[] bu_bb_boxes = array.new_box(5)

var box[] be_bb_boxes = array.new_box(5)


to_up = high >= ta.highest(zigzag_len)

to_down = low <= ta.lowest(zigzag_len)


trend = 1

trend := nz(trend[1], 1)

trend := trend == 1 and to_down ? -1 : trend == -1 and to_up ? 1 : trend


last_trend_up_since = ta.barssince(to_up[1])

low_val = ta.lowest(nz(last_trend_up_since > 0 ? last_trend_up_since : 1, 1))

low_index = bar_index - ta.barssince(low_val == low)


last_trend_down_since = ta.barssince(to_down[1])

high_val = ta.highest(nz(last_trend_down_since > 0 ? last_trend_down_since : 1, 1))

high_index = bar_index - ta.barssince(high_val == high)


if ta.change(trend) != 0

    if trend == 1

        array.push(low_points_arr, low_val)

        array.push(low_index_arr, low_index)

    if trend == -1

        array.push(high_points_arr, high_val)

        array.push(high_index_arr, high_index)



f_get_high(ind) =>

    [array.get(high_points_arr, array.size(high_points_arr) - 1 - ind), array.get(high_index_arr, array.size(high_index_arr) - 1 - ind)]



f_get_low(ind) =>

    [array.get(low_points_arr, array.size(low_points_arr) - 1 - ind), array.get(low_index_arr, array.size(low_index_arr) - 1 - ind)]



f_delete_box(box_arr) =>

    if delete_boxes

        box.delete(array.shift(box_arr))

    else

        array.shift(box_arr)

    0



[h0, h0i] = f_get_high(0)

[h1, h1i] = f_get_high(1)


[l0, l0i] = f_get_low(0)

[l1, l1i] = f_get_low(1)


if ta.change(trend) != 0 and show_zigzag

    if trend == 1

        line.new(h0i, h0, l0i, l0)

    if trend == -1

        line.new(l0i, l0, h0i, h0)


market = 1

market := nz(market[1], 1)

// market := market == 1 and close < l0 and low < l0 - math.abs(h0 - l0) * fib_factor ? -1 : market == -1 and close > h0 and high > h0 + math.abs(h0 - l0) * fib_factor ? 1 : market

last_l0 = ta.valuewhen(ta.change(market) != 0, l0, 0)

last_h0 = ta.valuewhen(ta.change(market) != 0, h0, 0)

market := last_l0 == l0 or last_h0 == h0 ? market : market == 1 and l0 < l1 and l0 < l1 - math.abs(h0 - l1) * fib_factor ? -1 : market == -1 and h0 > h1 and h0 > h1 + math.abs(h1 - l0) * fib_factor ? 1 : market


bu_ob_index = bar_index

bu_ob_index := nz(bu_ob_index[1], bar_index)

for i=h1i to l0i[zigzag_len]

    index = bar_index - i 

    if open[index] > close[index]

        bu_ob_index := bar_index[index]


bu_ob_since = bar_index - bu_ob_index


be_ob_index = bar_index

be_ob_index := nz(be_ob_index[1], bar_index)

for i=l1i to h0i[zigzag_len]

    index = bar_index - i 

    if open[index] < close[index]

        be_ob_index := bar_index[index]


be_ob_since = bar_index - be_ob_index


be_bb_index = bar_index

be_bb_index := nz(be_bb_index[1], bar_index)

for i=h1i - zigzag_len to l1i

    index = bar_index - i

    if open[index] > close[index]

        be_bb_index := bar_index[index]


be_bb_since = bar_index - be_bb_index


bu_bb_index = bar_index

bu_bb_index := nz(bu_bb_index[1], bar_index)

for i=l1i - zigzag_len to h1i

    index = bar_index - i

    if open[index] < close[index]

        bu_bb_index := bar_index[index]


bu_bb_since = bar_index - bu_bb_index


if ta.change(market) != 0

    if market == 1

        line.new(h1i, h1, h0i, h1, color=color.green, width=2)

        label.new(int(math.avg(h1i, l0i)), h1, "MSB", color=color.new(color.black, 100), style=label.style_label_down, textcolor=color.green, size=size.small)

        bu_ob = box.new(bu_ob_index, high[bu_ob_since], bar_index + 10, low[bu_ob_since], bgcolor=bu_ob_color, border_color=bu_ob_border_color, text="Bu-OB", text_color=bu_ob_text_color, text_halign=text.align_right, text_size=text_size)

        bu_bb = box.new(bu_bb_index, high[bu_bb_since], bar_index + 10, low[bu_bb_since], bgcolor=bu_bb_color, border_color=bu_bb_border_color, text=l0 < l1 ? "Bu-BB" : "Bu-MB", text_color=bu_bb_text_color, text_halign=text.align_right, text_size=text_size)

        array.push(bu_ob_boxes, bu_ob)

        array.push(bu_bb_boxes, bu_bb)

    if market == -1

        line.new(l1i, l1, l0i, l1, color=color.red, width=2)

        label.new(int(math.avg(l1i, h0i)), l1, "MSB", color=color.new(color.black, 100), style=label.style_label_up, textcolor=color.red, size=size.small)

        be_ob = box.new(be_ob_index, high[be_ob_since], bar_index + 10, low[be_ob_since], bgcolor=be_ob_color, border_color=be_ob_border_color, text="Be-OB", text_color=be_ob_text_color, text_halign=text.align_right, text_size=text_size)

        be_bb = box.new(be_bb_index, high[be_bb_since], bar_index + 10, low[be_bb_since], bgcolor=be_bb_color, border_color=be_bb_border_color, text=h0 > h1 ? "Be-BB" : "Be-MB", text_color=be_bb_text_color, text_halign=text.align_right, text_size=text_size)

        array.push(be_ob_boxes, be_ob)

        array.push(be_bb_boxes, be_bb)


for bull_ob in bu_ob_boxes

    bottom = box.get_bottom(bull_ob)

    top = box.get_top(bull_ob)

    if close < bottom

        f_delete_box(bu_ob_boxes)

    else if close < top

        alert("Price in the BU-OB zone")

    else

        box.set_right(bull_ob, bar_index + 10)

    

for bear_ob in be_ob_boxes

    top = box.get_top(bear_ob)

    bottom = box.get_bottom((bear_ob))

    if close > top

        f_delete_box(be_ob_boxes)

    if close > bottom

        alert("Price in the BE-OB zone")

    else

        box.set_right(bear_ob, bar_index + 10)

        

for bear_bb in be_bb_boxes

    top = box.get_top(bear_bb)

    bottom = box.get_bottom(bear_bb)

    if close > top

        f_delete_box(be_bb_boxes)

    else if close > bottom

        alert("Price in the BE-BB zone")

    else

        box.set_right(bear_bb, bar_index + 10)

        

for bull_bb in bu_bb_boxes

    bottom = box.get_bottom(bull_bb)

    top = box.get_top(bull_bb)

    if close < bottom

        f_delete_box(bu_bb_boxes)

    else if close < top

        alert("Price in the BU-BB zone")

    else

        box.set_right(bull_bb, bar_index + 10)



alertcondition(ta.change(market) != 0, "MSB", "MSB")


ファイル:

JPG
dgfgdg.JPG
103.7 Kb

応答済み

1
開発者 1
評価
(268)
プロジェクト
602
34%
仲裁
64
20% / 58%
期限切れ
147
24%
仕事中
パブリッシュした人: 1 article, 22 codes
2
開発者 2
評価
(548)
プロジェクト
833
62%
仲裁
33
27% / 45%
期限切れ
24
3%
パブリッシュした人: 1 code
3
開発者 3
評価
(574)
プロジェクト
945
47%
仲裁
309
58% / 27%
期限切れ
125
13%
4
開発者 4
評価
(12)
プロジェクト
17
47%
仲裁
2
50% / 50%
期限切れ
0
5
開発者 5
評価
(2)
プロジェクト
4
0%
仲裁
0
期限切れ
0
類似した注文
Specification : 1. Goal I am commissioning a mean-reversion grid Expert Advisor for XAUUSD on MT5. The deliverable is the complete, commented .mq5 source (strictly personal usel). Offers limited to compiled .ex5 will not be considered. 2. Required framework (non-negotiable) 2.1. Works natively on M5; signals evaluated on closed bars; symmetric long/short. 2.2. Entry logic built on Bollinger Bands + Moving Average
TumiiFX 30 - 20000 USD
1. Use two EMAs: 20 and 50. If EMA 20 is above EMA 50 → uptrend (look for buys) If EMA 20 is below EMA 50 → downtrend (look for sells) 2. Wait for a pullback into the area between the two EMAs. - For buys: price must touch or move between EMA 20 and EMA 50 during the last few candles. - For stils: same idea, but in a downtrend. 3. Entry signal: Buy: a bullish engulfing candle in an uptrend after the pullback
I am looking for an experienced MQL5 developer to build a high-frequency (HFT) latency arbitrage Expert Advisor for Pepperstone MT5 , using LMAX as the leading price feed. The initial focus will be on US30 (Dow Jones) , and if the strategy proves successful, I want the EA to be easily expandable to additional symbols such as NAS100, GER40, XAUUSD, major forex pairs, and other supported instruments. The EA should
Master mind 30+ USD
Start ↓ Detect Trend (H4) ↓ Confirm Structure (H1) ↓ Wait for Pullback ↓ Check Indicators ↓ Calculate Confidence Score ↓ Score ≥ 80? ├── No → Wait └── Yes ↓ Calculate Lot Size ↓ Place Order ↓ Set Stop Loss ↓ Set Take Profit ↓ Manage Trade ↓ Move to Break-even ↓ Trail Stop ↓ Close Trade. IF Price > EMA200 (H4) AND EMA50 > EMA200 (H4) AND ADX > 25 AND RSI between 55 and 70 AND MACD Main > Signal AND Bullish engulfing
Standby Description . Prop Firm Environment . ( Monitor Execution and Handling Environment Changes as Required ) . Technical Issues . Delete extra lines of code (Clean Code , Folder) . Asset related translation , no need for Logic Alteration
Only Technical Issues . Familiarization to Different Symbols . [Again Technical Assistance Only] . Deleting extra lines of code , Not Required Folders (Clean Code) . No Need for Logic Alteration (Strictly)
MultiPair_PriceAction 30 - 200 USD
OANDA market watch clock and symbols (.sim) Multipair able so i can choose at least 6 of those more volatile forex pairs. Price Action setups instead of relay on lag indicators. But rsi for confirmation. Spread protection, position management, magic number editor, hours trading. Volatility protection Trailing Stop, Stop losses, take profit. Percentage and ATR scale instead of dollars or lot sizes. Funds management
Looking for an MT5 Expert Advisor developer with: Minimum 1 year of verified activity on the MetaTrader Market Positive, real user reviews Ability to build EAs without Bollinger Bands Fully configurable parameters (risk, filters, SL/TP, trading hours) Free test version available before any payment Clear communication and ongoing support If you meet these requirements, please send your MQL5 profile or portfolio
EA Crafter 500+ USD
Act as a professional Quantitative Developer and Risk Manager. I want to build a systematic trading strategy rulebook that prioritizes capital preservation and statistical edge over raw performance. Please generate a structured trading strategy using the following framework: 1. ASSET CLASS & TIMEFRAME: - Asset: [e.g., Apple (AAPL), Bitcoin (BTC), or EUR/USD] - Timeframe: [e.g., 5-minute, 1-hour, Daily] 2. CORE
I have an existing MT5 Expert Advisor for XAUUSD M5. This is NOT a new robot from zero. I need modification and professional review of an existing MQL5 EA. Main goals: 1. Buy entries: Buy trades are currently too rare. The Buy ADX filter was very strict at 45. I am testing 40 now. I need you to review the Buy entry filters and improve Buy entry quality without making entries random or weak. 2. Sell entries: Sell

プロジェクト情報

予算
30+ USD