Specification
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
Responded
1
Rating
Projects
572
36%
Arbitration
64
20%
/
58%
Overdue
147
26%
Free
2
Rating
Projects
931
47%
Arbitration
301
59%
/
25%
Overdue
123
13%
Working
3
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
4
Rating
Projects
8
38%
Arbitration
2
0%
/
100%
Overdue
2
25%
Working
5
Rating
Projects
428
63%
Arbitration
5
40%
/
0%
Overdue
4
1%
Working
Similar orders
SMC Trading Bot for MT5
40 - 100 USD
EA for MT5 Bullish Break and Retest: Identify a bullish trend break and retest order block(breaker block). Price breaks above the resistance level of the order block. Price retraces and retests the previous resistance, now acting as support. Trades are triggered when a Doteki Heiken Ashi candle touches an institutional order block, followed by the close of a new bullish Doteki Heiken Ashi candle. Bearish Break and
¡Buscamos Programador Experto en MQL4/MQL5 para Crear un EA Basado en Señales de Indicador! ¿Quiénes somos? Somos un grupo apasionado de traders que buscan optimizar nuestras estrategias de trading mediante la automatización. Utilizamos un indicador avanzado que proporciona señales claras en el gráfico, y ahora queremos llevar nuestro trading al siguiente nivel con un Expert Advisor (EA). ¿Qué necesitamos? Un
Bollinger bands multi timeframe indicator and multipair scanner needed that has a pannel showing all time-frames to indicate Bollinger bands breakout above upper band (bullish signal) and breakout lower band (bearish signal). signal made invalid by close below or above middle bands .Buy and sell signals also made on reentry of price into Bollinger bands from. Break into lower band (buy signal) Break into upper band(
Offer me the best High Accuracy System
30 - 100 USD
Hello, I'm looking for best strategy/Indicator/EA highly accurate. Accuracy about 80-90%.and low drawdown. Profit ratio must be 1:5/1:6/1:8/1:10.Please dont offer hedging and martingle/scalping strategies. I'm looking for something new strategies. Send me your ideas/indicator/EA
TradingView Publish indicator
30 - 35 USD
Hello friends, I need to find someone with successful experience TradingView Publish indicator. I would like to reiterate that you must have experience successfully authorizing many indicators on tradingview. (because I knew how to do it but 1 day later my TradingView account was still locked). Because I need it urgently! Thank you very much
Simlple Custom Indicator
30 - 100 USD
Hi dear all i have easy simple strategy i need to make it on trading View for explain and test it.after conform change it to mql5 to use it in MT4&5 with same copy of trading View and same data.e-maie(Ali-mech88@hotmail.com)
i have an ea that was made about a year ago. it works by creating a pair of buy/sell trades with the same lot size. the ones in profit are closed by psar, the loosing ones are partially closed. so there is always a grid of loosing trades open which creates a blanket of trades just waiting to be harvested by the psar. what i would like is an upper and lower level around 500 pips that follows the price line and closes
Greetings! I am in need of a professional and experienced developer to assist me in enhancing and customizing an existing trading strategy. I have learned this strategy from another source, and I need to make modifications and add unique elements to make it my own. If you have a strong background in developing and customizing trading strategies, I would love to hear from you
Converting an ex4 file to mq4 .I'm looking for good developer who is expert in reverse engineering.like stoploss,Take profit. Trailing,breakeven,news filter and other inputs to be added. Further details will be discussed later
I need a private Pinescript indicator from trading View to be copied 100% for me to be able to play around with. I pay for the indicator access so you will have access to it via my trading view account
Project information
Budget
30 - 60 USD
VAT (21%):
6.3
- 12.6
USD
Total:
36.3
- 72.6
USD
For the developer
27
- 54
USD