Sayfa 13/13 İlkİlk ... 3111213
Arama sonucu : 104 madde; 97 - 104 arası.

Konu: Tradingview veri terminalinde İndikatör/Strateji/Sistem

  1. Şubat 2024'de en çok okunan 3 yazı Eğer gözden kaçırdıysanız, bu üç içeriği açıklamalarda.

    1- TradingView Topluluğunun En Popüler İndikatörü: 86,905 Kişinin Favorisi Squeeze Momentum İndikatörünün nasıl kullanıldığını 2 adımda öğrenin.

    2- Bitcoin NVT Golden Cross Verisi Potansiyel Bir Düzeltmeye İşaret Ediyor: NVT GC'de 2.2 Puan Neden Önemli?

    3- TradingView’de hangi 2 metrik/gösterge ile yatırım stratejinizi geliştirebilirsiniz (ücretsiz)?


    TradingView Topluluğunun En Popüler İndikatörü: 86,905 Kişinin Favorisi Squeeze Momentum İndikatörünün nasıl kullanıldığını 2 adımda öğrenin.

    TradingView “Wizardâ€larından LazyBear’in kodladığı Squueze Momentum İndikatörü trend dönüşümlerini yakalamak için oldukça başarılı bir araç.

    İndikatör Ekleme




    TradingView’in en popüler indikatörüne erişmek düşündüğünüzden daha kolay.


    Trend Dönüşümlerini Yakalamak

    Her hangi bir enstrümanın süper grafiğini açın. Ardından “göstergeler†menüsüne tıklayın ve “topluluk komut dosyalarını†seçin. Karşısına çıkan ekranda “en iyi†menüsüne tıklayın. İlk sırada yer alan “Squeeze Momentum Indicatorâ€u seçin. Hepsi bu.




    Bu indikatör, John Carter'ın "Mastering The Trade" kitabının 11. bölümünde tartışılan "TTM Sıkışma" volatilite göstergesinin bir türevidir.

    Orta çizgideki siyah çarpılar, piyasanın bir sıkışmaya (Bollinger Bantları Keltner Kanalı içinde) yeni girdiğini gösterir. Bu, düşük volatiliteyi ve piyasanın patlayıcı bir harekete (yukarı veya aşağı) hazırlandığını işaret eder. Bu da bize bir trend dönüşümünün yakında olduğuna işaret eder.

    SONUÇ

    John Carter, kitabında siyah çarpıdan sonraki ilk gri çarpıya kadar beklemeyi ve momentumun yönünde pozisyon almayı önerir (örneğin, momentum değeri sıfırdan yüksekse, uzun pozisyon alın).

    Momentum değiştiğinde (artış veya azalış - renk değişimine göre) pozisyondan çıkın.

    Yazarın sınırlı deneyimine göre, iyi giriş noktalarını kaçırmamak için ADX/WaveTrend gibi ek bir göstergeye ihtiyaç vardır. John Carter basit bir momentum göstergesi kullanırken, LazyBear histogramı çizmek için farklı bir yöntem (linreg tabanlı) kullanmıştır.

  2.  Alıntı Originally Posted by rosense Yazıyı Oku
    Şubat 2024'de en çok okunan 3 yazı Eğer gözden kaçırdıysanız, bu üç içeriği açıklamalarda.

    1- TradingView Topluluğunun En Popüler İndikatörü: 86,905 Kişinin Favorisi Squeeze Momentum İndikatörünün nasıl kullanıldığını 2 adımda öğrenin.

    2- Bitcoin NVT Golden Cross Verisi Potansiyel Bir Düzeltmeye İşaret Ediyor: NVT GC'de 2.2 Puan Neden Önemli?

    3- TradingView’de hangi 2 metrik/gösterge ile yatırım stratejinizi geliştirebilirsiniz (ücretsiz)?


    TradingView Topluluğunun En Popüler İndikatörü: 86,905 Kişinin Favorisi Squeeze Momentum İndikatörünün nasıl kullanıldığını 2 adımda öğrenin.

    TradingView “Wizardâ€larından LazyBear’in kodladığı Squueze Momentum İndikatörü trend dönüşümlerini yakalamak için oldukça başarılı bir araç.

    İndikatör Ekleme




    TradingView’in en popüler indikatörüne erişmek düşündüğünüzden daha kolay.


    Trend Dönüşümlerini Yakalamak

    Her hangi bir enstrümanın süper grafiğini açın. Ardından “göstergeler†menüsüne tıklayın ve “topluluk komut dosyalarını†seçin. Karşısına çıkan ekranda “en iyi†menüsüne tıklayın. İlk sırada yer alan “Squeeze Momentum Indicatorâ€u seçin. Hepsi bu.




    Bu indikatör, John Carter'ın "Mastering The Trade" kitabının 11. bölümünde tartışılan "TTM Sıkışma" volatilite göstergesinin bir türevidir.

    Orta çizgideki siyah çarpılar, piyasanın bir sıkışmaya (Bollinger Bantları Keltner Kanalı içinde) yeni girdiğini gösterir. Bu, düşük volatiliteyi ve piyasanın patlayıcı bir harekete (yukarı veya aşağı) hazırlandığını işaret eder. Bu da bize bir trend dönüşümünün yakında olduğuna işaret eder.

    SONUÇ

    John Carter, kitabında siyah çarpıdan sonraki ilk gri çarpıya kadar beklemeyi ve momentumun yönünde pozisyon almayı önerir (örneğin, momentum değeri sıfırdan yüksekse, uzun pozisyon alın).

    Momentum değiştiğinde (artış veya azalış - renk değişimine göre) pozisyondan çıkın.

    Yazarın sınırlı deneyimine göre, iyi giriş noktalarını kaçırmamak için ADX/WaveTrend gibi ek bir göstergeye ihtiyaç vardır. John Carter basit bir momentum göstergesi kullanırken, LazyBear histogramı çizmek için farklı bir yöntem (linreg tabanlı) kullanmıştır.
    Abi... Naçizane fikrim:
    Anlamadığın bir şeyi anlatamazsın.

    Yeni çağın en büyük sıkıntısı, veri-bilgi çöplüğü...
    Her bulduğunu yapıştırarak ne kendine, ne de okuyanlara bir yararın olacağını sanmıyorum.
    "Bu dediklerini uygulayabilecek insanlar" zaten bu veriye kendileri de erişebilirler.

    "Her bulduğunu her yere yapıştırarak insanlara bir yararın oluyor mu sence?"
    Buldukların üzerinde düşünsen, özümzesen, katılım ve katkı sağlasan...

    Hem sana, hem de okuyanlara daha yararlı olmaz mı?
    Sevgiler, selamlar.

  3.  Alıntı Originally Posted by ASAP_ Yazıyı Oku
    Abi... Naçizane fikrim: Anlamadığın bir şeyi anlatamazsın.
    Yeni çağın en büyük sıkıntısı, veri-bilgi çöplüğü...
    Her bulduğunu yapıştırarak ne kendine, ne de okuyanlara bir yararın olacağını sanmıyorum.
    "Bu dediklerini uygulayabilecek insanlar" zaten bu veriye kendileri de erişebilirler.
    "Her bulduğunu her yere yapıştırarak insanlara bir yararın oluyor mu sence?"Buldukların üzerinde düşünsen, özümzesen, katılım ve katkı sağlasan...
    Hem sana, hem de okuyanlara daha yararlı olmaz mı?
    Sevgiler, selamlar.
    Görüşüne saygı duyuyorum.
    bir nevi ARŞİV gibi
    ben mi yanlış yere yazıyorum diye tekrar baktım topiğin ismi; Tradingview veri terminal İndikatör/Strateji/Sistem üzerine açılmış

    Çok güzel destek dirençleri otamatik bulutyormuş








    PHP Code:
    //@version=5

    indicator('Structured zigzag support&resistance [LM]'shorttitle='Structured zigzag S/R [LM]'overlay=truemax_bars_back=500max_lines_count 500max_boxes_count 500max_labels_count 500)

    var 
    HIGH 1LOW = -1
    var BOXES 'boxes'LINES 'lines'

    i_horizontalType            input.string(LINES'Horizontal type'options=[LINESBOXES], group='current S/R setting')   
    i_firstDepth                input.int(34'Depth'group='current S/R setting')
    i_firstDeviation            input.float(6.0'Deviation'group='current S/R setting')
    i_firstColor                input.color(color.blue'Color'group='current S/R setting')
    i_extendLines               input.bool(true'Extend lines'group='current S/R setting')
    i_lineCount                 input.int(6'Line count'group='current S/R setting')
    i_boxHighColor              input.color(color.green'Diagonal high color'group='diagonal line setting'inline='15')
    i_boxLowColor               input.color(color.red'Diagonal low color'group='diagonal line setting'inline='15')

    i_diagonalThickness         input.int(1'Line thickness'minval=1group='diagonal line setting'inline='12')
    i_diagonalLineStyle         input.string(line.style_dashed'Line style'options=[line.style_dottedline.style_solidline.style_dashed], group='diagonal line setting'inline='12')
    i_diagonalColor             input.color(color.gray'Diagonal color'group='diagonal line setting'inline='13')
    i_zigzagCount               input.int(200'Zigzag count'group='diagonal line setting'inline='14')
    i_diagonalHighColor         input.color(color.green'Diagonal high color'group='diagonal line setting'inline='15')
    i_diagonalLowColor          input.color(color.red'Diagonal low color'group='diagonal line setting'inline='15')
    i_diagonalSRLineCount       input.int(2'Diagonal S/R line count'group='diagonal line setting'inline='16')
    i_showDiagonalSRLines       input.bool(true'Show diagonal S/R lines'group='diagonal line setting'inline='16')

    var 
    zigZagArray = array.new_line()
    var 
    zigZagBoxArray = array.new_box()
    var 
    zigZagLabelArray = array.new_label()
    var 
    diagonalArray = array.new_line()
    var 
    diagonalSRArray = array.new_line()
    var 
    diagonalLabelArray = array.new_label()

    var 
    valueArray = array.new_float()
    var 
    typeArray = array.new_int()
    var 
    indexArray = array.new_int()

    f_isUpCandle(_index) =>
        
    open[_index] <= close[_index]
        
    f_drawDiagonalLine(_x1_x2_y1_y2_lineColor_lineThickness_lineStyle_extend) =>
        
    line.new(x1=_x1y1=_y1x2=_x2y2=_y2color=_lineColorstyle=_lineStylewidth=_lineThicknessextend=_extend
        
    f_drawDiagonalLabel(_xValue_yValue_text_labelColor_down) =>
        
    adjustedYPosition _down _yValue 1.005_yValue 0.995
        dlb 
    label.new(_xValueadjustedYPosition _textxloc.bar_indexyloc.price#00000000, label.style_none, _labelColor)
        
    if array.size(diagonalLabelArray) == i_zigzagCount
            label
    .delete(array.shift(diagonalLabelArray))
        array.
    push(diagonalLabelArraydlb)
        
    f_createDiagonalLabelText(_yValue) =>
        
    index = array.size(valueArray) - 3
        
    if (index >= 0)
            
    previousType = array.get(typeArrayindex)
            
    previousValue =  array.get(valueArrayindex)
            
    previousType == HIGH ?
              
    previousValue <= _yValue 'HH'"LH" :
              
    previousValue <= _yValue 'HL'"LL"
        
    else
            
    ''

    f_drawDiagonalLines(_x1_x2_y1_y2_lineColor_lineThickness_lineStyle_lineCount_lineArray_extend) =>
        
    line l f_drawDiagonalLine(_x1_x2_y1_y2_lineColor_lineThickness_lineStyle_extend)

        if array.
    size(_lineArray) == _lineCount
            line
    .delete(array.shift(_lineArray))
        array.
    push(_lineArrayl)
        
    f_addValuesToArrays(_barIndex_yValue_type) =>
        if array.
    size(valueArray) == i_zigzagCount
            
    array.shift(valueArray)
            array.
    shift(indexArray)
            array.
    shift(typeArray)
            
        array.
    push(valueArray_yValue)
        array.
    push(indexArray_barIndex)
        array.
    push(typeArray_type)
        

    f_getLastZigzag() =>
        
    int size = array.size(valueArray) - 1
        x1 
    = array.get(indexArraysize)
        
    y1 = array.get(valueArraysize)
        
    type = array.get(typeArraysize)
        [
    x1y1type]
        


    f_addDiagonalLine(_x2_y2) =>
        
    hasAtleastOnerecord = array.size(valueArray) >= 1
        
    if (hasAtleastOnerecord)
            [
    x1y1type] = f_getLastZigzag()
            
    f_drawDiagonalLines(x1_x2y1_y2i_diagonalColori_diagonalThicknessi_diagonalLineStylei_zigzagCountdiagonalArrayextend.none)
            
    f_drawDiagonalSRLine(_xValue_yValue) =>
        
    index = array.size(valueArray) - 2
        
    if (i_showDiagonalSRLines and index >= 0)
            
    previousType = array.get(typeArrayindex)
            
    previousValue =  array.get(valueArrayindex)
            
    previousXValue =  array.get(indexArrayindex)
            
    diagonalSRColor =previousType == HIGH i_diagonalHighColori_diagonalLowColor
            f_drawDiagonalLines
    (previousXValue_xValuepreviousValue_yValuediagonalSRColori_diagonalThicknessi_diagonalLineStylei_diagonalSRLineCountdiagonalSRArrayextend.right)


    f_zigzag(_depth_deviation) =>
        var 
    lw 1
        
    var hg 1
        lw 
    := lw 1
        hg 
    := hg 1
        lowestValue 
    = -ta.lowestbars(_depth)
        
    highestValue = -ta.highestbars(_depth)
        
    lowing lw == lowestValue or low low[lowestValue] > _deviation syminfo.mintick
        highing 
    hg == highestValue or high[highestValue] - high _deviation syminfo.mintick
        lh 
    ta.barssince(not highing)
        
    ll ta.barssince(not lowing)
        
    down lh ll
        lower 
    low[lw] > low[lowestValue]
        
    higher high[hg] < high[highestValue]
        if 
    lw != lowestValue and (not down[1] or lower)
            
    lw := lowestValue hg lowestValue 0
            lw
        
    if hg != highestValue and (down[1] or higher)
            
    hg := highestValue lw highestValue 0
            hg
        x1 
    down lw hg
        y1 
    down low[lw] : high[hg]
        
    lb down label.style_label_up label.style_label_down
        
    [down != down[1], x1y1lwhgdown]


    f_drawLine(_x1_x2_yValue_lineColor) =>
        
    line.new(x1=_x1y1=_yValuex2=_x2y2=_yValuecolor=_lineColorstyle=line.style_dottedwidth=2)
        
    f_drawBox(_x1_x2_high_low_boxColor) =>
         
    box.new(_x1_high_x2_lowbgcolor=_boxColorborder_style=line.style_dashedborder_color=_boxColor)

    f_drawLabelCurrent(_x_y_textColor) =>
        
    label.new(_x_y'         ' str.tostring(_y), xloc.bar_indexyloc.price#00000000, label.style_none, _textColor)

    f_drawLabel(_yValue_xValue_labelColor_text_showLabels) =>
        var 
    label lb na
        label
    .delete(lb)

        if 
    _showLabels and not na(_yValue)
            
    lb := label.new(x=_xValuey=_yValuetext=_texttextcolor=_labelColorstyle=label.style_nonexloc=xloc.bar_timeyloc=yloc.price)
            
    lb
        lb

    f_extendArray
    (_lineArray_labelArray_extendLines) =>
        if array.
    size(_lineArray) > 0
            
    for _i = array.size(_lineArray) - 1 to 0 by 1

                x2 
    line.get_x2(array.get(_lineArray_i))
                
    yValue line.get_y1(array.get(_lineArray_i))

                if 
    _extendLines or bar_index == x2 and not(high yValue and low yValue)
                    
    line.set_x2(array.get(_lineArray_i), bar_index)
                    
    label.set_x(array.get(_labelArray_i), bar_index)
                    
    f_extendBoxArray(_boxArray_labelArray) =>
        if array.
    size(_boxArray) > 0
            
    for _i = array.size(_boxArray) - 1 to 0 by 1
                boxId 
    = array.get(_boxArray_i)
                
    box.set_right(boxIdbar_index)
                
    label.set_x(array.get(_labelArray_i), bar_index)


    f_addLines(_switch_x1_y1_lw_hg_down_colorLine) =>
        if 
    _switch
            line l 
    na
            label lab 
    na

            nx 
    _down _hg _lw
            yValue 
    _down high[nx] : low[nx]
            
    x1 bar_index nx
            x2 
    bar_index

            
    if _down != _down[1] and not na(yValue)
                
    f_addDiagonalLine(x1yValue)
                
    f_drawDiagonalSRLine(x1yValue)
                
    int type _down HIGH LOW
                f_addValuesToArrays
    (x1yValuetype)
                
    := f_drawLine(x1x2yValue_colorLine)
                
    lab := f_drawLabelCurrent(x2yValue_colorLine)
            
                
            if array.
    size(zigZagArray) == i_lineCount
                line
    .delete(array.shift(zigZagArray))
                
    label.delete(array.shift(zigZagLabelArray))
            
    diagonalLabelColor _down i_diagonalHighColori_diagonalLowColor
            f_drawDiagonalLabel
    (x1yValuef_createDiagonalLabelText(yValue), diagonalLabelColor_down)
            array.
    push(zigZagArrayl)
            array.
    push(zigZagLabelArraylab)
            
    f_addBoxes(_switch_x1_y1_lw_hg_down) =>
        if 
    _switch
            box b 
    na
            label lab 
    na

            nx 
    _down _hg _lw
            yValue 
    _down high[nx] : low[nx]
            
    x1 bar_index nx
            x2 
    bar_index
            yValueHigh 
    _downhigh[nx]: f_isUpCandle(nx)? open[nx] : close[nx]
            
    yValueLow =  not _downlow[nx]: f_isUpCandle(nx)? close[nx] : open[nx]
            
            
    boxColor color.new(_down i_boxHighColori_boxLowColor70)

            if 
    _down != _down[1] and not na(yValue)
                
    f_addDiagonalLine(x1yValue)
                
    f_drawDiagonalSRLine(x1yValue)
                
    int type _down HIGH LOW
                f_addValuesToArrays
    (x1yValuetype)
                
    := f_drawBox(x1x2yValueHighyValueLowboxColor)
                
    lab := f_drawLabelCurrent(x2yValueboxColor)
            
                
            if array.
    size(zigZagBoxArray) == i_lineCount
                box
    .delete(array.shift(zigZagBoxArray))
                
    label.delete(array.shift(zigZagLabelArray))
            
    diagonalLabelColor _down i_diagonalHighColori_diagonalLowColor
            f_drawDiagonalLabel
    (x1yValuef_createDiagonalLabelText(yValue), diagonalLabelColor_down)
            array.
    push(zigZagBoxArrayb)
            array.
    push(zigZagLabelArraylab)


    // current functions           
    [switch1x11y11lw1hg1down1] = f_zigzag(i_firstDepthi_firstDeviation)

    if (
    i_horizontalType == LINES)
        
    f_addLines(switch1x11y11lw1hg1down1i_firstColor)
        
    f_extendArray(zigZagArrayzigZagLabelArrayi_extendLines)
    else
        
    f_addBoxes(switch1x11y11lw1hg1down1)
        
    f_extendBoxArray(zigZagBoxArrayzigZagLabelArray

  4.  Alıntı Originally Posted by rosense Yazıyı Oku
    Görüşüne saygı duyuyorum.
    bir nevi ARŞİV gibi
    ben mi yanlış yere yazıyorum diye tekrar baktım topiğin ismi; Tradingview veri terminal İndikatör/Strateji/Sistem üzerine açılmış

    Çok güzel destek dirençleri otamatik bulutyormuş








    PHP Code:
    //@version=5

    indicator('Structured zigzag support&resistance [LM]'shorttitle='Structured zigzag S/R [LM]'overlay=truemax_bars_back=500max_lines_count 500max_boxes_count 500max_labels_count 500)

    var 
    HIGH 1LOW = -1
    var BOXES 'boxes'LINES 'lines'

    i_horizontalType            input.string(LINES'Horizontal type'options=[LINESBOXES], group='current S/R setting')   
    i_firstDepth                input.int(34'Depth'group='current S/R setting')
    i_firstDeviation            input.float(6.0'Deviation'group='current S/R setting')
    i_firstColor                input.color(color.blue'Color'group='current S/R setting')
    i_extendLines               input.bool(true'Extend lines'group='current S/R setting')
    i_lineCount                 input.int(6'Line count'group='current S/R setting')
    i_boxHighColor              input.color(color.green'Diagonal high color'group='diagonal line setting'inline='15')
    i_boxLowColor               input.color(color.red'Diagonal low color'group='diagonal line setting'inline='15')

    i_diagonalThickness         input.int(1'Line thickness'minval=1group='diagonal line setting'inline='12')
    i_diagonalLineStyle         input.string(line.style_dashed'Line style'options=[line.style_dottedline.style_solidline.style_dashed], group='diagonal line setting'inline='12')
    i_diagonalColor             input.color(color.gray'Diagonal color'group='diagonal line setting'inline='13')
    i_zigzagCount               input.int(200'Zigzag count'group='diagonal line setting'inline='14')
    i_diagonalHighColor         input.color(color.green'Diagonal high color'group='diagonal line setting'inline='15')
    i_diagonalLowColor          input.color(color.red'Diagonal low color'group='diagonal line setting'inline='15')
    i_diagonalSRLineCount       input.int(2'Diagonal S/R line count'group='diagonal line setting'inline='16')
    i_showDiagonalSRLines       input.bool(true'Show diagonal S/R lines'group='diagonal line setting'inline='16')

    var 
    zigZagArray = array.new_line()
    var 
    zigZagBoxArray = array.new_box()
    var 
    zigZagLabelArray = array.new_label()
    var 
    diagonalArray = array.new_line()
    var 
    diagonalSRArray = array.new_line()
    var 
    diagonalLabelArray = array.new_label()

    var 
    valueArray = array.new_float()
    var 
    typeArray = array.new_int()
    var 
    indexArray = array.new_int()

    f_isUpCandle(_index) =>
        
    open[_index] <= close[_index]
        
    f_drawDiagonalLine(_x1_x2_y1_y2_lineColor_lineThickness_lineStyle_extend) =>
        
    line.new(x1=_x1y1=_y1x2=_x2y2=_y2color=_lineColorstyle=_lineStylewidth=_lineThicknessextend=_extend
        
    f_drawDiagonalLabel(_xValue_yValue_text_labelColor_down) =>
        
    adjustedYPosition _down _yValue 1.005_yValue 0.995
        dlb 
    label.new(_xValueadjustedYPosition _textxloc.bar_indexyloc.price#00000000, label.style_none, _labelColor)
        
    if array.size(diagonalLabelArray) == i_zigzagCount
            label
    .delete(array.shift(diagonalLabelArray))
        array.
    push(diagonalLabelArraydlb)
        
    f_createDiagonalLabelText(_yValue) =>
        
    index = array.size(valueArray) - 3
        
    if (index >= 0)
            
    previousType = array.get(typeArrayindex)
            
    previousValue =  array.get(valueArrayindex)
            
    previousType == HIGH ?
              
    previousValue <= _yValue 'HH'"LH" :
              
    previousValue <= _yValue 'HL'"LL"
        
    else
            
    ''

    f_drawDiagonalLines(_x1_x2_y1_y2_lineColor_lineThickness_lineStyle_lineCount_lineArray_extend) =>
        
    line l f_drawDiagonalLine(_x1_x2_y1_y2_lineColor_lineThickness_lineStyle_extend)

        if array.
    size(_lineArray) == _lineCount
            line
    .delete(array.shift(_lineArray))
        array.
    push(_lineArrayl)
        
    f_addValuesToArrays(_barIndex_yValue_type) =>
        if array.
    size(valueArray) == i_zigzagCount
            
    array.shift(valueArray)
            array.
    shift(indexArray)
            array.
    shift(typeArray)
            
        array.
    push(valueArray_yValue)
        array.
    push(indexArray_barIndex)
        array.
    push(typeArray_type)
        

    f_getLastZigzag() =>
        
    int size = array.size(valueArray) - 1
        x1 
    = array.get(indexArraysize)
        
    y1 = array.get(valueArraysize)
        
    type = array.get(typeArraysize)
        [
    x1y1type]
        


    f_addDiagonalLine(_x2_y2) =>
        
    hasAtleastOnerecord = array.size(valueArray) >= 1
        
    if (hasAtleastOnerecord)
            [
    x1y1type] = f_getLastZigzag()
            
    f_drawDiagonalLines(x1_x2y1_y2i_diagonalColori_diagonalThicknessi_diagonalLineStylei_zigzagCountdiagonalArrayextend.none)
            
    f_drawDiagonalSRLine(_xValue_yValue) =>
        
    index = array.size(valueArray) - 2
        
    if (i_showDiagonalSRLines and index >= 0)
            
    previousType = array.get(typeArrayindex)
            
    previousValue =  array.get(valueArrayindex)
            
    previousXValue =  array.get(indexArrayindex)
            
    diagonalSRColor =previousType == HIGH i_diagonalHighColori_diagonalLowColor
            f_drawDiagonalLines
    (previousXValue_xValuepreviousValue_yValuediagonalSRColori_diagonalThicknessi_diagonalLineStylei_diagonalSRLineCountdiagonalSRArrayextend.right)


    f_zigzag(_depth_deviation) =>
        var 
    lw 1
        
    var hg 1
        lw 
    := lw 1
        hg 
    := hg 1
        lowestValue 
    = -ta.lowestbars(_depth)
        
    highestValue = -ta.highestbars(_depth)
        
    lowing lw == lowestValue or low low[lowestValue] > _deviation syminfo.mintick
        highing 
    hg == highestValue or high[highestValue] - high _deviation syminfo.mintick
        lh 
    ta.barssince(not highing)
        
    ll ta.barssince(not lowing)
        
    down lh ll
        lower 
    low[lw] > low[lowestValue]
        
    higher high[hg] < high[highestValue]
        if 
    lw != lowestValue and (not down[1] or lower)
            
    lw := lowestValue hg lowestValue 0
            lw
        
    if hg != highestValue and (down[1] or higher)
            
    hg := highestValue lw highestValue 0
            hg
        x1 
    down lw hg
        y1 
    down low[lw] : high[hg]
        
    lb down label.style_label_up label.style_label_down
        
    [down != down[1], x1y1lwhgdown]


    f_drawLine(_x1_x2_yValue_lineColor) =>
        
    line.new(x1=_x1y1=_yValuex2=_x2y2=_yValuecolor=_lineColorstyle=line.style_dottedwidth=2)
        
    f_drawBox(_x1_x2_high_low_boxColor) =>
         
    box.new(_x1_high_x2_lowbgcolor=_boxColorborder_style=line.style_dashedborder_color=_boxColor)

    f_drawLabelCurrent(_x_y_textColor) =>
        
    label.new(_x_y'         ' str.tostring(_y), xloc.bar_indexyloc.price#00000000, label.style_none, _textColor)

    f_drawLabel(_yValue_xValue_labelColor_text_showLabels) =>
        var 
    label lb na
        label
    .delete(lb)

        if 
    _showLabels and not na(_yValue)
            
    lb := label.new(x=_xValuey=_yValuetext=_texttextcolor=_labelColorstyle=label.style_nonexloc=xloc.bar_timeyloc=yloc.price)
            
    lb
        lb

    f_extendArray
    (_lineArray_labelArray_extendLines) =>
        if array.
    size(_lineArray) > 0
            
    for _i = array.size(_lineArray) - 1 to 0 by 1

                x2 
    line.get_x2(array.get(_lineArray_i))
                
    yValue line.get_y1(array.get(_lineArray_i))

                if 
    _extendLines or bar_index == x2 and not(high yValue and low yValue)
                    
    line.set_x2(array.get(_lineArray_i), bar_index)
                    
    label.set_x(array.get(_labelArray_i), bar_index)
                    
    f_extendBoxArray(_boxArray_labelArray) =>
        if array.
    size(_boxArray) > 0
            
    for _i = array.size(_boxArray) - 1 to 0 by 1
                boxId 
    = array.get(_boxArray_i)
                
    box.set_right(boxIdbar_index)
                
    label.set_x(array.get(_labelArray_i), bar_index)


    f_addLines(_switch_x1_y1_lw_hg_down_colorLine) =>
        if 
    _switch
            line l 
    na
            label lab 
    na

            nx 
    _down _hg _lw
            yValue 
    _down high[nx] : low[nx]
            
    x1 bar_index nx
            x2 
    bar_index

            
    if _down != _down[1] and not na(yValue)
                
    f_addDiagonalLine(x1yValue)
                
    f_drawDiagonalSRLine(x1yValue)
                
    int type _down HIGH LOW
                f_addValuesToArrays
    (x1yValuetype)
                
    := f_drawLine(x1x2yValue_colorLine)
                
    lab := f_drawLabelCurrent(x2yValue_colorLine)
            
                
            if array.
    size(zigZagArray) == i_lineCount
                line
    .delete(array.shift(zigZagArray))
                
    label.delete(array.shift(zigZagLabelArray))
            
    diagonalLabelColor _down i_diagonalHighColori_diagonalLowColor
            f_drawDiagonalLabel
    (x1yValuef_createDiagonalLabelText(yValue), diagonalLabelColor_down)
            array.
    push(zigZagArrayl)
            array.
    push(zigZagLabelArraylab)
            
    f_addBoxes(_switch_x1_y1_lw_hg_down) =>
        if 
    _switch
            box b 
    na
            label lab 
    na

            nx 
    _down _hg _lw
            yValue 
    _down high[nx] : low[nx]
            
    x1 bar_index nx
            x2 
    bar_index
            yValueHigh 
    _downhigh[nx]: f_isUpCandle(nx)? open[nx] : close[nx]
            
    yValueLow =  not _downlow[nx]: f_isUpCandle(nx)? close[nx] : open[nx]
            
            
    boxColor color.new(_down i_boxHighColori_boxLowColor70)

            if 
    _down != _down[1] and not na(yValue)
                
    f_addDiagonalLine(x1yValue)
                
    f_drawDiagonalSRLine(x1yValue)
                
    int type _down HIGH LOW
                f_addValuesToArrays
    (x1yValuetype)
                
    := f_drawBox(x1x2yValueHighyValueLowboxColor)
                
    lab := f_drawLabelCurrent(x2yValueboxColor)
            
                
            if array.
    size(zigZagBoxArray) == i_lineCount
                box
    .delete(array.shift(zigZagBoxArray))
                
    label.delete(array.shift(zigZagLabelArray))
            
    diagonalLabelColor _down i_diagonalHighColori_diagonalLowColor
            f_drawDiagonalLabel
    (x1yValuef_createDiagonalLabelText(yValue), diagonalLabelColor_down)
            array.
    push(zigZagBoxArrayb)
            array.
    push(zigZagLabelArraylab)


    // current functions           
    [switch1x11y11lw1hg1down1] = f_zigzag(i_firstDepthi_firstDeviation)

    if (
    i_horizontalType == LINES)
        
    f_addLines(switch1x11y11lw1hg1down1i_firstColor)
        
    f_extendArray(zigZagArrayzigZagLabelArrayi_extendLines)
    else
        
    f_addBoxes(switch1x11y11lw1hg1down1)
        
    f_extendBoxArray(zigZagBoxArrayzigZagLabelArray


    Teşekkür ederim anlayışlı tavrın için hocam.
    Lakin söylediklerim bu gönderi için de geçerli.

    "Çok güzel destek dirençleri otamatik bulutyormuş" Hadi bakalım. Buluyor mu?:

    A - Gönderdiğin 2 ve 3. görsellerin, eklediğin kodla ilgisi bile yok. Zaten başlıklarına baksan görürsün. Kodu denememişsin, denesen zaten anlardın.

    B- Gönderdiğin kod da Zig Zag temelli. Zig Zag yapısı itibari ile repaint yapan... Fiyat değiştikçe değişen bir gösterge. Böyle geçmişe bakınca pek güzel ama... Canlı işlemde bir dene istersen.

    C-Buyur: Solda senin gönderdiğin sağda orijinal Zig Zag.





    Sosyal medya çöplük gibi. Denemediğin, test etmediğin gözüne güzel gelen şeylerle işlem yaparsan çarpılırsın.
    Herkes her platformu, her şeyi bilmek zorunda değil ki. Bunda alınacak bir şey de yok.

    Toplama, yanlış vb. bilgi çöplüğüne döneceğine... Emekle, çabayla yazılmış 3-5 doğru bilgi bir şeyler öğrenmek isteyenlerin, yeni başlayanların daha çok işine yaracaktır diye düşünüyorum. Bu da benim fikrim.

  5.  Alıntı Originally Posted by ASAP_ Yazıyı Oku
    Sosyal medya çöplük gibi. Denemediğin, test etmediğin gözüne güzel gelen şeylerle işlem yaparsan çarpılırsın.
    Herkes her platformu, her şeyi bilmek zorunda değil ki. Bunda alınacak bir şey de yok.

    Toplama, yanlış vb. bilgi çöplüğüne döneceğine... Emekle, çabayla yazılmış 3-5 doğru bilgi bir şeyler öğrenmek isteyenlerin, yeni başlayanların daha çok işine yaracaktır diye düşünüyorum. Bu da benim fikrim.
    Haklısın daha dikkatli olup vaktimi boşa harcamamaya çalışacağım ..

  6. -Teknik mi, temel mi?
    -Teknik işe yarar mı?
    vb. sorulardan sonra, BIST'de büyük şirket tahtalarının tamamen sahipli hale gelmesi,
    yan tahtaların spek insafına bırakılması, çöp şirketlerin halka arzı ile teknik analiz gözden düşmüş görünüyor bizim piyasalar için.

    Yine de genel geçer bilgi ve diğer piyasalarda kullanılmak üzere, teknik analiz ile ilgili dünyanın en çok kullanılan veri analizi platformu Tradingview'de işe yarar gösterge ve strateji üretebilmek için yapay zekanın kullanımına dair Türkçe içerik maalesef "yok" denecek seviyede.

    Bu konuda bilgi paylaşabilecek arkadaşlar varsa, katkıları ile bu konuyu biraz canlandırabiliriz diye düşünüyorum.
    Zaman bulabilirsem, OpenAI ile gösterge, strateji vb. konularına değinelim istiyorum. Elbette bunlara bağlı olarak backtest vb. konulara da.
    Bu minvalde biraz OpenAI kullanımı, biraz Python ve buna bağlı olarak da Pandas, Numpy, Matplotlib kütüphanelerini kurcalayalım istiyorum.

    Katkı verebilecek olan varsa yazarsa sevinirim. Çünkü bu konunun da sahibi olduğum gibi, geçmişte çok sayıda topik başlatıp sonlandıramadığım oldu. Gerek zamansızlık, gerek bilgi paylaşmanın getirisinin olmaması, motivasyon kırıcı güruh vb. nedenlerle...
    Özetle hepimiz için yeni ve meşakkatli bir konu. Bir yerlerden başlamanın yanında kollektif zekanın yararı olur diye umuyorum.

    Hatta başlığı değiştirebilir veya yeni bir başlık açabiliriz diye düşünüyorum.

  7. Örneğin şöyle bir soru sorsak:
    "Tesla Nasdaq için 5 dakikalık periyotta en iyi ortalama stratejisini bul:"



    Aldığımız cevap***:

    Kod:
    import pandas as pd
    import numpy as np
    
    # Tarih sütununu datetime formatına dönüştürmek için bir fonksiyon tanımlayalım
    date_parser = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
    
    # Telsa'nın 5 dakikalık periyotlu NASDAQ verilerini yükleyelim
    data = pd.read_csv('tesla_5min_stock_data.csv', parse_dates=['Date'], date_parser=date_parser)
    
    # Test edilecek hareketli ortalama periyotlarını tanımlayalım
    ma_periods = range(5, 60, 5)  # 5 dakika ile 60 dakika arasında 5'er dakikalık artışlarla
    
    # Sonuçları saklamak için bir sözlük oluşturalım
    results = {}
    
    # Her bir hareketli ortalama periyodu için işlem stratejisini test edelim
    for ma_period in ma_periods:
        # Hareketli ortalama hesaplayalım
        data[f'MA_{ma_period}'] = data['Close'].rolling(window=ma_period).mean()
        
        # Alım sinyali (kısa periyotlu MA, uzun periyotlu MA'yı yukarıdan keserse)
        data[f'Signal_{ma_period}'] = np.where(data[f'MA_{ma_period}'].shift(1) > data[f'MA_200'].shift(1), 1, 0)
        
        # Günlük getirileri hesaplayalım
        data['Returns'] = np.log(data['Close'] / data['Close'].shift(1))
        
        # Strateji getirilerini hesaplayalım
        data['Strategy_Returns'] = data[f'Signal_{ma_period}'].shift(1) * data['Returns']
        
        # Kumulatif getirileri hesaplayalım
        data['Cumulative_Returns'] = data['Strategy_Returns'].cumsum()
        
        # Son kümülatif getiriyi saklayalım
        results[ma_period] = data['Cumulative_Returns'].iloc[-1]
    
    # En iyi hareketli ortalama periyodunu bulalım
    best_ma_period = max(results, key=results.get)
    best_cumulative_returns = results[best_ma_period]
    
    print(f"En iyi hareketli ortalama periyodu: {best_ma_period} dakika")
    print(f"En yüksek kümülatif getiri ile: {best_cumulative_returns}")

    Bunu bir de önce makine öğrenmesi ve hatta mümkünse yapay zeka öğrenmesine bağlasak...?

    Not***: Python kurulu bir makine ve orta-üst seviyede python bilgisi gerektirir.

  8.  Alıntı Originally Posted by ASAP_ Yazıyı Oku
    Örneğin şöyle bir soru sorsak:
    "Tesla Nasdaq için 5 dakikalık periyotta en iyi ortalama stratejisini bul:"



    Aldığımız cevap***:

    Kod:
    import pandas as pd
    import numpy as np
    
    # Tarih sütununu datetime formatına dönüştürmek için bir fonksiyon tanımlayalım
    date_parser = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
    
    # Telsa'nın 5 dakikalık periyotlu NASDAQ verilerini yükleyelim
    data = pd.read_csv('tesla_5min_stock_data.csv', parse_dates=['Date'], date_parser=date_parser)
    
    # Test edilecek hareketli ortalama periyotlarını tanımlayalım
    ma_periods = range(5, 60, 5)  # 5 dakika ile 60 dakika arasında 5'er dakikalık artışlarla
    
    # Sonuçları saklamak için bir sözlük oluşturalım
    results = {}
    
    # Her bir hareketli ortalama periyodu için işlem stratejisini test edelim
    for ma_period in ma_periods:
        # Hareketli ortalama hesaplayalım
        data[f'MA_{ma_period}'] = data['Close'].rolling(window=ma_period).mean()
        
        # Alım sinyali (kısa periyotlu MA, uzun periyotlu MA'yı yukarıdan keserse)
        data[f'Signal_{ma_period}'] = np.where(data[f'MA_{ma_period}'].shift(1) > data[f'MA_200'].shift(1), 1, 0)
        
        # Günlük getirileri hesaplayalım
        data['Returns'] = np.log(data['Close'] / data['Close'].shift(1))
        
        # Strateji getirilerini hesaplayalım
        data['Strategy_Returns'] = data[f'Signal_{ma_period}'].shift(1) * data['Returns']
        
        # Kumulatif getirileri hesaplayalım
        data['Cumulative_Returns'] = data['Strategy_Returns'].cumsum()
        
        # Son kümülatif getiriyi saklayalım
        results[ma_period] = data['Cumulative_Returns'].iloc[-1]
    
    # En iyi hareketli ortalama periyodunu bulalım
    best_ma_period = max(results, key=results.get)
    best_cumulative_returns = results[best_ma_period]
    
    print(f"En iyi hareketli ortalama periyodu: {best_ma_period} dakika")
    print(f"En yüksek kümülatif getiri ile: {best_cumulative_returns}")

    Bunu bir de önce makine öğrenmesi ve hatta mümkünse yapay zeka öğrenmesine bağlasak...?

    Not***: Python kurulu bir makine ve orta-üst seviyede python bilgisi gerektirir.
    -Peki tüm bunları temel analiz için yapamaz mıyız?
    Yaparız! Ama ben temel analiz bilmiyorum!

Sayfa 13/13 İlkİlk ... 3111213

Yer İmleri

Yer İmleri

Gönderi Kuralları

  • Yeni konu açamazsınız
  • Konulara cevap yazamazsınız
  • Yazılara ek gönderemezsiniz
  • Yazılarınızı değiştiremezsiniz
  •