指定
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
評価
プロジェクト
596
35%
仲裁
64
20%
/
58%
期限切れ
147
25%
仕事中
パブリッシュした人: 1 article, 22 codes
2
評価
プロジェクト
945
47%
仲裁
309
58%
/
27%
期限切れ
125
13%
暇
3
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
4
評価
プロジェクト
9
33%
仲裁
11
0%
/
100%
期限切れ
2
22%
暇
5
評価
プロジェクト
499
67%
仲裁
5
40%
/
0%
期限切れ
4
1%
暇
パブリッシュした人: 8 codes
類似した注文
Ninjatrader strategy for mnq
30+ USD
Do you happen to have a profitable strategy for MNQ? it is urgent if any one can help me with this i will be happy to discuss with you and move forward to pay for it kindly let me know the amount thank fill free to bid
EA developer with stregegy builder required
50 - 100 USD
Looking for an experienced MQL5 developer to design and develop a custom Expert Advisor (EA) for MetaTrader 5. The purpose of this EA is not just automated trading, but also to help me better structure, test, and refine my personal trading strategy
I am looking for a developer to build a robust MetaTrader 5 Expert Advisor for Gold (XAUUSD) scalping on the M5 timeframe. The EA must be optimized for small accounts ($200 - $1,000). Technical Requirements: Primary Strategy: Mean Reversion using Bollinger Bands (20, 2.0) and RSI (14). Buy: Price closes below lower band + RSI < 30 + Trend Filter. Sell: Price closes above upper band + RSI > 70 + Trend Filter. Trend
Olá amigos possuo um indicador que não tem o código fonte mas tenho a licença para usar esse indicador que está me trazendo bons resultados no meu operacional desejo automatizar as suas entradas através de um robô funciona mais ou menos da seguinte forma o indicador gera um sinal de compra ou venda e também gera um nível de take profit stop loss.O robô deve fazer a leitura dos sinais e definir TP e SL nos mesmos
An additional indicator signal will be added to the existing EA. The existing mechanical system will NEVER be changed. I will send you the necessary documents and codes. I will send you the necessary documents and codes. thank you
Need MT5 Expert Advisor base on my strategy XAUUSD Fast scalping, Grid , Martingale, TP, SL trailing buy sell both also add magic number fully atumated advance strategy Pro version 24 hours running trades close in profit directly open new trade
Freeallfree
400 - 800 USD
Professional MT5 EA – XAUUSD I need a professional Expert Advisor for MT5 (MQL5) to trade XAUUSD only. This is not a random scalping bot. The EA must trade only high-probability liquidity breakouts during active sessions and avoid ranging or low-volatility markets. Symbol: XAUUSD Timeframe: M15 (optional H1 confirmation) Session filter (Dubai GMT+4): Trade only London and New York sessions Adjustable session times No
EURUSD Day scalping
30+ USD
Hi Developers, I am looking for a EA based on EURUSD where EA is taking multiple trades in a day with small profits in each trade. Looking for some EA based on HFT trading, scalping
Fix and Add risk management all
50 - 300 USD
My EA has serious problems and needs full improvement and optimization. Problems: No Stop Loss and Take Profit No risk management system High drawdown and losses Opens multiple trades at same entry (overtrading) No maximum trades per day limit No maximum open trades per symbol No trailing stop Poor entry logic and weak signals Trades open very late (after many days) No equity protection system No daily loss limit No
Aggressive gold EA bot
30 - 50 USD
i need a trading bot that can make 100% profit in 1 day. with capital less than $200 i know this is risky but am willing to take the risk. ea has to be backtestable and also i will test for just 5 random days to make sure it works. and make a purchase if am satisfied with the 5days results. send back test results for me to consider and reply
プロジェクト情報
予算
30 - 60 USD