3rs Wave tradingview indicator to mt4

MQL4 Göstergeler Uzmanlar

Şartname

I need someone who is able to convert Lonesometheblue's 3rdWave tradingview indicator from to an EA/Indicator. The indicator works very well but it only alerts buy or sell in tradingview, I need it to also alert the price of the beginning of wave 0 and 2 to use them as SL when automating the strategy. The ideal would be to make an EA with its own alerts of the indicator but the basic thing is to make some function that returns the value of "0" and "2" that are painted on the graph in order to be able to take them as a reference for the value of the SL to automate with an external EA.

Public 3rd Wave code script: 

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

//@version=5
indicator('3rd Wave', overlay=true, max_bars_back=500, max_lines_count=500, max_labels_count=500)
 
// import necessary functions to calculate and show the zigzag
import LonesomeTheBlue/CreateAndShowZigzag/1 as ZigZag

prd = input.int(defval=8, title='ZigZag Period', minval=2, maxval=50, group='setup')
ret_rate_min = input.float(defval=0.382, title='Min/Max Retracements', minval=0.100, maxval=0.900, inline='retrate', group='setup')
ret_rate_max = input.float(defval=0.786, title='', minval=0.100, maxval=0.900, inline='retrate', group='setup')
checkvol_support = input.bool(defval=true, title='Check Volume Support', group='setup')
target1_enb = input.bool(defval=true, title='Target 1', inline='t1', group='targets')
target1_ret = input.float(defval=1., title='', inline='t1', group='targets', tooltip = "%X of wave 1 from the begining of wave 2")
target2_enb = input.bool(defval=true, title='Target 2', inline='t2', group='targets')
target2_ret = input.float(defval=1.618, title='', inline='t2', group='targets', tooltip = "%X of wave 1 from the begining of wave 2")
target3_enb = input.bool(defval=false, title='Target 3', inline='t3', group='targets')
target3_ret = input.float(defval=2.618, title='', inline='t3', group='targets', tooltip = "%X of wave 1 from the begining of wave 2")
target4_enb = input.bool(defval=false, title='Target 4', inline='t4', group='targets')
target4_ret = input.float(defval=3.618, title='', inline='t4', group='targets', tooltip = "%X of wave 1 from the begining of wave 2")
showwave12 = input.bool(defval=true, title='Show Wave 1 and 2', group='colors')
showbo = input.bool(defval=true, title='Zone', inline='bocol', group='colors')
bupcol = input.color(defval=color.rgb(0, 255, 0, 85), title='', inline='bocol', group='colors')
bdncol = input.color(defval=color.rgb(255, 0, 0, 85), title='', inline='bocol', group='colors')
showzigzag = input.bool(defval=false, title='Zig Zag', inline='zzcol', group='colors')
upcol = input.color(defval=color.lime, title='', inline='zzcol', group='colors')
dncol = input.color(defval=color.red, title='', inline='zzcol', group='colors')

// definitions for zigzag arrays
var max_array_size = 10 // max length for zigzag array
var zigzag = array.new_float(0)
oldzigzag = array.copy(zigzag) // keep old zigzag

// get the zigzag
dir = ZigZag.getZigzag(zigzag, prd, max_array_size)
// show the zigzag
if showzigzag
    ZigZag.showZigzag(zigzag, oldzigzag, dir, upcol, dncol)


int len = array.size(zigzag) >= 8 ? bar_index - math.round(array.get(zigzag, 7)) : 1
bool vol_support = (not checkvol_support or (checkvol_support and ta.linreg(volume, len, 0) - ta.linreg(volume, len, 1) > 0))
var bool can_check_it = true
bool thereisbo = false
if (dir != dir[1])
    can_check_it := true
    can_check_it

// check if there is possible 3rd wave and show breakout if there is any
if array.size(zigzag) >= 8 and can_check_it
    w12 = math.abs(array.get(zigzag, 2) - array.get(zigzag, 4)) / math.abs(array.get(zigzag, 4) - array.get(zigzag, 6))
    if w12 >= ret_rate_min and w12 <= ret_rate_max and (dir == 1 and high > array.get(zigzag, 4) or dir == -1 and low < array.get(zigzag, 4))
        can_check_it := false
        if vol_support
            thereisbo := true
            // draw bo
            if showbo
                box.new(left=math.round(array.get(zigzag, 7)), top=array.get(zigzag, 4), right=bar_index, bottom=array.get(zigzag, 6), border_color=color.blue, border_width=1, border_style=line.style_dotted, bgcolor=dir == 1 ? bupcol : bdncol)
           
            if showwave12
                line.new(x1=math.round(array.get(zigzag, 7)), y1=array.get(zigzag, 6), x2=math.round(array.get(zigzag, 5)), y2=array.get(zigzag, 4))
                line.new(x1=math.round(array.get(zigzag, 5)), y1=array.get(zigzag, 4), x2=math.round(array.get(zigzag, 3)), y2=array.get(zigzag, 2))
                label.new(x=math.round(array.get(zigzag, 7)), y=array.get(zigzag, 6), text='0', color=color.new(color.white, 100), textcolor=color.blue, style=dir == 1 ? label.style_label_up : label.style_label_down)
                label.new(x=math.round(array.get(zigzag, 5)), y=array.get(zigzag, 4), text='1', color=color.new(color.white, 100), textcolor=color.blue, style=dir == 1 ? label.style_label_down : label.style_label_up)
                label.new(x=math.round(array.get(zigzag, 3)), y=array.get(zigzag, 2), text='2', color=color.new(color.white, 100), textcolor=color.blue, style=dir == 1 ? label.style_label_up : label.style_label_down)
   
            // draw label
            label.new(x=bar_index, y=array.get(zigzag, 6), color=dir == 1 ? upcol : dncol, style=dir == 1 ? label.style_triangleup : label.style_triangledown, size=size.small)
   
            base = array.get(zigzag, 2)
            wave1 = math.abs(array.get(zigzag, 4) - array.get(zigzag, 6))
            if target1_enb
                line.new(x1=bar_index, y1=math.max(base + dir * wave1 * target1_ret, 0), x2=math.round(array.get(zigzag, 7)), y2=math.max(base + dir * wave1 * target1_ret, 0), style=line.style_dashed)
            if target2_enb
                line.new(x1=bar_index, y1=math.max(base + dir * wave1 * target2_ret, 0), x2=math.round(array.get(zigzag, 7)), y2=math.max(base + dir * wave1 * target2_ret, 0), style=line.style_dashed)
            if target3_enb
                line.new(x1=bar_index, y1=math.max(base + dir * wave1 * target3_ret, 0), x2=math.round(array.get(zigzag, 7)), y2=math.max(base + dir * wave1 * target3_ret, 0), style=line.style_dashed)
            if target4_enb
                line.new(x1=bar_index, y1=math.max(base + dir * wave1 * target4_ret, 0), x2=math.round(array.get(zigzag, 7)), y2=math.max(base + dir * wave1 * target4_ret, 0), style=line.style_dashed)

alertcondition(thereisbo and dir ==  1, title = "Breakout Long",  message = "Breakout Long")
alertcondition(thereisbo and dir == -1, title = "Breakout Short", message = "Breakout Short")


Public  import LonesomeTheBlue/CreateAndShowZigzag/1 as ZigZag:

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

//@version=5

// @description Functions in this library creates/updates zigzag array and shows the zigzag
library("CreateAndShowZigzag")

Trz(float [] zigzag, int mLoc)=>
    for x = array.size(zigzag) - 1 to array.size(zigzag) > 1 ? 0 : na by 2
        if bar_index - array.get(zigzag, x) <= mLoc
            break
        array.pop(zigzag)
        array.pop(zigzag)

addtozigzag(float [] zigzag, float value) =>
    array.unshift(zigzag, bar_index)
    array.unshift(zigzag, value)

updatezigzag(float [] zigzag, float value, int dir) =>
    if array.size(zigzag) == 0
        addtozigzag(zigzag, value)
    else
        if dir == 1 and value > array.get(zigzag, 0) or dir == -1 and value < array.get(zigzag, 0)
            array.set(zigzag, 0, value)
            array.set(zigzag, 1, bar_index)

export getZigzag(float [] zigzag, int prd, int mLoc)=>
    Trz(zigzag, mLoc)
    float ph = ta.highestbars(high, prd) == 0 ? high : na
    float pl = ta.lowestbars(low, prd) == 0 ? low : na
    var int dir = 0
    dir := ph and na(pl) ? 1 :
           pl and na(ph) ? -1 :
           dir
    bool bothexist = ph and pl
    bool dirchanged = dir != dir[1]
    if ph or pl
        if bothexist
            updatezigzag(zigzag, dir == 1 ? ph : pl, dir)
            dir := -dir
            addtozigzag(zigzag, dir == 1 ? ph : pl)
        else
            if dirchanged  //and not nz(bothexist[1], false)
                addtozigzag(zigzag, dir == 1 ? ph : pl)
            else
                updatezigzag(zigzag, dir == 1 ? ph : pl, dir)
    [dir, bothexist]

export showZigzag(float [] zigzag, float [] zigzagold, int dir, bool specialcase, color upcol, color dncol)=>
    var line zzline = na
    if specialcase
        line.set_xy1(zzline, math.round(array.get(zigzag, 3)), array.get(zigzag, 2))
    if array.get(zigzag, 0) != array.get(zigzagold, 0) or array.get(zigzag, 1) != array.get(zigzagold, 1)
        if array.get(zigzag, 2) == array.get(zigzagold, 2) and array.get(zigzag, 3) == array.get(zigzagold, 3)
            line.delete(zzline)
        zzline := line.new(x1=math.round(array.get(zigzag, 1)), y1=array.get(zigzag, 0), x2=math.round(array.get(zigzag, 3)), y2=array.get(zigzag, 2), color=dir == 1 ? upcol : dncol)

export getTN()=>
    int TN = 8
    tick__ = syminfo.mintick
    while tick__ < 1
        TN += 1
        tick__ *= 10
    tick__ := high
    while tick__ > 1
        TN += 1
        tick__ /= 10
    TN


Yanıtlandı

1
Geliştirici 1
Derecelendirme
(268)
Projeler
602
34%
Arabuluculuk
64
20% / 58%
Süresi dolmuş
147
24%
Çalışıyor
Yayınlandı: 1 makale, 22 kod
2
Geliştirici 2
Derecelendirme
(574)
Projeler
945
47%
Arabuluculuk
309
58% / 27%
Süresi dolmuş
125
13%
Serbest
3
Geliştirici 3
Derecelendirme
Projeler
0
0%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
4
Geliştirici 4
Derecelendirme
(12)
Projeler
9
33%
Arabuluculuk
11
0% / 100%
Süresi dolmuş
2
22%
Serbest
5
Geliştirici 5
Derecelendirme
(322)
Projeler
499
67%
Arabuluculuk
5
40% / 0%
Süresi dolmuş
4
1%
Serbest
Yayınlandı: 8 kod
Benzer siparişler
MetaTrader In-App Trade Alerts An existing MetaTrader terminal is already running on my side, but its account is kept hidden for privacy reasons. I need a specialist to wire up native in-app notifications so that every time a position is opened or later closed I see an immediate pop-up inside the platform—no emails or SMS, just the built-in alert window (and the usual MT push to mobile if that comes automatically
Develop a custom indicator that uses RSI divergence, that gives a sell signal when a particular level is broken in a "M" in which the last trending candle of both level must not have 5EMA touch at all wether on the wick or body, the second level is formed when there is a bearish signal candle
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
I have a non-repainting MT4 indicator called Trend Pullback 3 . I am looking for an experienced MQL4 developer with a strong understanding of both programming and technical analysis to improve the indicator's signal quality. Project Goal The objective is to reduce or eliminate signals that occur during sideways, low-probability, choppy market conditions while preserving the high-quality signals that occur during
[7/6/2026 12:24 PM] DR.HassaN: Current Phase: Comprehensive Review & Final Enhancement_ This indicator is designed for the TradingView platform. Now that the core engines have been completed, I want to enter a comprehensive review and professional enhancement phase before adding any major new features. My goal is to transform this indicator into a premium institutional-grade TradingView indicator , both in terms of
Hello friends, I have an mq4 indicator file for binary options that I want to develop to give better results than the current one. I'm looking for a professional developer who can do this. I will provide you with the file, along with results from another indicator (which I want to develop my indicator to resemble) so you can compare them. If you can do this work, please contact me
Can you Build a custom NinjaTrader 8 ChartStyle or BarsType called Optimized Footprint Bars. This project is urgent and i need someone that's wiiling to do his project with me kinldy bid for this. Thanks
: Hello, I am looking for an experienced MQL4 developer to create a custom Binary Options Trading Bot for MetaTrader 4 (MT4). The bot needs to automate trades based on clear conditions and must have a reliable integration feature. I would like the bot to work smoothly with Telegram so that it can either receive signals from a channel/group or send instant trade notifications directly to my Telegram. The code should
SETJEO'S GOLD EA 30 - 200 USD
double GetTodayProfit() { double profit = 0; datetime today = StringToTime(TimeToString(TimeCurrent(), TIME_DATE)); HistorySelect(today, TimeCurrent()); for(int i = HistoryDealsTotal() - 1; i >= 0; i--) { ulong ticket = HistoryDealGetTicket(i); if(HistoryDealGetString(ticket, DEAL_SYMBOL) == _Symbol) { profit += HistoryDealGetDouble(ticket, DEAL_PROFIT); } } return profit; }
مطلوب موشر مع ربطه علي بوت تداول قوي جدا مختبر ومجرب مع التاكيد علي نسبه النجاح يتم انشاءه علي جميع الموشرات في الفوركس الذهب والبتكوين والus100 مع شرح للستراتيجية ونتايج اختيار اذا كان مجرب

Proje bilgisi

Bütçe
30 - 60 USD