Conversione dell’indicatore Moving Average 3.0 dal software trading TradingView

Forums ProRealTime forum Italiano Supporto ProBuilder Conversione dell’indicatore Moving Average 3.0 dal software trading TradingView

Viewing 8 posts - 1 through 8 (of 8 total)
  • #218733

    https://www.tradingview.com/script/is0c2vTu-Moving-Average-3-0-3rd-Generation/
    IFTA journal n. 12, anno 2012

    Sulla pubblicazione IFTA del 2012 ho letto l’articolo sulle Moving Average 3.0, non presenti su Prorealcode, mentre ho trovato un codice su Tradingview che incollo sotto. Si tratta di medie delle medie con vari moltiplicatori che non ho capito bene come è possibile tradurre in linguaggio prorealcode e ho bisogno di un vostro aiuto, quando possibile. Mi sembrano medie mobili interessanti da conoscere e studiare nelle loro applicazione perché riducono il ritardo rispetto a quello delle altre medie mobili, semplice, esponenziale e pesata. Grazie
    Questo è il codice Tradingview:

    //@version=3
    // Copyright (c) 2018-present, Alex Orekhov (everget)
    // Moving Average 3.0 (3rd Generation) script may be freely distributed under the MIT license.
    study(“Moving Average 3.0 (3rd Generation)”, shorttitle=”NMA”, overlay=true)

    length1 = input(title=”1st Length”, type=integer, minval=1, defval=14)
    length2 = input(title=”2nd Length”, type=integer, minval=1, defval=3)
    maInput = input(title=”MA Type”, defval=”EMA”, options=[“EMA”, “SMA”, “VWMA”, “WMA”])
    src = input(title=”Source”, type=source, defval=close)

    getMA(src, length) =>
    ma = 0.0

    if maInput == “EMA”
    ma := ema(src, length)

    if maInput == “SMA”
    ma := sma(src, length)

    if maInput == “VWMA”
    ma := vwma(src, length)

    if maInput == “WMA”
    ma := wma(src, length)
    ma

    getNMA(src, length1, length2) =>
    lambda = length1 / length2
    alpha = lambda * (length1 – 1) / (length1 – lambda)

    ma1 = getMA(src, length1)
    ma2 = getMA(ma1, length2)

    nma = (1 + alpha) * ma1 – alpha * ma2

    nma = getNMA(src, length1, length2)

    plot(nma, title=”NMA”, linewidth=2, color=#6d1e7f, transp=0)

    #218804

    Credo questa sia una conversione corretta (non ho messo la scelta del tipo di media, basta  che cambi il valore della riga 3, tra 0 e 8):

     

    2 users thanked author for this post.
    #218840

    Perfetta la tua codifica, Roberto! Grazie, allego un esempio di utilizzo con parametri e tipo media cambiato.

    #218844

    Non hai allegato l’esempio 🙂

     

    #218859

    Non sono riuscito ad allegare la foto, ci riprovo

    #218861

    Sto rileggendo l’articolo, oltre a fare delle altre prove per i settaggi dei periodi tra le medie normali e quelle 3.0. Ho cambiato anche un pò il codice per avere la possibilità di cambiare periodi e medie direttamente. Ecco il codice:

    // conversione da Tradingview modificata il (9/8/2023)

     

    length1 = corta

    length2 = lunga

    mediatrezero  = matype    // https://www.prorealcode.com/documentation/average/

    src     = CustomClose

    //

    lambda  = length1 / length2

    alpha   = lambda * (length1 – 1) / (length1 – lambda)

    //

    ma1     = average[length1,matype](src)

    ma2     = average[length2,matype](ma1)

    nma     = (1 + alpha) * ma1 – alpha * ma2

    //

    RETURN nma AS “Moving Average 3.0”

    #218863

    Un altro esempio, con SMA e media sma 3.0

    1 user thanked author for this post.
    #218890

    In effetti è molto più reattiva!

     

    1 user thanked author for this post.
Viewing 8 posts - 1 through 8 (of 8 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login