Conversione dell’indicatore Moving Average 3.0 dal software trading TradingView

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #218733 quote
    luxrun
    Participant
    Master

    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 quote
    robertogozzi
    Moderator
    Master

    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):

    length1 = 10
    length2 = 20
    matype  = 0    // 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"
    Nicolas and luxrun thanked this post
    #218840 quote
    luxrun
    Participant
    Master

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

    #218844 quote
    robertogozzi
    Moderator
    Master

    Non hai allegato l’esempio 🙂

    #218859 quote
    luxrun
    Participant
    Master

    Non sono riuscito ad allegare la foto, ci riprovo

    media-espon-3-zero.png media-espon-3-zero.png
    #218861 quote
    luxrun
    Participant
    Master

    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”

    Medie-mobili-3.0-prova.itf
    #218863 quote
    luxrun
    Participant
    Master

    Un altro esempio, con SMA e media sma 3.0

    robertogozzi thanked this post
    immagine_2023-08-09_203123020.png immagine_2023-08-09_203123020.png
    #218890 quote
    robertogozzi
    Moderator
    Master

    In effetti è molto più reattiva!

    luxrun thanked this post
Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Conversione dell’indicatore Moving Average 3.0 dal software trading TradingView


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
luxrun @luxrun Participant
Summary

This topic contains 7 replies,
has 2 voices, and was last updated by robertogozzi
2 years, 6 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 08/08/2023
Status: Active
Attachments: 3 files
Logo Logo
Loading...