CONVERSION INDICADOR TRADINGVIEW

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #232783 quote
    Fr7
    Participant
    Master

    Solicito, si es posible, convertir el indicador adjunto:

    Aprendizaje automático: clasificación lorentziana

    Un clasificador de distancia de Lorentz (LDC) es un algoritmo de clasificación de aprendizaje automático capaz de categorizar datos históricos de un espacio de características multidimensional. Este indicador demuestra cómo la clasificación de Lorentz también se puede utilizar para predecir la dirección de futuros movimientos de precios cuando se utiliza como métrica de distancia para una implementación novedosa de un algoritmo de vecinos más cercanos aproximados (ANN).

    https://es.tradingview.com/script/WhBzgfDu-Machine-Learning-Lorentzian-Classification/

    Este indicador me tiene maravillado y sería de gran ayuda para la comunidad empezar a ver en PROREALTIME indicadores de aprendizaje automático. Es un indicador muy complejo para traducir y espero que sea factible su traducción.

    A ver si Iván el moderador lo puede traducir.
    Muchas gracias.

    #232902 quote
    Iván González
    Moderator
    Master

    Veo complicada la traducción… intentaré sacarlo de todas formas.

    #234992 quote
    Iván González
    Moderator
    Master

    Empieza a coger forma:

    defparam calculateonlastbars = 1000
    neighborsCount = 8  // Número de vecinos a considerar
    maxBarsBack = 700  // Máximo número de barras hacia atrás
    featureCount = 5  // Número de características
    
    useEmaFilter=0
    emaPeriod=700
    useSmaFilter=0
    smaPeriod=200
    
    useKernelFilter=1
    hh=8 //Lookback Window
    r=8 //Relative Weighting
    x=25 //Regression level
    lag=2 //Lag
    
    //----------------------------------------------------------------//
    //----Next Bar Classification-------------------------------------//
    src=close
    directionShort = -1
    directionLong = 1
    directionNeutral = 0
    
    if src[4]<src[0] then
    yTrainSeries=directionShort
    elsif src[4]>src[0] then
    yTrainSeries=directionLong
    else
    yTrainSeries=directionNeutral
    endif
    //----------------------------------------------------------------//
    //----Core ML logic-----------------------------------------------//
    lastDistance=-1
    size=min(maxBarsBack-1,barindex-1)
    sizeloop=min(maxBarsBack-1,size)
    
    f1 = RSI[14]
    
    ap=(high+low+close)/3
    esa=average[10,1](ap)
    d1=average[10,1](abs(ap-esa))
    ci=(ap-esa)/(0.015*d1)
    
    f2=average[11,1](ci)
    f3 = CCI[20]
    f4 = ADX[20]
    f5 =RSI[9]
    
    if barindex >= maxBarsBack then
    $distances[0]=0
    $predictions[0]=0
    n=0
    for i=0 to sizeloop do
    d = LOG(1+ABS(f1[i]-f1))+LOG(1+ABS(f2[i]-f2))+LOG(1+ABS(f3[i]-f3))+LOG(1+ABS(f4[i]-f4))+LOG(1+ABS(f5[i]-f5))
    if d >= lastdistance and i MOD 4 = 0 THEN
    lastdistance=d
    $distances[n+1]=d
    $predictions[n+1]=round(yTrainSeries[i])
    n=n+1
    IF n > neighborsCount THEN
    lastDistance = $distances[round(neighborsCount * 3 / 4)]
    $predictions[n]=0
    $distances[n]=0
    endif
    endif
    next
    prediction=0
    for j=n downto 0 do
    prediction=prediction+$predictions[j]
    next
    endif
    //----------------------------------------------------------------//
    //-----Prediction Filters-----------------------------------------//
    //-----Ema Trend filter
    if useEmaFilter then
    isEmaUptrend=close>average[emaPeriod,1](close)
    isEmaDowntrend=close<average[emaPeriod,1](close)
    else
    isEmaUptrend=1
    isEmaDowntrend=1
    endif
    //-----Sma Trend filter
    if useSmaFilter then
    isSmaUptrend=close>average[smaPeriod,0](close)
    isSmaDowntrend=close<average[smaPeriod,0](close)
    else
    isSmaUptrend=1
    isSmaDowntrend=1
    endif
    
    if prediction>0 then
    signal=1
    elsif prediction<0 then
    signal=-1
    else
    signal=signal
    endif
    
    //-----Bar-Count Filter
    if signal<>signal[1] then
    barsHeld=0
    else
    barsHeld=barsHeld+1
    endif
    isHeldFourBars=barsHeld=4
    isHeldLessThanFourBars=BarsHeld>0 and BarsHeld<4
    
    //-----Fractal Filters
    isDifferentSignalType=signal<>signal[1]
    isEarlySignalFlip=signal<>signal[1] and (isDifferentSignalType[1] or isDifferentSignalType[2] or isDifferentSignalType[3])
    isBuySignal= signal=1 and isEmaUpTrend and isSmaUptrend
    isSellSignal= signal=-1 and isEmadownTrend and isSmaDownTrend
    isNewBuySignal=isDifferentSignalType and isBuySignal
    isNewSellSignal=isDifferentSignalType and isSellSignal
    
    //-----Kernel Regression Filter
    //Nadaraya-Watson Envelope
    hh=8 //Lookback Window
    r=8 //Relative Weighting
    x=25 //Regression level
    lag=2 //Lag
    
    currentWeight=0
    cumulativeWeight=0
            
    for i = 0 to hh+x do
    y=src[i]
    w = pow(1+(pow(i,2)/(pow(hh,2)*2*r)),-r)
    currentWeight = currentWeight+y*w
    cumulativeWeight = cumulativeWeight+w
    next
    yhat1 = currentWeight/cumulativeWeight
    isBullish = yhat1>yhat1[1]
    isBearish = yhat1<yhat1[1]
    if isBullish then
    r=0
    g=255
    b=255
    elsif isBearish then
    r=255
    g=51
    b=255
    endif
    //-----Entry Conditions
    startLongTrade=isNewBuysignal and isBullish and isEmaUpTrend and isSmaUpTrend
    startShortTrade=isNewSellSignal and isBearish and isEmaDowntrend and isSmaDownTrend
    
    maxPrediction=highest[300](prediction)
    ratmax=round(255/maxPrediction)
    transparencymax=prediction*ratmax
    
    minPrediction=lowest[300](prediction)
    ratmin=round(255/minPrediction)
    transparencymin=prediction*ratmin
    
    if startLongTrade then
    drawarrowUp(barindex,low-range)coloured(102,255,102,transparencymax)
    drawtext("#prediction#",barindex,low-1.5*range)coloured(102,255,102)
    elsif startShortTrade then
    drawarrowdown(barindex,high+range)coloured("red",transparencymin)
    drawtext("#prediction#",barindex,high+1.5*range)coloured("red")
    endif
    
    return yhat1 as "Kernel Regression Estimate"style(line,2)coloured(r,g,b)
    jesus1975, Fr7, oliTR and Pedro.lopez thanked this post
    #235002 quote
    jesus1975
    Participant
    Veteran

    Muy interesante,gracias Iván

    #235020 quote
    supertiti
    Participant
    Master

    Hola Ivan

    gran trabajo como siempre, por lo tanto faltan las flechas ? que me dices

    gracias y buenas tardes.

    #235021 quote
    Iván González
    Moderator
    Master

    Buenas!

    Las flechas están, lo que ocurre es que aparecen más que en el código orignal. Falta filtrar.
    Si te fijas en el color de las flechas, verás que la intesidad cambia en función de la predicción.
    Cuando hay una mayor puntuación en la predicción hay mayor intensidad en el color de las flechas.
    En las primeras señales, al no haber con quién comparar, la intensidad es máxima pero a partir de varias predicciones ya se nota que la intensidad del color varía en cada flecha.

    Tengo que terminar de depurarlo un poco más.

    #235026 quote
    supertiti
    Participant
    Master

    cual es el valor de tu ejemplo para comparar con lo que tengo ? a mi no me aparece nada , tengo el fondo negro eso puede ser un problema?

    #235040 quote
    Iván González
    Moderator
    Master

    Buenas! no lo recuerdo 🙁
    De todas formas seguro que es porque tienes cargadas 200 barras. Si cargas 1000 ya verás las flechas.
    En el código pide 700 barras para comenzar a calcular. Esto se puede modificar.

    #235050 quote
    supertiti
    Participant
    Master

    Hola Ivan,

    He cargado maxbarsback = 1000 y ne me funciona el codigo con les flechas ?

    Aui te pongo 4 valors

    un saludo.

    #235055 quote
    Iván González
    Moderator
    Master

    No sé qué decirte… A mi sí que me aparecen…

    #235059 quote
    jesus1975
    Participant
    Veteran

    las unidades en tu gráfico deben ser más de 1000, y si todavía no te salen pon más, hasta q te salgan

    #235062 quote
    supertiti
    Participant
    Master

    Ya lo tengo, que tonto soy ! tengo el grafico con 75 dias , lo he puesto con 1000 y funciona perfectamente

    muchas gracias y buen dia.

    adjunto ASML con flechas

    #235106 quote
    supertiti
    Participant
    Master

    Una imagen de Ivan el terrible |

    #235126 quote
    Fr7
    Participant
    Master

    Muchas gracias Iván !!Estaba seguro de que sólo un crack como tú lo podía conseguir!!Pensaba que era imposible la traducción por su dificultad…y dos meses después lo has conseguido!!          Espero que valga de inspiración y sea útil a otros usuarios. Y si a alguien se le ocurre cómo mejorarlo, se agradece. Yo voy a probarlo y testearlo a ver qué tal……..                                                                Ojalá que poco a poco se vayan incorporando más indicadores en PRT basados en aprendizaje automático.

    #235165 quote
    supertiti
    Participant
    Master

     

    Hola todos

    para los amantes de los proyectores aqui teneis 2 screeners Up and down

    un saludo

    Iván González thanked this post
Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.

CONVERSION INDICADOR TRADINGVIEW


Soporte ProBuilder

New Reply
Author
author-avatar
Fr7 @fr7 Participant
Summary

This topic contains 18 replies,
has 6 voices, and was last updated by Pedro.lopez
1 week ago.

Topic Details
Forum: Soporte ProBuilder
Language: Spanish
Started: 05/18/2024
Status: Active
Attachments: 12 files
Logo Logo
Loading...