Sayfa 12/16 İlkİlk ... 21011121314 ... SonSon
Arama sonucu : 125 madde; 89 - 96 arası.

Konu: Teknik ARŞİV

  1.  Alıntı Originally Posted by @yörük@ Yazıyı Oku
    https://tr.tradingview.com/script/Ze6GlKJO/


    https://tr.tradingview.com/script/LG...es-ChartPrime/ bu da ....olasılık ihtimali...rastlantısal yürüyüş kodu...
    bunu inceleyip...sadeleyip....üste yazılan koda ilave etsek ne olacak bakalım...
    rastlantısal yürüyüş için görsel sadelendi....
    olasılık ihtimali...mavi-fuşya sutun bırakıldı....
    standart iptal edilip...lineer ayarlandı...
    bar color içinse...olasılığa uyum olsun diye....
    maviler yükseliş...fuşyalar düşüş rengine göre eşleştrildi...
    https://www.tradingview.com/x/ekvp8lbJ/

    https://www.tradingview.com/x/0Ld2KBBE/

    kodun birleşmiş hali....
    PHP Code:
     // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © ChartPrime
     
    //@version=5
    indicator("."max_boxes_count=500max_lines_count=500max_bars_back=500overlay=true)

    prng(series float seedseries int _range=100) =>
        var 
    float random 1.0
        random 
    :=   ((3.1415926 random %   seed) * 271.828) % _range
        float new_seed 
    = ((seed 1.618) % _range) + random
        
    [randomnew_seed]

    method probability(series float[] selfseries int idxseries float sum) => self.get(idx) / sum 100.0

    percent    
    (series float   endseries float   start) => (end -   start) / start
    add_percent
    (series float valueseries float percent) => (1.0 percent) * value

    log_returns    
    (series float   endseries float       start) => math.log(end start)
    add_log_returns(series float valueseries float log_returns) => math.exp(log_returns) * value

    returns    
    (series float   endseries float   startsimple bool style) => style ?     percent(  end,   start) :     log_returns(  end,   start)
    add_returns(series float valueseries float returnsseries bool style) => style add_percent(valuereturns) : add_log_returns(valuereturns)

    method add        (series int[] selfseries int     idxseries int     value=1) => self.set(idxself.get(idx) + value)
    method add_to_dist(series int[] selfseries float valueseries float bin_width) => self.add(int(math.abs(value) / bin_width), 1)

    method normal_valueseries float[] self,
                         
    series int      idx,
                         
    simple int    scale,
                         
    simple bool  invert=true) =>
        
    float  min self.min()
        
    int normal int((self.get(idx) - min) * (scale 1) / (self.max() - min)) + 1
        
    if invert
            normal 
    := scale normal
        normal

    sinc
    (series float sourceseries float bandwidth) =>
        
    float omega math.pi source bandwidth
        source 
    != 0.0 math.sin(omega) / omega 1.0

    type move
        int
    []  polarity
        int
    []  up
        int
    []  down
        float  bin_width
        float  extreme
        float  drift
        string drift_style
        bool   return_style
        float  vol

    slope
    (series int length) =>
        
    float sumx  0.0
        float sumy  
    0.0
        float sumx2 
    0.0
        float sumxy 
    0.0
        
    for int i 0 to length 1
            float src 
    close[i]
            
    int idx_1 1
            sumx     
    += idx_1
            sumy     
    += src
            sumx2    
    += math.pow(idx_12)
            
    sumxy    +=    src idx_1
        float slope 
    = -((length sumxy sumx sumy) / (length sumx2 sumx sumx))

    standard_drift(series int length) => 
        
    float log_return  math.log(close close[1])
        
    float log_return2 math.powlog_return,  )
        
    float vari 0.0
        float mean 
    0.0
        
    for int i 0 to length 1
            mean 
    += log_returni]
            
    vari += log_return2[i]
        
    mean /= length
        vari 
    /= length 2
        float drift 
    mean vari

    drift
    (series int lengthsimple string style) =>
        switch 
    style
            
    "Standard"          => standard_drift(length)
            
    "Linear Regression" =>          slope(length)
            =>                     
    0.0 // "None"

    volatility_adjustment(series float sourcesimple int lengthsimple bool enable) =>
        
    float vol_adj ta.sma(math.sqrt(math.sum(math.pow(source2), length) / (length 1)), length) * 0.5
        
    if not enable
            vol_adj 
    := 0.0
        vol_adj

    moves
    (simple int       precision,
          
    simple int            bins,
          
    simple int        lookback,
          
    simple string  drift_style,
          
    simple int    drift_length,
          
    simple string       source,
          
    simple bool   return_style,
          
    simple int           steps,
          
    simple bool volatility_adj) =>
        array<
    intpolarity        = array.new<int>(       20)
        array<
    intdelta_up_dist   = array.new<int>(bins 10)
        array<
    intdelta_down_dist = array.new<int>(bins 10)
        
    float      last source=="Move" close[1] : open
        float       ret 
    returns(closelastreturn_style)
        
    int    rounding precision + (return_style 2)
        
    float     delta math.round(retrounding)
        
    float   volatil volatility_adjustment(retstepsvolatility_adj)
        
    float   extreme math.max(math.abs(ta.highest(delta[1], lookback)),
                                   
    math.abs(ta.lowest (delta[1], lookback)))
        
    float     drift drift(drift_length == lookback drift_lengthdrift_style)
        
    float bin_width extreme bins
        
    if barstate.islast
            
    for int i 1 to lookback
                
    if close[i] <= last[i]
                    
    polarity.add(1)
                    
    add_to_dist(delta_down_distdelta[i], bin_width)
                else
                    
    polarity.add(0)
                    
    add_to_dist(delta_up_distdelta[i], bin_width)
        
    move.new(polaritydelta_up_distdelta_down_distbin_widthextremedriftdrift_stylereturn_stylevolatil)

    method idx_to_percent(series move     self,
                          
    series int     index,
                          
    series float volatil,
                          
    simple bool polarity) =>
        (
    polarity : -1) * (index self.bin_width volatil)
                                        

    monte_carlo(series move movesseries float seedsimple int steps) =>
        array<
    floatmonte = array.new<float>(steps)
        
    float    over_seed seed
        int   polarity_sum 
    moves.polarity.sum()
        
    int   moves_up_sum moves.up.sum()
        
    int   moves_dn_sum moves.down.sum()
        if 
    moves.up.max() > and moves.down.max() > 0
            
    for int i 0 to steps 1
                
    [polarity_randompolarity_seed] = prng(over_seed)
                
    over_seed := polarity_seed
                
    if moves.polarity.probability(0polarity_sum) >= polarity_random 
                    int moves_up_size_1 
    moves.up.size() - 1
                    
    [move_randommove_random_seed] = prng(over_seedmoves_up_size_1)
                    
    over_seed      := move_random_seed
                    int  up_index   
    int(move_random)
                    
    bool move_found false
                    
    while not move_found
                        
    if  up_index moves_up_size_1
                            up_index 
    := 0
                        
    if moves.up.get(up_index) == 0
                            up_index 
    += 1
                            
    continue
                        [
    move_find_randommove_find_seed] = prng(over_seed)
                        
    over_seed := move_find_seed
                        
    if moves.up.probability(up_indexmoves_up_sum) >= move_find_random 
                            monte
    .set(imoves.idx_to_percent(up_indexmoves.voltrue))
                            
    move_found := true
                            
    break
                        else
                            
    up_index += 1
                    
    continue
                else
                    
    int moves_down_size_1 moves.down.size() - 1
                    
    [move_randommove_random_seed] = prng(over_seedmoves_down_size_1)
                    
    over_seed      := move_random_seed
                    int  down_index 
    int(move_random)
                    
    bool move_found false
                    
    while not move_found
                        
    if  down_index moves_down_size_1
                            down_index 
    := 0
                        
    if moves.down.get(down_index) == 0
                            down_index 
    += 1
                            
    continue 
                        [
    move_find_randommove_find_seed] = prng(over_seed)
                        
    over_seed := move_find_seed
                        
    if moves.down.probability(down_indexmoves_dn_sum) >= move_find_random 
                            monte
    .set(imoves.idx_to_percent(down_indexmoves.volfalse))
                            
    move_found := true
                            
    break
                        else
                            
    down_index += 1
                    
    continue
        [
    monteover_seed]

    add_drift(series float valueseries float driftseries string style) =>
        switch 
    style
            
    "Standard"          => add_log_returns(valuedrift)
            
    "Linear Regression" => value drift
            
    =>                     value // "None"

    sim(series move movesseries float seedsimple int steps) =>
        
    float simulation open
        
    [movements_seed] = monte_carlo(movesseedsteps)
        for 
    int i 0 to steps 1
            simulation 
    := add_drift(add_returns(simulationmovements.get(i), moves.return_style), moves.driftmoves.drift_style)
        [
    simulation_seed]

    sinc_filter(series array<floatsourcesimple float length) =>
        var 
    float length_1 length 1.0
        
    if length 0.0 and source.size() > 0
            int source_size   
    = array.size(source)
            
    int source_size_1 source_size 1
            
    array<floatest  = array.new<float>(source_size)
            for 
    int i 0 to source_size_1
                float sum  
    0.0
                float sumw 
    0.0
                
    for int j 0 to source_size_1
                    float weight 
    =  sinc(jlength_1)
                    
    sum  += weight * array.get(sourcej)
                    
    sumw += weight
                float current_price 
    sum sumw
                
    array.set(esticurrent_price >= 0.0 current_price 0.0)
            
    est
        
    else
            
    source

    monte_carlo_distribution
    (series move moves,
                             
    series float seed,
                             
    simple int   bins,
                             
    simple int  steps,
                             
    simple int   sims) =>
        array< 
    int distribution = array.new< int >(bins 10)
        array<
    floatsim_outcomes = array.new<float>()
        var 
    int sims_1  sims 1
        float sum_stdev 
    0.0
        float    reseed 
    seed
        
    for int i 0 to sims_1
            
    [simulationseed_sim] = sim(movesreseedsteps)
            
    reseed    := seed_sim
            sum_stdev 
    += math.pow(simulation open2)
            
    sim_outcomes.push(simulation)
        
    float sim_lowest  sim_outcomes.min()
        
    float sim_highest sim_outcomes.max()
        
    float bin_width   = (sim_highest sim_lowest) / bins
        float avg_idx_up  
    0.0
        float sum_idx_up  
    0.0
        float avg_idx_dn  
    0.0
        float sum_idx_dn  
    0.0
        
    for int i 0 to sim_outcomes.size() - 1
            float outcome 
    sim_outcomes.get(i)
            
    int idx int((outcome sim_lowest) / bin_width)
            if 
    outcome open
                avg_idx_up 
    += idx
                sum_idx_up 
    += 1
            
    else
                
    avg_idx_dn += idx
                sum_idx_dn 
    += 1
            distribution
    .add(idx)
        
    float avg_up   avg_idx_up   sum_idx_up
        float avg_dn 
    avg_idx_dn sum_idx_dn
        float stdev    
    math.sqrt(sum_stdev sims)
        [
    distributionbin_widthsim_lowestsim_highestavg_upavg_dnstdevreseed]

    draw_distribution(series move           moves,
                      
    series float           seed,
                      
    series bool     orientation,
                      
    simple int             bins,
                      
    simple int            steps,
                      
    simple int      simulations,
                      
    simple int            scale,
                      
    simple bool        avg_move,
                      
    simple float      deviation,
                      
    simple bool    enable_stdev,
                      
    simple bool     enable_bias,
                      
    simple bool      background,
                      
    simple color max_bear_color,
                      
    simple color min_bear_color,
                      
    simple color max_bull_color,
                      
    simple color min_bull_color,
                      
    simple color dev_high_color,
                      
    simple color  dev_low_color,
                      
    simple color     text_color,
                      
    simple bool    extend_lines,
                      
    simple bool     outcomes_on,
                      
    simple bool    text_on_dist,
                      
    simple string  move_help_on,
                      
    simple bool    max_expected,
                      
    simple float      smoothing,
                      
    simple bool      start_line,
                      
    simple color    start_color) =>
        var array< 
    box>     dist = array.new< box>()
        var array<
    lineavg_line = array.new<line>()
        var 
    string    xtend_line extend_lines extend.left extend.none
        
    const color    invisible #00000000
        
    int offset    steps
        int direction 
    orientation : -1
        int position  
    orientation offset
        int width     
    = (scale offset) * direction
        
    [_montebin_widthlowest_simhighest_simavg_idx_upavg_idx_downstdev_seed] = monte_carlo_distribution(movesseedbinsstepssimulations)
        array<
    floatmonte sinc_filter(_montesmoothing)
        
    float max_freq  monte.max()
        
    float half_bin  bin_width 0.5
        float variation 
    stdev deviation
        float dev_up    
    =               open variation
        float dev_down  
    math.max(0.0open variation)
        
    float avg_up    avg_idx_up   bin_width lowest_sim
        float avg_down  
    avg_idx_down bin_width lowest_sim
        
    if avg_line.size() > 0
            
    for int i avg_line.size() - 1 to 0
                avg_line
    .get(i).delete()
                
    avg_line.remove(i)
        if 
    dist.size() > 
            
    for int i dist.size() - 1 to 0
                dist
    .get(i).delete()
                
    dist.remove(i)
        
    int x2 outcomes_on ?  width bar_index :
                 
    orientation offset bar_index :
                                   -
    bar_index
        
    if max_expected
            float expected       
    monte.indexof(max_freq) * bin_width lowest_sim
            color expected_color 
    expected open min_bull_color min_bear_color
            
    //avg_line.push(line.new(bar_index + position, expected, x2, expected, color=expected_color, style=line.style_solid,  extend=xtend_line, width=2))

        
    if enable_stdev
            
    //avg_line.push(line.new(bar_index + position, dev_up,   x2, dev_up,   color=dev_high_color, style=line.style_dotted, extend=xtend_line, width=2))
            //avg_line.push(line.new(bar_index + position, dev_down, x2, dev_down, color=dev_low_color,  style=line.style_dotted, extend=xtend_line, width=2))
            
    if   move_help_on == "Deviation Range"
              
    or move_help_on == "Both"
                
    avg_line.push(line.new(bar_indexopenbar_index offsetdev_up,   color=dev_high_colorstyle=line.style_arrow_right))
                
    avg_line.push(line.new(bar_indexopenbar_index offsetdev_downcolor=dev_low_color,  style=line.style_arrow_right))
        if 
    avg_move
            
    //avg_line.push(line.new(bar_index + position, avg_up,   x2, avg_up,   color=min_bull_color, style=line.style_dashed, extend=xtend_line, width=2))
            //avg_line.push(line.new(bar_index + position, avg_down, x2, avg_down, color=min_bear_color, style=line.style_dashed, extend=xtend_line, width=2))
            
    if   move_help_on == "Expected"
              
    or move_help_on == "Both"
                
    avg_line.push(line.new(bar_indexopenbar_index offsetavg_up,   color=min_bull_colorstyle=line.style_arrow_right))
                
    avg_line.push(line.new(bar_indexopenbar_index offsetavg_downcolor=min_bear_colorstyle=line.style_arrow_right))
        if 
    start_line
            avg_line
    .push(line.new(bar_index positionopenx2opencolor=start_colorextend=xtend_line))
        
    float polarity 0.0
        float monte_sum 
    monte.sum()
        for 
    int i 0 to monte.size() - 1
            float top    
    = (i) * bin_width lowest_sim half_bin
            float bottom 
    =      i  bin_width lowest_sim half_bin
            float center 
    math.avg(topbottom)
            
    int   value  monte.normal_value(iscale)
            
    float prob   monte.probability(imonte_sum
            if 
    center open
                polarity 
    += prob
            color grad_color 
    = if center >= open
                float upper 
    highest_sim half_bin
                color
    .from_gradient(centeropenuppermin_bull_colormax_bull_color)
            else
                
    float lower lowest_sim bin_width 0.5
                color
    .from_gradient(centerloweropenmax_bear_colormin_bear_color)
            if 
    prob 0.0 and outcomes_on
                int left   
    bar_index + (value offset) * direction
                string txt 
    text_on_dist str.tostring(math.round(prob2)) + "%" ""
                
    dist.push(box.new(lefttopbar_index widthbottomtext=txtborder_color=invisiblebgcolor=grad_colortext_color=text_color))
            if 
    background
                int left  
    bar_index position
                int right 
    outcomes_on ? (value offset) * direction bar_index :
                                                  
    orientation offset bar_index :
                                                                   -
    1  bar_index
                
    var string ext extend_lines ? (orientation extend.left extend.right) : extend.none
                color bg_color 
    color.from_gradient(monte.get(i), 0.0max_freqcolor.new(grad_color99), color.new(grad_color75))
                
    dist.push(box.new(lefttoprightbottominvisiblebgcolor=bg_colorextend=ext))
        if 
    enable_bias
            int left     
    outcomes_on ?  width bar_index :
                           
    orientation offset bar_index :
                                             -
    bar_index
            int right    
    left direction
            float bottom 
    lowest_sim half_bin
            float div    
    = (highest_sim half_bin - (lowest_sim half_bin)) * (polarity 100.0)
            
    dist.push(box.new(lefthighest_sim half_binrightdiv bottomborder_color=invisiblebgcolor=min_bull_colortext="🢁\n\n" str.tostring(math.round(100.0 polarity2)) + "%"text_color=text_color))
            
    dist.push(box.new(left,      bottom div,      right,       bottomborder_color=invisiblebgcolor=min_bear_colortext=str.tostring(math.round(        polarity2)) + "%" "\n\n🢃"text_color=text_color))
        
    _seed



    string source 
    input.string("Candle""Derivative Source"options=["Candle""Move"], tooltip="Candle uses the difference between Close and Open. Move uses the difference between the current close and the previous close.")

    string controls "Primary Controls"
    int simulations input.int  500"Number of Simulations"group=controlsminval50step=  50tooltip="This adjusts the number of simulations the indicator will preform. A larger number is alway preferable but isn't always feasible. The larger the number the more accurate the indicator will be.")
    int    lookback input.int  500,              "Lookback"group=controlsminval50step=  50tooltip="This determines the number of historical candles to take into account. A larger number will allow for more detail in the simulation but will also make it less relevant.")
    int       steps input.int  (  10,     "Steps Into Future"group=controlsminval=  2step=   1tooltip="This determines the number of steps into the future to predict. The further into the future you go, the more resources it will utilize. potentially resulting in the indicator not loading.")
    int        bins input.int  (  10,   "Outcome Granularity"group=controlsminval10step=   5tooltip="This is the number of rows in the final distribution of simulations. This determines the granularity of the final result.")
    float smoothing input.float(1.75,     "Outcome Smoothing"group=controlsminval=0.0step=0.25tooltip="Smooth the distribution of the outcomes. When its set to 0 it will not apply smoothing.")
    int granularity input.int  (  25,   "Returns Granularity"group=controlsminval=  5step=   5tooltip="This adjusts the granularity of the distribution of price movements. A larger number can be more accurate but it will sacrifice loading time.")

    string  adjustments "Additional Adjustments"
    int    drift_length input.int   (           34,             "Drift"group=adjustmentsinline="drift"minval=0)
    string  drift_style input.string(   "Linear Regression",            "Style:"group=adjustmentsinline="drift"options=["Linear Regression""Standard""None"], tooltip="Drift adds trend to the simulation. Without drift, the simulation will assume a trendless market. Linear Regression uses linear regression to determine trend while Standard Drift uses a volatility degraded average return.\n\nBoth are excellent options and are generally very similar. Set this to 0 to use the same window size as the lookback. A shorter period will use the short term trend while a longer period will use a longer term trend.")
    bool volatility_adj input.bool  (         true"Volatility Adjust"group=adjustments,            tooltip="Adjust the simulation to include the current volatility of returns. This will prevent the simulation from underestimating the variance in movements.")
    bool   return_style input.string("Log Returns",     "Returns Style"group=adjustmentsoptions=["Percent""Log Returns"], tooltip="Percent uses % change for the calculations while Log Returns uses log returns for the calculations.") == "Percent"
    int       precision input.int   (            1,         "Precision"group=adjustments,  minval=1tooltip="Precision lets you adjust the level of rounding for the price movements. A smaller number will be faster but it will sacrifice accuracy.")
    bool wait_for_steps input.bool  (        true,  "Update Every Bar"group=adjustments,            tooltip="Enable this to update the prediction on every bar.")

    string      visuals "Visual Preferences"
    bool    orientation input.string("Right",         "Side of Chart"group=visualsoptions=["Right""Left"], tooltip="Choose which side of the chart you want the indicator on.") == "Right"
    string move_help_on input.string"Both",    "Move Visualization"group=visualsoptions=["Expected""Deviation Range""Both""None"])
    bool       avg_move input.bool  (   true,      "Most Likely Move"group=visualstooltip="This plots the most likely up and down move for the current estimation period. These may be used as targets for your trade.")
    bool   enable_stdev input.bool  (   true,    "Standard Deviation"group=visuals,  inline="stdev")
    float     deviation input.float (    1.0,                      ""group=visuals,  inline="stdev"minval=0.0step=0.5tooltip="This is the range in which most of the simulations fall between. It acts as a prediction level for a  volatile move.")
    bool    enable_bias input.bool  (   true"Most Likely Direction"group=visualstooltip="This shows you the sum of up and down probabilities. It allows you to quickly see what the likelihood of a move in either direction is.")
    bool   max_expected input.bool  (   true,  "Max Probability Zone"group=visualstooltip="This highlights the area with the largest outcome probability.")
    bool    outcomes_on input.bool  (   false,  "Outcome Distribution"group=visuals,  inline="dist")
    int           scale input.int   (     10,                      ""group=visuals,  inline="dist"minval=10tooltip="Enable to display the distribution of outcomes. Adjust this changes the horizontal length of the distribution.")
    bool   text_on_dist input.bool  (   false,     "Distribution Text"group=visualstooltip="Enable outcome probabilities to be show in the distribution.")
    bool     background input.bool  (   false,            "Background"group=visualstooltip="Display a background of the distribution for the duration of the prediction interval.")
    bool     start_line input.bool  (   false,         "Starting Line"group=visualstooltip="Show the starting point of the simulation.")
    bool   extend_lines input.bool  (   false,          "Extend Lines"group=visualstooltip="Extend the lines and background.")

    string      coloring "Color Preferences"
    color max_bear_color input.color(#FFA0CC,     "Bearish Colors     ", group=coloring, inline="bear")
    color min_bear_color input.color(#FF22CC,                        "", group=coloring, inline="bear")
    color max_bull_color input.color(#00FFFF,    "Bullish Colors      ", group=coloring, inline="bull")
    color min_bull_color input.color(#0066FF,                        "", group=coloring, inline="bull")
    color dev_high_color input.color(#FFB617, "Deviation Color - High:", group=coloring, inline="dev" )
    color dev_low_color  input.color(#2672ff,                    "Low:", group=coloring, inline="dev" )
    color start_color    input.color(#7E7E7E,        "Start Line Color", group=coloring)
    color text_color     input.color(#FFFFFF,              "Text Color", group=coloring)



    move rand_moves moves(precisiongranularitylookbackdrift_styledrift_lengthsourcereturn_stylestepsvolatility_adj)
    var 
    float seed 1
    [_re_seed] = prng(seed)
    seed := re_seed

    if barstate.islast 
        
    var int counter = -1
        
    if counter == -1
            int bar_index_1 
    bar_index 1
            
    if bar_index_1 lookback
                runtime
    .error('Please use a "Lookback" input setting that is less than: ' str.tostring(bar_index))
            if 
    bar_index_1 drift_length
                runtime
    .error('Please use a "Drift" input setting that is less than: '    str.tostring(bar_index))
        
    counter += 1
        bool once 
    counter == true barstate.isconfirmed
        bool wait 
    not wait_for_steps == counter steps and once :
                                         
    == counter or barstate.isconfirmed
        
    if wait
            seed 
    :=  draw_distribution(rand_movesseedorientationbinsstepssimulationsscaleavg_movedeviationenable_stdevenable_bias,
                                       
    backgroundmax_bear_colormin_bear_colormax_bull_colormin_bull_colordev_high_colordev_low_colortext_color,
                                       
    extend_linesoutcomes_ontext_on_distmove_help_onmax_expectedsmoothingstart_linestart_color)
                                       
    /////////////////////////////////
    //@version=5

    // Inputs
    input(2title='Key Vaule. \'This changes the sensitivity\'')
    input(10title='ATR Period')
    input(truetitle='Signals from Heikin Ashi Candles')

    xATR ta.atr(c)
    nLoss xATR

    src 
    request.security(ticker.heikinashi(syminfo.tickerid), timeframe.periodcloselookahead=barmerge.lookahead_off) : close

    xATRTrailingStop 
    0.0
    iff_1 
    src nz(xATRTrailingStop[1], 0) ? src nLoss src nLoss
    iff_2 
    src nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src nLoss) : iff_1
    xATRTrailingStop 
    := src nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src nLoss) : iff_2

    pos 
    0
    iff_3 
    src[1] > nz(xATRTrailingStop[1], 0) and src nz(xATRTrailingStop[1], 0) ? -nz(pos[1], 0)
    pos := src[1] < nz(xATRTrailingStop[1], 0) and src nz(xATRTrailingStop[1], 0) ? iff_3

    xcolor 
    pos == -color.red pos == color.green color.blue

    ema 
    ta.ema(src1)
    above ta.crossover(emaxATRTrailingStop)
    below ta.crossover(xATRTrailingStopema)

    buy src xATRTrailingStop and above
    sell 
    src xATRTrailingStop and below

    barbuy 
    src xATRTrailingStop
    barsell 
    src xATRTrailingStop

    plotshape
    (buytitle='Buy'text='L'style=shape.labeluplocation=location.belowbarcolor=color.new(color.green0), textcolor=color.new(color.white0), size=size.tiny)
    plotshape(selltitle='Sell'text='S'style=shape.labeldownlocation=location.abovebarcolor=color.new(color.red0), textcolor=color.new(color.white0), size=size.tiny)

    ////////
    // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © Seckin42

    //@version=5
    source99 close
    windowsize 
    input(title="Window Size"defval=25)
    offset input.float(title="Offset"defval=0.85)
    sigma input.float(title="Sigma"defval=6)
    plot(ta.alma(source99windowsizeoffsetsigma))

    atrPeriod input.int(10,    "ATR Length"minval 1)
    factor =    input.float(3.0"Factor",     minval 0.01step 0.01)

    [
    supertrenddirection] = ta.supertrend(factoratrPeriod)

    supertrend := barstate.isfirst na supertrend
    upTrend 
    =    plot(direction supertrend na"Up Trend",   color color.greenstyle plot.style_linebr)
    downTrend =  plot(direction na supertrend"Down Trend"color color.red,   style plot.style_linebr)
    bodyMiddle plot(barstate.isfirst na : (open close) / 2"Body Middle",display display.none)
    //////
    //@version=5
    // Dr. Abhiram's Golden Strategy //@version=5
    // srflip2011

    // --- inputs
    source55 close
    TITLE 
    input(falsetitle='Turn on Alerts & Enable Background Color options are based on EMA1 & EMA2 Crossovers, (This button does nothing)')
    turnon2 input(truetitle='Turn on Alerts?')
    colorbars  input(truetitle "Color Bars?")
    colorbars2 input(true,title "Color Bar when price closes under / above Ema 1 & 2?" inline "1")
    barc1 input (color.rgb(017255), "+"inline "1")
    barc2 input(color.rgb(2124248), "-"inline ="1")
    turnon input(truetitle='Turn on Ema 1 & 2?')
    //backgroundcolor = input(false, title='Enable Background Color?')

    //Ema 1 & 2
    len1 input.int(10minval=1title='EMA1')
    len2 input.int(21minval=1title='EMA2')
    ema1 ta.ema(source55len1)
    ema2 ta.ema(source55len2)
    //---

    cond1 ta.crossover(close,ema1) and ta.crossover(close,ema2)
    cond2 ta.crossunder(close,ema1) and ta.crossunder(close,ema2)

    barcolor(cond1 color.rgb(017255) : cond2 color.rgb(2124248): na)
    //-- Candle Color
    colbar ema1 ema2 color.rgb(1525023) :  color.rgb(25500
    barcolor(colorbars colbar :na)


    // Ema Cross 
    mylong ta.crossover(ema1ema2)
    myshort ta.crossunder(ema1ema2)

    first ta.ema(closelen1)
    sec ta.ema(closelen2)

    // Calculations
    last_long float(na)
    last_short float(na)
    last_long := mylong time nz(last_long[1])
    last_short := myshort time nz(last_short[1])

    in_long last_long last_short 0
    in_short 
    last_short last_long 0

    condlongx 
    in_long
    condlong 
    ta.crossover(condlongx1.9)
    condlongclose ta.crossunder(condlongx1.9)

    condshortx in_short
    condshort 
    ta.crossover(condshortx1.9)
    condshortclose ta.crossover(condshortx1.9)

    // Color Fill
    fcolor first sec #0aff68 : first < sec ? #ff0a5a : #cccccc

    // Plots
    plotshape(turnon2 condlong natitle='Breakout'color=color.new(#112f16, 0), location=location.belowbar, style=shape.labelup, text='L', textcolor=color.new(color.white, 0), size=size.small, offset=1)
    plotshape(turnon2 condshort natitle='Breakdown'color=color.new(#9d0d0d, 0), style=shape.labeldown, text='S', textcolor=color.new(color.white, 0), size=size.small, offset=1)

    ///// 
    selamlar....
    Teknik olarak; yarına gebe olan bugünü yaşamalı ki, yarın, yaşanmış olsun.

  2. https://tr.tradingview.com/script/IO...ine-Pivots-TS/
    ister pivota göre...isterseniz yüksek düşüğe göre...
    istediğiniz periyotta.... otomatik trend çizdirin....
    Teknik olarak; yarına gebe olan bugünü yaşamalı ki, yarın, yaşanmış olsun.

  3.  Alıntı Originally Posted by @yörük@ Yazıyı Oku
    https://tr.tradingview.com/script/IO...ine-Pivots-TS/
    ister pivota göre...isterseniz yüksek düşüğe göre...
    istediğiniz periyotta.... otomatik trend çizdirin....
    eğer pivota göre çizdirirseniz....https://tr.tradingview.com/script/i2...nes-Firegenie/
    bunu birleştirin....kanal belirleyin....basit ve sade bir tasarım...
    Teknik olarak; yarına gebe olan bugünü yaşamalı ki, yarın, yaşanmış olsun.

  4. Hacim Fiyat Analizi - Anna Coulling'den 5 Ders

    Anna Coulling'in Hacim Fiyat Analizi (VPA), hangi zaman diliminde işlem yapmayı tercih ederseniz edin, yatırımcılar için güçlü bir araçtır. Neredeyse on yıllık ticaret deneyimim ile bu kitap, her beceri seviyesindeki yatırımcılara kişisel olarak önerdiğim tek kitap olmaya devam ediyor. VPA, Jesse Livermore'un ilk günlerinden bu yana denenmiş ve doğrulanmış sağlam teknik analiz kavramlarına dayanmaktadır. Bunlar benim kişisel olarak günlük olarak endeks işlemleri ve hisse senetleri için kullandığım kavramlardır. Coulling'in yaklaşımından daha iyi bir yatırımcı olmanıza yardımcı olacak beş önemli ders:

    HACİM ÖNEMLİDİR
    VPA, işlem hacmine büyük önem vermektedir. Coulling'e göre fiyat hareketleri, önemli miktarda işlem hacmi eşlik ettiğinde en belirgin hale geliyor. Bu, düşük hacimli önemli fiyat değişikliklerinin güçlü bir trend için gereken inançtan yoksun olabileceği anlamına gelir. Yatırımcıların fiyat hareketlerini doğrulamak için hacim artışlarına ve farklılıklara odaklanması gerekiyor.



    ŞAMDAN KALIPLARINI ANLAMAK

    Coulling, mum çubuğu formasyonlarını hacimle birlikte okumanın önemini vurguluyor.
    Dojiler, çekiçler ve kayan yıldızlar gibi mum çubuğu modellerini hacim bağlamında analiz ederek yatırımcılar piyasa duyarlılığı hakkında değerli bilgiler edinebilirler.
    Yüksek hacimdeki boğa formasyonları güçlü alım ilgisine işaret ederken, yüksek hacimdeki düşüş formasyonları güçlü satış baskısına işaret edebilir.

    PİYASA MANİPÜLASYONU VE “AKILLI PARA”

    VPA, "akıllı para" kavramını veya piyasayı manipüle edebilen kurumsal yatırımcıların altını çiziyor. Eylemlerini anlamak, ticarette avantaj sağlayabilir ve bir tüccar olarak uzun vadeli başarı olasılığınızı artırabilir. Hacim analizi yoluyla birikim (kurumsal satın alma) veya dağıtım (kurumsal satış) işaretlerini arayın. Hacimdeki ani artışlar genellikle akıllı paranın işin içine girdiğini gösterebilir.



    SABIR VE ONAY

    Coulling'in VPA'sından alınan önemli derslerden biri sabrın ve onaylamanın önemidir. Yatırımcılar, işlemlere girmeden önce güçlü hacim onayını beklemelidir. Yalnızca fiyat hareketine dayalı bir ticarete aceleyle girmek, yanlış sinyallere ve sonuçta bir hareketin yanlış tarafında sıkışıp kalmanıza yol açabilir. Bir hamleyi doğrulamak için hacmin beklenmesi, yanlış bir çıkış veya çöküşe yakalanma riskinin azaltılmasına yardımcı olabilir, ayrıca bir yatırımcı olarak doğruluğunuzu önemli ölçüde artıracaktır.

    RİSK YÖNETİMİ HER ŞEYDEN ÖNEMLİDİR

    Couling, ticarette risk yönetiminin önemini vurguluyor. Potansiyel kayıpları sınırlamak için her zaman zararı durdur emirlerini ayarlayın. VPA değerli bilgiler sağlayabilir, ancak herhangi bir ticaret sistemi gibi kusursuz değildir. Doğru risk yönetimi, yatırımcıların uzun vadede oyunda kalabilmelerini sağlar.

    Sonuç olarak, Anna Coulling'in Hacim Fiyat Analizi, teknik analiz ve fiyat hareketi ticareti dünyasına dair değerli bilgiler sunuyor.
    Bu, tüm yatırımcılara şiddetle tavsiye ettiğim bir kitaptır - Eğer Trader's Thinktank'taysanız, sizin için ücretsiz bir kopyamız mevcuttur. Hacme odaklanarak, mum formasyonlarını anlayarak ve piyasa manipülasyonunun farkında olarak yatırımcılar daha bilinçli kararlar alabilirler. Sabır ve risk yönetimi başarılı bir ticaret stratejisinin önemli bileşenleridir. VPA'dan alınan bu dersleri bir araya getirmek, piyasaların karmaşıklıklarında daha büyük bir güvenle ve daha karlı bir sistemle gezinmenize yardımcı olabilir.

  5. Trade'de sadece iki öncü gösterge vardır.
    Birincisi Fiyat,
    İkincisi Hacim.
    Fiyat ve Hacim birbilerinden izole olduklarından zayıftırlar ve çok az şey açığa vururlar, ama onları bir araya getirince tıpkı ateşle barut gibi patlayıcı bir kombinasyon haline gelirler.
    Hacim fiyat analizlerinin gücünü kendiniz keşfettiğinizde, şok olacak ve bunu neden daha önce hiç deneyimlemediğinize şaşıracaksınız.
    Piyasa hareket etmeden ÖNCE siz bu durumun farkına varıp pozisyonunuzu alabileceksiniz. Bu; ilk kez olduğundan, şok olacaksınız, şaşıracaksınız, hatta hayrete düşeceksiniz. O zaman gerçekler gözünüzün önüne gelecek başarma duygusuyla kendinize güven gelecek. İki basit göstergeyi kullanarak artık piyasanın bir sonraki adımını hareketini tahmin etme gücüne ve bilgisine sahipsiniz.
    Kısacası HACİM- FYAT Analizi piyasanın DNA'sını ortaya çıarır ve bu müthiş gücü avucunuzun içine yerleştirir. Kendinden emin ve kararlarına güvenen bir trader olacaksınız. Duygusal işlem ve stres sonsuza dek ortadan kalkacak. Basit bir sonraki adımın ne yönde olacağını tahminlemesini, hacim fiyat analizinin gücü kulalanılarak oluşturulan sade bir mantıkla yapacağınıza inanmaktadır.



    Göreceli Hacim (RVOL) - İhtiyacınız Olan Günlük Ticaret Filtresi

    Opinicus ekibi birkaç yıldır hacim ve göreceli hacim hakkında kullanıyor ve paylaşım yapıyor ve bunun iyi bir nedeni var. ThinkOrSwim hacim verimiz Thinkscript'i ilk olarak Mart 2019'da kullanıma sunduk ve o zamandan bu yana aktif yatırımcılar tarafından 10.000'den fazla indirildi. Bu aracın dezavantajları olsa da, yatırımcıların işlem yapmak için stokları sıralamasına ve filtrelemesine yardımcı olmak için harika bir gösterge olmuştur ve olmaya devam etmektedir. Yatırımcılar, her hisse senedinin ilgili günlük hacmini ve ortalamayla karşılaştırmasını kontrol ederek, aradıkları hisse senedinin göreceli hacmi hakkında fikir sahibi olabilirler.

    BAĞIL HACİM NEDİR?
    Göreceli hacim (RVOL olarak da bilinir), bir yatırımcının araç setindeki belki de en önemli günlük ticaret filtresidir. Göreceli hacim, yatırımcılara mevcut işlem hacminin belirli bir dönemdeki geçmiş işlem hacmiyle nasıl karşılaştırıldığını anlatır. Daha basit bir ifadeyle, göreceli hacim bize kaç hissenin genellikle işlem gördüğüne göre işlem gördüğünü söyler.

    En iyi RVOL araçları size yalnızca bu verileri göstermekle kalmaz, aynı zamanda hacmin belirli bir dönemde günün belirli bir saatinde nasıl karşılaştırıldığını da gösterir. Bu, hacme bakmanın güçlü bir yoludur çünkü işlem günü boyunca hacim doğrusal değildir - Açılış ve kapanış her zaman sabah geç saatlere veya gün ortasına göre daha yüksek hacim gösterecektir. Genel olarak konuşursak, RVOL bir oran olarak görüntülenir. Örneğin, bir hisse senedi normal hacminin iki buçuk katı kadar işlem görüyorsa bu 2,5RVOL olarak görüntülenir.



    YATIRIMCILAR GÖRELİ HACMİ NASIL KULLANIR?

    Göreceli hacim, belirli bir hisse senedinin ne kadar "oyunda" olduğunu belirlemek için harika bir göstergedir. Oyundaki bir hisse senedi, oldukça aktif olan ve büyük bir hamle yapma olasılığı daha yüksek olan bir hisse senedidir. RVOL 1'den küçükse, hisse senedi ortalama veya ortalamanın altında hacim yapıyor ve oyunda değil. RVOL 2'den büyükse yatırımcılar bu hisse senedini potansiyel bir giriş için izlemelidir.
    Daha önce de belirtildiği gibi RVOL, hisse senedi seçimi ve ticaret fikirlerini filtrelemek için inanılmaz derecede güçlü bir araçtır.



    RVOL değeri 3'ün üzerinde olan ve güçlü bir teknik yapıya sahip bir hisse senedi, yüksek olasılıklı bir ticaretin reçetesidir.
    Yeni yatırımcılar genellikle hem hacmi hem de RVOL'u gözden kaçırır.
    Aktif bir yatırımcı olarak uzun vadeli başarı elde etmek istiyorsanız bu alım satım ölçütünü anlamak önemlidir; momentum yatırımcısıysanız bu daha da önemlidir.

    Daha önce de belirtildiği gibi, tüm hisse senetleri kendi gün içi hacim dağılım eğrisini izleyecektir - Genel olarak konuşursak, bu, işlem seansının açılış ve kapanışında yüksek hacim ve gün ortasında durgunluk gibi görünüyor. Hacim normal hacim dağılım eğrisinin dışına çıktığında hisse senedi yüksek hacim yaşıyor demektir.
    Bunlar yatırımcıların bir hisse senedine dikkat etmesi gereken anlardır.



    Bir hisse senedinin hacminin kuvveti temsil ettiğini düşünün.
    Bir hisse senedinin momentumla veya normal ortalama gerçek aralığının (ATR) ötesinde hareket etmesi için, hisse senedinin ATR'nin "yerçekimi çekişini" yenmek için aşırı güce sahip olması gerekir.
    Fiyat araştırmasının gücü (hacim'i) yoksa beklenti, fiyatın belirlenen aralığa çekilmesi ve gün boyunca yan yönde işlem görmesidir.

    Bunu, iki buçuk işlem seansını gösteren aşağıdaki grafikte görselleştirilmiş olarak görebiliriz.
    İlk seansta hisse senedi, seansın başlarında 3RVOL'da işlem görüyor ve bu da hisse senedini %10 daha düşük bir seviyeye itmek için yeterli "güç"tü. Sonraki seansta ortalama hacimde işlem gören hisse senedinin normal hacim dağılım eğrisini takip ettiğini görebilirsiniz.
    Hisse senedi, seansın tamamı boyunca yatay işlem gördü, çünkü onu normal işlem aralığının dışına itecek yeterli güç yoktu.
    Nihayet üçüncü günde, hisse senedi bir kez daha 2-3RVOL ile işlem görmeye başladı ve temelin %8,5 daha hareket etmesine yetecek güç oluştu.
    Hacim azalmaya başladıkça ve normal dağılım eğrisine yakın bir yerde işlem görmeye başladıkça, temel hisse senedi yatay işlem görmeye başladı.



    HİSSE SENETLERİNDEKİ YÜKSEK GÖRELİ HACİM NASIL BELİRLENİR?

    Ne yazık ki çoğu broker, platformlarında yerel olarak hacim veri araçları sunmuyor.
    ThinkOrSwim Toplu Veri Aracını oluşturup sunmamızın nedenlerinden biri de budur.
    Finviz'de bulunan göreceli hacim ölçer gibi kullanılabilecek başka ücretsiz web tabanlı araçlar da vardır. Buna güvenmenin asıl sorunu, göreceli hacim göstergelerinin neye dayandığının net olmamasıdır.



    Neyse ki, şu anda TradingView kullanıcıları için mevcut bir göreceli hacim aracımız var ve yakın gelecekte ThinkOrSwim kullanıcıları için de güncellenmiş bir göstergeye sahip olacağız. Opinicus Göreceli Hacim veri aracının (TradingView için) kullanıcılara sunduğu ana avantajlardan biri, günün saatine özel verilerdir. Bu hacim göstergesi size yalnızca hisse senedinin göreceli olarak yüksek hacimde olup olmadığını göstermekle kalmayacak, aynı zamanda günün belirli bir saatinde yüksek RVOL yapıp yapmadığını ve ne derecede olduğunu da gösterecektir. Günün belirli bir saatindeki göreceli hacim, yatırımcıların hacmi görselleştirmesinin ve anlamasının belki de en değerli yoludur.

    Opinicus Göreceli Hacim veri aracı (TradingView için), yapılmakta olan hacmin tam katlarını görüntülemek için çeşitli renk gradyanlarını kullanır.
    Örneğin, hisse senedi ortalama veya ortalamanın altında hacim yapıyorsa renk gradyanı yalnızca gri olur.
    Bunu daha önceki örneklerde de görmek mümkün.
    Bir hisse senedinin 1-1,5 RVOL'u varsa hacim veri aracı kırmızı bir çubuk gösterecektir.
    Araç, 1,5-2 RVOL, 2-3 RVOL ve >3 RVOL için farklı renkli çubuklar yazdıracaktır.


  6. Alış ve satış işlemlerinin parasal değerini temsil eden borsada HACİM ne demektir?
    Borsada işlem HACMİ arttıkça değerler nasıl etkilenir?

    İşlem Hacmi Nedir?

    İşlem hacmi; endeks, hisse senedi, kontrat ya da borsadaki günlük alım satımların tamamına denir.
    Söz konusu menkul kıymetlerin alım satımlarının hepsini kapsayan bu terim, yatırımcıların karşısına sıklıkla çıkar. Günlük işlem hacmi, menkul kıymet adedinin işlem yoğunluğunu gösterir.

    İşlem hacmi yüksek olduğunda yatırımcılar daha güvenli hareket edebileceklerini düşünür.
    Hacmi artan hisseler, çok fazla el değiştirmiş olan senetlerdir.
    Hacmi düşük hisseler ise senetlerin daha az el değiştirdiğini gösterir.
    Yatırımcılar da bu değerin büyüklüğüne göre hareket eder.

    Borsayı düzenli olarak takip eden ve yatırım faaliyetlerinde bulunan bireyler, işlem hacmi terimi ile sıkça karşılaşmaktadır.
    İşlem hacmi, borsadaki alış ve satış faaliyetlerinin tümüne yönelik parasal değeri temsil etmektedir.
    Ayrıca menkul kıymete dair tüm alış ve satışların parasal değeri de işlem hacmi ile gösterilmektedir.
    İşlem hacmi; kontrat, hisse, endeks ya da borsada günlük olarak gerçekleşen alış ve satış işlemlerinin toplam değeridir.

    Borsada işlem hacmi hesaplanırken kullanılan formül de şu şekildedir;
    İşlem HACMİ = (işlem fiyatı x işlem miktarı) hesaplama, işleme konu olan menkul kıymet adediyle satış fiyatının çarpılması ile bulunur.
    Bahsedilen değerin artması olumlu veya olumsuz nedenlerden kaynaklanabilir. Örneğin hacmin azalması negatif bir öngörünün belirtisi olabilir. Hacmin artması ise pozitif bir beklentinin sonucu olarak ele alınabilir. Ancak hacimdeki artışlar her zaman olumlu yorumlanmamalıdır.

    teknikanaliz sanati com'dan görsel ve metinli anlatım











  7. TradingView’de Hacim Ağırlıklı Ortalama Fiyat Göstergesi Ne İşe Yarar, 3 İpucu İle Öğretmişler bizde fayda nalım.

    Yatırım stratejilerinizi belirlerken fiyat dalgalanmaları kafanızı mı karıştırıyor?
    Hacim ağırlıklı ortalama fiyat (VWAP) size yol gösterebilir.



    1 - VWAP Nedir?




    İlk olarak grafiğimize nasıl ekleyeceğimize bakalım, göstergeler kısmına tıklayın ve “VWAP” olarak aratın ve görseldeki göstergeyi ekleyin.

    VWAP, hacme göre ortalama fiyatı ölçmek için kullanılan teknik bir analiz aracıdır. Bir varlığın hacim ağırlıklı ortalaması, bir gün içinde işlem gördüğü, yani bir varlığın alınıp satıldığı tüm fiyatların hacim ağırlıklı ortalamasıdır. VWAP, temel olarak teknik analistler tarafından piyasa trendini belirlemek için kullanılır. VWAP, bir varlığın fiyatının belirli bir dönemdeki ortalamasını gösterdiği için, mevcut fiyat trendi hakkında da bir fikir verir.

    VWAP, genellikle bir günlük zaman diliminde kullanılır. Ancak, daha kısa veya daha uzun süreli zaman dilimlerinde de hesaplanabilir.


    2 - İnce Ayarlar





    Daha fazla detay istiyorsanız gösterge ayarlarından “Upper ve Lower Band” seçeneklerini aktif hale getirin.

    Tema renklerini daha kolay anlaşılır hale getirmeyi unutmayın.
    Bollinger bantlarını andırsa da burada indikatörün odaklandığı veri hacmin ağırlık ortalamasıdır.
    Bu sayede yüksek ve düşük seviyeleri takip edebilir ve alım satım stratejilerinizi daha keskin hale getirebilirsiniz.


    3 - Trade Stratejisi Oluşturmak





    Yatırımcılar, VWAP'ın altına veya üstüne doğru fiyat hareketlerini izleyerek, pozisyonlarını belirlerler. VWAP, özellikle yüksek likiditeye sahip varlıkların (yüksek hacimli) fiyat hareketlerinde kullanışlıdır.

    Bir yatırımcı, fiyatın VWAP'ın altında kalan varlıkta satış pozisyonu alabilir.
    Bu durumda, yatırımcı fiyatın düşeceği beklentisiyle varlığı satabilir.
    Aynı şekilde, fiyatın VWAP'ın üstünde olan varlığı fiyatın yükseleceği beklentisiyle varlığı satın alabilir.


    SONUÇ ...

    Hareketli ortalamaya çok benzer dediğinizi duyar gibiyim, ancak önemli bir fark var.

    MA göstergesi, daha basit bir hesaplama yöntemine sahiptir ve fiyatın trendini belirlemeye yönelik daha geniş bir perspektif sağlar. VWAP göstergesi ise, piyasada gerçekleşen işlem hacmi hakkında daha fazla bilgi sağlar ve varlık fiyatının gerçek değerine daha yakın bir tahmin sunar.

    VWAP sadece bir fiyat göstergesi olduğundan, hareketli ortalama gibi varlık fiyatının üzerinde veya altında kalan bir çizgi ile gösterilir. Ancak unutmayın ki, VWAP da hareketli ortalama gibi gecikme yaşayabilir. Gösterge, geçmiş verileri kullanarak bir ortalama hesapladığından gecikme doğal olarak ortaya çıkar.

    VWAP işlem stratejisini trade rutininize dahil etmek işlem performansınızı artırabilir. Tarihsel fiyat verilerini analiz etmek, stop-loss emirleri kullanmak, VWAP kesişme sinyallerini aramak ve diğer teknik göstergelerle birleştirmek, bu güçlü göstergeyi en verimli şekilde kullanmanıza yardımcı olabilir.

Sayfa 12/16 İlkİlk ... 21011121314 ... SonSon

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
  •