Can you convert pinescript to ninjatrader8?

MQL5 Experten

Spezifikation

Pinescript file 


//@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.')

give me your ninjatrander 4 portfolio link I might hire you



Dateien:

Bewerbungen

1
Entwickler 1
Bewertung
(94)
Projekte
190
66%
Schlichtung
8
25% / 50%
Frist nicht eingehalten
2
1%
Frei
2
Entwickler 2
Bewertung
(38)
Projekte
50
10%
Schlichtung
1
0% / 0%
Frist nicht eingehalten
8
16%
Frei
3
Entwickler 3
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
4
Entwickler 4
Bewertung
(242)
Projekte
271
65%
Schlichtung
6
17% / 33%
Frist nicht eingehalten
8
3%
Beschäftigt
5
Entwickler 5
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
Ähnliche Aufträge
Need to convert Thinkorswim strategies, indicators, or custom scripts to NinjaTrader. Offering seamless migration and functionality optimization to ensure your trading systems perform effectively on NinjaTrader. Fast delivery and reliable service
Hello The EA will work on particular zone choose by the user and can mark it on any TF and with some rules can open trades and mange the trade by some unique rules. the EA need to check the difference by RSI as well and with some extra rules . developer should have good attitude and good communication (englsih) with high performence and knowledge with coding EA
I would like to know if you can turn this indicator to ninjatrader and also help us backtest with 3/4 MNQ entries to find a good strategy and an automated strategy with the indicator. script/WhBzgfDu-Machine- Learning-Lorentzian- Classification/ 1. Convert the Machine Learning Lorentzian Classification indicator to NinjaTrader. 2. Backtest the indicator using: - 4 MNQ contracts per trade - Entry signals from the
the ea will be devellope by my dev , a dashboard that sumerise strategy property's and gives a lot of value on how the different magic are performing etc etc please do not apply as i only gonna take my own develloper for that project
Formal Software Request Software Title: High-Performance Automated Trading System Requestor: 80485848 Date: 19 August 2024 1. Introduction We seek a sophisticated automated trading system capable of executing trades across Forex, Gold, and Cryptocurrency markets. The primary objective is to achieve a high win rate while operating autonomously. 2. Core Requirements Win Rate: The system must demonstrate a
Bling Ultimate Sniper Robot Rules the robot should have - 1. Automatic stop loss, take profit and the stop loss should trail with an approach to Tp. 2. Always risk 10% of my account on every trade, with a 1:5 risk reward ratio. 3. The bot should have Mobile, IOS and Mac and Laptop versions. 4. The bot should trade indexes such XAU/USD, GBP/USD, US TECH (Nasdaq), EUR/USD, US30, BTC/USD and GBP/USD. 5. This is robot
Pinescript to MQL5 100 - 200 USD
READ IT URGENT, i need to complete this job in 1-2 day so APPLY it only if can do it, if some requirement is not clear tell me, im here, please be careful, i need this in 1-2 days, if you are not sure, not apply it, i dont want leave BAD FEEDBACKS please
Create hedging grid EA with my own logic. Add a Moving Avarage Filter. 2 engine with same logic. Sl TP by $ amount. Add Profit loss Dashboard Virtual all trade close Button
Hi There, my name is Jordan and I’m based in Australia. I’m looking to get an EA developed through freelance work and I’ve outlined some rough details of the intended EA, which is a similar concept to an existing EA by Andrii Hurin called “Time Range Sweep EA”. There are quite a lot of similarities to the reference EA and these include: · Trade on any market and instrument or on several pairs at the same time
Hello, Looking to create an arbitrage EA for MT5. The EA will run on two local MT5 instances (ex. 2 different accounts) and keep track of a certain pair price every 10 seconds. The EA will send data from instance #1 to instance #2 and vice versa. The EA will execute trades on the two accounts if a set of conditions are met. Apply if you have the experience and knowledge

Projektdetails

Budget
100 - 150 USD
Für die Entwickler
90 - 135 USD