Trabalho concluído
Tempo de execução 25 minutos
Comentário do cliente
All as agreed, I am satisfied. Very good developer. Thank you
Comentário do desenvolvedor
Excellent customer. Clear specifications and fast payment. Thank you.
Termos de Referência
I am looking for a developer who will be able to convert an indicator from TradingView into MT4 platform (.mq4), so it can be used also in EA. Some simple EA, just to prove it works is also part of this task.
Name of the indicator in TradingView: SSL Hybrid
Source code:
//@version=4 //By Mihkel00 // This script is designed for the NNFX Method, so it is recommended for Daily charts only. // Tried to implement a few VP NNFX Rules // This script has a SSL / Baseline (you can choose between the SSL or MA), a secondary SSL for continiuation trades and a third SSL for exit trades. // Alerts added for Baseline entries, SSL2 continuations, Exits. // Baseline has a Keltner Channel setting for "in zone" Gray Candles // Added "Candle Size > 1 ATR" Diamonds from my old script with the criteria of being within Baseline ATR range. // Credits // Strategy causecelebre // SSL Channel ErwinBeckers // Moving Averages jiehonglim // Moving Averages everget // "Many Moving Averages" script Fractured study("SSL Hybrid", overlay=true) show_Baseline = input(title="Show Baseline", type=input.bool, defval=true) show_SSL1 = input(title="Show SSL1", type=input.bool, defval=false) show_atr = input(title="Show ATR bands", type=input.bool, defval=true) //ATR atrlen = input(14, "ATR Period") mult = input(1, "ATR Multi", step=0.1) smoothing = input(title="ATR Smoothing", defval="WMA", options=["RMA", "SMA", "EMA", "WMA"]) ma_function(source, atrlen) => if smoothing == "RMA" rma(source, atrlen) else if smoothing == "SMA" sma(source, atrlen) else if smoothing == "EMA" ema(source, atrlen) else wma(source, atrlen) atr_slen = ma_function(tr(true), atrlen) ////ATR Up/Low Bands upper_band = atr_slen * mult + close lower_band = close - atr_slen * mult ////BASELINE / SSL1 / SSL2 / EXIT MOVING AVERAGE VALUES maType = input(title="SSL1 / Baseline Type", type=input.string, defval="HMA", options=["SMA","EMA","DEMA","TEMA","LSMA","WMA","MF","VAMA","TMA","HMA", "JMA", "Kijun v2", "EDSMA","McGinley"]) len = input(title="SSL1 / Baseline Length", defval=60) SSL2Type = input(title="SSL2 / Continuation Type", type=input.string, defval="JMA", options=["SMA","EMA","DEMA","TEMA","WMA","MF","VAMA","TMA","HMA", "JMA","McGinley"]) len2 = input(title="SSL 2 Length", defval=5) // SSL3Type = input(title="EXIT Type", type=input.string, defval="HMA", options=["DEMA","TEMA","LSMA","VAMA","TMA","HMA","JMA", "Kijun v2", "McGinley", "MF"]) len3 = input(title="EXIT Length", defval=15) src = input(title="Source", type=input.source, defval=close) // tema(src, len) => ema1 = ema(src, len) ema2 = ema(ema1, len) ema3 = ema(ema2, len) (3 * ema1) - (3 * ema2) + ema3 kidiv = input(defval=1,maxval=4, title="Kijun MOD Divider") jurik_phase = input(title="* Jurik (JMA) Only - Phase", type=input.integer, defval=3) jurik_power = input(title="* Jurik (JMA) Only - Power", type=input.integer, defval=1) volatility_lookback = input(10, title="* Volatility Adjusted (VAMA) Only - Volatility lookback length") //MF beta = input(0.8,minval=0,maxval=1,step=0.1, title="Modular Filter, General Filter Only - Beta") feedback = input(false, title="Modular Filter Only - Feedback") z = input(0.5,title="Modular Filter Only - Feedback Weighting",step=0.1, minval=0, maxval=1) //EDSMA ssfLength = input(title="EDSMA - Super Smoother Filter Length", type=input.integer, minval=1, defval=20) ssfPoles = input(title="EDSMA - Super Smoother Filter Poles", type=input.integer, defval=2, options=[2, 3]) //---- //EDSMA get2PoleSSF(src, length) => PI = 2 * asin(1) arg = sqrt(2) * PI / length a1 = exp(-arg) b1 = 2 * a1 * cos(arg) c2 = b1 c3 = -pow(a1, 2) c1 = 1 - c2 - c3 ssf = 0.0 ssf := c1 * src + c2 * nz(ssf[1]) + c3 * nz(ssf[2]) get3PoleSSF(src, length) => PI = 2 * asin(1) arg = PI / length a1 = exp(-arg) b1 = 2 * a1 * cos(1.738 * arg) c1 = pow(a1, 2) coef2 = b1 + c1 coef3 = -(c1 + b1 * c1) coef4 = pow(c1, 2) coef1 = 1 - coef2 - coef3 - coef4 ssf = 0.0 ssf := coef1 * src + coef2 * nz(ssf[1]) + coef3 * nz(ssf[2]) + coef4 * nz(ssf[3]) ma(type, src, len) => float result = 0 if type=="TMA" result := sma(sma(src, ceil(len / 2)), floor(len / 2) + 1) if type=="MF" ts=0.,b=0.,c=0.,os=0. //---- alpha = 2/(len+1) a = feedback ? z*src + (1-z)*nz(ts[1],src) : src //---- b := a > alpha*a+(1-alpha)*nz(b[1],a) ? a : alpha*a+(1-alpha)*nz(b[1],a) c := a < alpha*a+(1-alpha)*nz(c[1],a) ? a : alpha*a+(1-alpha)*nz(c[1],a) os := a == b ? 1 : a == c ? 0 : os[1] //---- upper = beta*b+(1-beta)*c lower = beta*c+(1-beta)*b ts := os*upper+(1-os)*lower result := ts if type=="LSMA" result := linreg(src, len, 0) if type=="SMA" // Simple result := sma(src, len) if type=="EMA" // Exponential result := ema(src, len) if type=="DEMA" // Double Exponential e = ema(src, len) result := 2 * e - ema(e, len) if type=="TEMA" // Triple Exponential e = ema(src, len) result := 3 * (e - ema(e, len)) + ema(ema(e, len), len) if type=="WMA" // Weighted result := wma(src, len) if type=="VAMA" // Volatility Adjusted /// Copyright © 2019 to present, Joris Duyck (JD) mid=ema(src,len) dev=src-mid vol_up=highest(dev,volatility_lookback) vol_down=lowest(dev,volatility_lookback) result := mid+avg(vol_up,vol_down) if type=="HMA" // Hull result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) if type=="JMA" // Jurik /// Copyright © 2018 Alex Orekhov (everget) /// Copyright © 2017 Jurik Research and Consulting. phaseRatio = jurik_phase < -100 ? 0.5 : jurik_phase > 100 ? 2.5 : jurik_phase / 100 + 1.5 beta = 0.45 * (len - 1) / (0.45 * (len - 1) + 2) alpha = pow(beta, jurik_power) jma = 0.0 e0 = 0.0 e0 := (1 - alpha) * src + alpha * nz(e0[1]) e1 = 0.0 e1 := (src - e0) * (1 - beta) + beta * nz(e1[1]) e2 = 0.0 e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * pow(1 - alpha, 2) + pow(alpha, 2) * nz(e2[1]) jma := e2 + nz(jma[1]) result := jma if type=="Kijun v2" kijun = avg(lowest(len), highest(len))//, (open + close)/2) conversionLine = avg(lowest(len/kidiv), highest(len/kidiv)) delta = (kijun + conversionLine)/2 result :=delta if type=="McGinley" mg = 0.0 mg := na(mg[1]) ? ema(src, len) : mg[1] + (src - mg[1]) / (len * pow(src/mg[1], 4)) result :=mg if type=="EDSMA" zeros = src - nz(src[2]) avgZeros = (zeros + zeros[1]) / 2 // Ehlers Super Smoother Filter ssf = ssfPoles == 2 ? get2PoleSSF(avgZeros, ssfLength) : get3PoleSSF(avgZeros, ssfLength) // Rescale filter in terms of Standard Deviations stdev = stdev(ssf, len) scaledFilter = stdev != 0 ? ssf / stdev : 0 alpha = 5 * abs(scaledFilter) / len edsma = 0.0 edsma := alpha * src + (1 - alpha) * nz(edsma[1]) result := edsma result ///SSL 1 and SSL2 emaHigh = ma(maType, high, len) emaLow = ma(maType, low, len) maHigh = ma(SSL2Type, high, len2) maLow = ma(SSL2Type, low, len2) ///EXIT ExitHigh = ma(SSL3Type, high, len3) ExitLow = ma(SSL3Type, low, len3) ///Keltner Baseline Channel BBMC = ma(maType, close, len) useTrueRange = input(true) multy = input(0.2, step=0.05, title="Base Channel Multiplier") Keltma = ma(maType, src, len) range = useTrueRange ? tr : high - low rangema = ema(range, len) upperk =Keltma + rangema * multy lowerk = Keltma - rangema * multy //Baseline Violation Candle open_pos = open*1 close_pos = close*1 difference = abs(close_pos-open_pos) atr_violation = difference > atr_slen InRange = upper_band > BBMC and lower_band < BBMC candlesize_violation = atr_violation and InRange plotshape(candlesize_violation, color=color.white, size=size.tiny,style=shape.diamond, location=location.top, transp=0,title="Candle Size > 1xATR") //SSL1 VALUES Hlv = int(na) Hlv := close > emaHigh ? 1 : close < emaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? emaHigh : emaLow //SSL2 VALUES Hlv2 = int(na) Hlv2 := close > maHigh ? 1 : close < maLow ? -1 : Hlv2[1] sslDown2 = Hlv2 < 0 ? maHigh : maLow //EXIT VALUES Hlv3 = int(na) Hlv3 := close > ExitHigh ? 1 : close < ExitLow ? -1 : Hlv3[1] sslExit = Hlv3 < 0 ? ExitHigh : ExitLow base_cross_Long = crossover(close, sslExit) base_cross_Short = crossover(sslExit, close) codiff = base_cross_Long ? 1 : base_cross_Short ? -1 : na //COLORS show_color_bar = input(title="Color Bars", type=input.bool, defval=true) color_bar = close > upperk ? #00c3ff : close < lowerk ? #ff0062 : color.gray color_ssl1 = close > sslDown ? #00c3ff : close < sslDown ? #ff0062 : na //PLOTS plotarrow(codiff, colorup=#00c3ff, colordown=#ff0062,title="Exit Arrows", transp=20, maxheight=20, offset=0) p1 = plot(show_Baseline ? BBMC : na, color=color_bar, linewidth=4,transp=0, title='MA Baseline') DownPlot = plot( show_SSL1 ? sslDown : na, title="SSL1", linewidth=3, color=color_ssl1, transp=10) barcolor(show_color_bar ? color_bar : na) up_channel = plot(show_Baseline ? upperk : na, color=color_bar, title="Baseline Upper Channel") low_channel = plot(show_Baseline ? lowerk : na, color=color_bar, title="Basiline Lower Channel") fill(up_channel, low_channel, color=color_bar, transp=90) ////SSL2 Continiuation from ATR atr_crit = input(0.9, step=0.1, title="Continuation ATR Criteria") upper_half = atr_slen * atr_crit + close lower_half = close - atr_slen * atr_crit buy_inatr = lower_half < sslDown2 sell_inatr = upper_half > sslDown2 sell_cont = close < BBMC and close < sslDown2 buy_cont = close > BBMC and close > sslDown2 sell_atr = sell_inatr and sell_cont buy_atr = buy_inatr and buy_cont atr_fill = buy_atr ? color.green : sell_atr ? color.purple : color.white LongPlot = plot(sslDown2, title="SSL2", linewidth=2, color=atr_fill, style=plot.style_circles, transp=0) u = plot(show_atr ? upper_band : na, "+ATR", color=color.white, transp=80) l = plot(show_atr ? lower_band : na, "-ATR", color=color.white, transp=80) //ALERTS alertcondition(crossover(close, sslDown), title='SSL Cross Alert', message='SSL1 has crossed.') alertcondition(crossover(close, sslDown2), title='SSL2 Cross Alert', message='SSL2 has crossed.') alertcondition(sell_atr, title='Sell Continuation', message='Sell Continuation.') alertcondition(buy_atr, title='Buy Continuation', message='Buy Continuation.') alertcondition(crossover(close, sslExit), title='Exit Sell', message='Exit Sell Alert.') alertcondition(crossover(sslExit, close), title='Exit Buy', message='Exit Buy Alert.') alertcondition(crossover(close, upperk ), title='Baseline Buy Entry', message='Base Buy Alert.') alertcondition(crossover(lowerk, close ), title='Baseline Sell Entry', message='Base Sell Alert.')
Respondido
1
Classificação
Projetos
773
63%
Arbitragem
33
27%
/
45%
Expirado
23
3%
Livre
2
Classificação
Projetos
442
64%
Arbitragem
5
40%
/
0%
Expirado
4
1%
Trabalhando
3
Classificação
Projetos
19
37%
Arbitragem
2
0%
/
100%
Expirado
0
Livre
4
Classificação
Projetos
205
80%
Arbitragem
18
33%
/
44%
Expirado
10
5%
Trabalhando
5
Classificação
Projetos
247
61%
Arbitragem
8
25%
/
38%
Expirado
8
3%
Trabalhando
Pedidos semelhantes
Simple NinjaTrader Robot
60+ USD
Indicator in use: Bollinger Bands Mechanism (See diagrams provided for help) Sells: 1. Trigger candle: When candle low is above the top Bollinger band - accurate to the lowest point scale (e.g. On EURUSD if candle low is 1.07915 and the value of top bollinger is 1.07914 - this is a sell signal; or if on Futures if the increment is .25 or .10 then this is used) 2. Enter sell ONLY on the next candle if price breaks
Simple trading robot
80+ USD
Indicator in use: Bollinger Bands Mechanism: (See diagrams provided for help) Sells: 1. Trigger candle: When candle low is above the top Bollinger band - accurate to the point scale (e.g. On EURUSD if candle low is 1.07915 and the value of top bollinger is 1.07914 - this is a sell signal) 2. Enter sell ONLY on the next candle if price breaks below the trigger candle LOW (using the e.g. above- if next candle price
Mt5 web app license system needed
100 - 500 USD
hey guys, im looking for an auto mt5 license system through a web app i have already, i simply want it so a unique license key is generated for memebers, they input this onto the EA input and then it checks if its valid. active license per user capped at 5. i already have an mt5 coder and dec team for the app so i dont know if youd prefer to intergrate onto the webapp yourself or simply provide the code and doc so my
Create a trade assistant
30 - 60 USD
I need a simple panel to execute both buy and sell operations with very basic things like stopp loss take profit that functions for both market orders such as buy stop sell stop buy limit sell limit I don't care about colors or design I just want how you can do it what interests me most are the functions
I want to create an EA that can take bids according to information of a logic I have developed to give indication of a BUY or SELL opportunity. The EA will then be able to activate the BUY at the lowest possible position once the indicator clears it for a BUY and take bid upwards or identify the highest point and clears it for a SELL and take bids downwards. As you can see from example of JULY 2024 data to see how
We are seeking a skilled developer who can convert a Tradingview indicator written in Pinescript to a NinjaTrader indicator written in C#. The goal is to create a profitable trading strategy using this indicator. The successful candidate will have expertise in both Pinescript and C# programming languages, as well as a strong understanding of trading indicators and strategies. The main responsibilities will include
I am seeking an experienced MQL5 developer to create a user-friendly manual Grid Trading Expert Advisor (EA) with the following key features: Dynamic Grid Trading: Adjustable Grid Distance: Traders can manually input grid distance in pips via an intuitive, movable table. Take Profit Management: Fixed TP for the initial positions (e.g., first 5 trades). Stop-Loss (Optional): Traders can choose to use a stop-loss with
I want have the possibility to increase lotsize not alone by Lot-multiplier rather I want add a fix-lot increase for excample for 0,05 lot. I want have this for buy / sell and hedge-buy and hedge sell
Develop EA to track performance metrics of strategies I would like to develop an EA that will track the performance metrics of the strategies I have running on a terminal, If any of the metrics start to under perform then the EA/Indictor should alert me with a pop up alert that specify's the metric that has triggered the alert. The EA should also display the metrics in a dashboard - please see my example screen shot
RSI Expert modification
30 - 200 USD
I would like to modify the RSI Epert Avisor with a developer. I would like to use the RSI Expert on the inverse mode and the base setting doesnt conatain this strategy mode
Informações sobre o projeto
Orçamento
30+ USD
IVA (21%):
6.3
USD
Total:
36.3
USD
Desenvolvedor
27
USD
Prazo
de 1 para 2 dias