3rs Wave tradingview indicator to mt4

MQL4 지표 EA

명시

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


응답함

1
개발자 1
등급
(268)
프로젝트
603
34%
중재
65
22% / 57%
기한 초과
146
24%
작업중
게재됨: 1 기고글, 22 코드
2
개발자 2
등급
(574)
프로젝트
945
47%
중재
309
58% / 27%
기한 초과
125
13%
무료
3
개발자 3
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
4
개발자 4
등급
(12)
프로젝트
9
33%
중재
11
0% / 100%
기한 초과
2
22%
무료
5
개발자 5
등급
(322)
프로젝트
499
67%
중재
5
40% / 0%
기한 초과
4
1%
무료
게재됨: 8 코드
비슷한 주문
Hello, I am an independent developer selling an Expert Advisor (EA) on the MQL5 Market. I am looking for an experienced Forex affiliate marketing company or professional marketer to promote my existing MT5 trading robot to customers worldwide. My proposed partnership offers a 35% commission per verified sale, with the possibility of a long-term collaboration. I would like to know: Do you promote third-party MT5
The objective is to develop a custom technical indicator for MetaTrader 5 (MQL5) that replicates the exact visual structure, inputs, and features of the "AYN-Indicator by Snurk" as shown in the provided screenshot. The indicator must analyze price actions based on a flexible lookback period, plot dynamic trend filters, and render precise Buy/Sell breakout labels without any lagging or repainting
Requirements Specification: Debug & Error Fixing: Review the entire source code of the MQL expert advisor. Identify and fix all logical errors, bugs, and performance issues that cause trades to close prematurely or yield extremely low profits. Strategy Restructuring & Optimization: Fully analyze and optimize the current entry and exit strategy for USDJPY and GBPUSD. Modify, upgrade, or completely rewrite the entry
Winter 500+ USD
I am looking for an MQL5 developer to independently review an existing EA’s execution and position management logic. The review should focus on duplicate orders, trade isolation by symbol and magic number, broker price and volume constraints, error handling, and recovery after a terminal restart. This order is for an audit report. Please do not modify the source or change the trading strategy. For each finding
Title: Fully Automatic MT5 Trading Bot (Expert Advisor) with Risk Management I want a fully automated trading robot (Expert Advisor) for MetaTrader 5, written in MQL5. The bot must automatically analyse market data, identify trading opportunities, execute BUY and SELL orders, manage open positions, and close trades according to predefined rules without requiring manual confirmation for each trade. Requirements
The Traffic Rush 250 - 500 USD
Subject: Inquiry: MQL4 Optimization & Refinement for Proprietary Binary Suite (Pine-to-MT4) I am seeking an experienced MQL4 / MetaTrader developer to optimize and finalize a custom binary options trading suite. Project Summary Core Architecture: Multi-pair Regime Scanner (22-pair FX basket monitoring state/score) and a Signal Engine operating on M1 charts. Strategy Sequence: Pre-Alert Dot: Placed on a candle closing
Hello I want some that can help with my strategy signal I have the video that you are going to watch if you know you can help me with kindly do well to bid and let discussed it an urgent project and also if you can not work before you get paid please don bid thanks
Existing EA: NEW_CORE_ORB_M5_v021 | MT5 | XAUUSD M5 Early-stage research prototype, not a new EA from scratch. Need an experienced MQL5 developer to audit, complete, repair, improve and test BOTH independent strategies equally: Opening Range Breakout (ORB) and Scalp. Keep code lightweight and preserve an untouched baseline. No unnecessary rewrite or complex filters. 1. ORB Strategy Verify opening-range construction
i need an expert to develop Bot TO trade using MT5 with a profitable strategy ... work daily with good indicators the price will be negotiable will try the bot first after we can decide
The indicator should identify the high and low of two configurable trading sessions, draw their levels on the chart, and generate reliable breakout alerts. 1. Session Settings Symbol: Current chart symbol (EURUSD for testing). Timeframe: M5. Two independent sessions: Session A: 08:00–10:00 Session B: 13:00–15:00 All times use MT5 broker server time. Start and end times must be configurable. The indicator should

프로젝트 정보

예산
30 - 60 USD