3rs Wave tradingview indicator to mt4

MQL4 Indicatori Esperti

Specifiche

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


Con risposta

1
Sviluppatore 1
Valutazioni
(252)
Progetti
570
36%
Arbitraggio
64
20% / 58%
In ritardo
147
26%
Gratuito
2
Sviluppatore 2
Valutazioni
(558)
Progetti
925
48%
Arbitraggio
301
59% / 25%
In ritardo
123
13%
Caricato
3
Sviluppatore 3
Valutazioni
Progetti
0
0%
Arbitraggio
0
In ritardo
0
Gratuito
4
Sviluppatore 4
Valutazioni
(5)
Progetti
6
33%
Arbitraggio
1
0% / 0%
In ritardo
2
33%
Caricato
5
Sviluppatore 5
Valutazioni
(276)
Progetti
414
63%
Arbitraggio
5
40% / 0%
In ritardo
4
1%
In elaborazione
Ordini simili
i am planing on develloping a grid robot being a quiet big project i would be looking to build the full robot over initial job + 3 updates meaning by taking that job you are guarentee to have 3 jobs since we would need to build it pieces by pieces i am only looking for devs with 50+ jobs done all other will instantly get rejected its for an overall grid but more complexe with a ton of option i definitely understand
HI, I'm looking for an experienced person who can add buy/sell indications/Alerts on existing Pinescript code along with little modification of the script and the script should connect to MT5 platform using pineconnector MT5 platform should execute trade instantly as based on the alerts/indications on tradingview script
This request is only about an issue, basically i have an expert with pending orders that operate with trailing stop loss when pending order are activated. Issue came when i have a recovery order open , then expert have to manage and close original order with recovery order/orders without let run trailing. Actually issue is here, basically others order from same pair went anyway with trailing when , as decided, must
I need an EA created by combining the PZ RSI, PZ MACD,and PZ Stochastic into one EA with the grid function The idea of the trading system is as follows: market entries are performed when MACD, RSI and Stochastic K are in the same current trend direction. The EA is created by combining 3 existing PZ EA's
I want to modify my ea to open a buy position if buy arrow appears on the chart, and it will close the open sell position, and also if it reverse after the 3 hit count of the same market price it will close the buy position and open a sell position. Also if the sell arrow appears on the chart it will open a sell position, and it will close the open buy position, and also if it reverse after the 3 hit count of the
Hello, I need a max daily loss script that works for mql5 and mql4. I want to integrate this into my EA and have both versions. I need input for max drawdown %. And the rules will follow prop firm rules. If todays loss (closed + current running trades) reaches 5%. Close all trades and pause until the next trading day. ***My trading account is automatically closed every time I open a trade after crossing the daily
Hello, I need smart and professional programmer that have minimum 300 projects finish for my expert advisor (mq4). I need this project finish quickly, and the function can running well like I need. My EA basicly using Consecutives Signals Candle, MA20, and ATR with some others parameters. If you programmer like I need, so can apply, IF NOT DONT APPLY! I will send the document completely when you apply. Thank you
Hello i need an expert who can help me backtest my Grid system EA and find the best profitable setting where i can use it on a live account. Note: Only applicant with experience and prove of work should apply
Hi , Looking for a ready made profitable EA Robot. It must have a myfxbook. I would like to see track record I would like to see it trade live markets if you can provide Investor password that will be good
can we create an EA history reader that generates a trading logic? For example, when I want to find a good set of numbers for a system including MA20, price action, H1 time frame, it will automatically run to find the optimal set of numbers in terms of time, SL/TP..... Or simply if I don't use any indicator, just use price action and it will read history and give consistent trading logic, for example: 20:00, candle >

Informazioni sul progetto

Budget
30 - 60 USD
IVA (21%): 6.3 - 12.6 USD
Totale: 36.3 - 72.6 USD
Per lo sviluppatore
27 - 54 USD