0 beğenilme 0 beğenilmeme
35 kez görüntülendi
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo

//@version=5
indicator("McDonald's Pattern [LuxAlgo]",overlay=true,max_lines_count=500,max_bars_back=500)
length = input(30)
from_start = input(true,'Use First Bar As Vertex')

css = input(#FFC72C,'Shape Color',group='Style')
min_width = input(2,'Width',inline='b',group='Style')
max_width = input(30,'',inline='b',group='Style')

colored_area = input(true,'Area',inline='c',group='Style')
css_dn = input(#DA291C,'',inline='c',group='Style')
css_up = input(#0cb51a,'',inline='c',group='Style')
show_score = input(true,"McDonald's Score")
//----
os = 0
src = close
n = bar_index
var float valtop = na
var float valbtm = na
var tb = table.new(position.top_right,1,2)
//------------------------------------------------------------------------------
var Y = array.new_float(0)
var X = array.new_int(0)

a = math.max(close,open)
b = math.min(close,open)

upper = ta.highest(a,length)
lower = ta.lowest(b,length)

os := a[length] > upper ? 0 : b[length] < lower ? 1 : os[1]

btm = os == 1 and os[1] != 1
top = os == 0 and os[1] != 0

if top
    array.unshift(Y,a[length])
    array.unshift(X,n-length)
if btm
    array.unshift(Y,b[length])
    array.unshift(X,n-length)
//----
plotchar(top ? high[length] : na,"Top",'',location.abovebar,offset=-length,size=size.tiny)
plotchar(btm ? low[length] : na,"Bottom",'',location.belowbar,offset=-length,size=size.tiny)
//----
a_y = 0.,b_y = 0.
c_y = 0.,d_y = 0.
if barstate.islast
    dist_a = 0.
    dist_b = 0.
    
    for l in line.all
        line.delete(l)
    if from_start
        array.unshift(Y,close)
        array.unshift(X,n)
    
    max = array.max(array.slice(Y,0,5))
    min = array.min(array.slice(Y,0,5))
    val = array.get(Y,0) < array.get(Y,1) ? min : max
    //----
    dist1 = array.get(X,0) - array.get(X,2)
    
    a_y := array.get(Y,2),b_y := array.get(Y,1)
    c_y := array.get(Y,1),d_y := array.get(Y,0)
    
    float y1 = na
    for i = 0 to dist1
        k = i/dist1
        y2 = a_y*math.pow(1 - k,3) + 3*b_y*math.pow(1 - k,2)*k + 3*c_y*(1 - k)*math.pow(k,2) + d_y*math.pow(k,3)
        dist_a += math.abs(y2 - val)
        
        r = (array.get(X,0) - array.get(X,1))/dist1
        w = min_width + math.abs(i/dist1 - r)*(max_width-min_width)
        line.new(array.get(X,2)+i,y2,array.get(X,2)+i-1,y1,color=css,width=w)
        y1 := y2
    //----
    dist2 = array.get(X,2) - array.get(X,4)
    
    a_y := array.get(Y,4),b_y := array.get(Y,3)
    c_y := array.get(Y,3),d_y := array.get(Y,2)
    
    y1 := na
    for i = 0 to dist2
        k = i/dist2
        y2 = a_y*math.pow(1 - k,3) + 3*b_y*math.pow(1 - k,2)*k + 3*c_y*(1 - k)*math.pow(k,2) + d_y*math.pow(k,3)
        dist_b += math.abs(y2 - val)
        
        r = (array.get(X,3) - array.get(X,4))/dist2
        w = min_width + math.abs(i/dist2 - r)*(max_width-min_width)
        line.new(array.get(X,4)+i,y2,array.get(X,4)+i-1,y1,color=css,width=w)
        y1 := y2
        
    if colored_area
        area_css = array.get(Y,0) < array.get(Y,1) ? css_dn : css_up
        box.delete(box.new(array.get(X,4),max,
          array.get(X,0),min,
          border_color=na,
          bgcolor=color.new(area_css,80))[1])

    if from_start
        array.shift(Y)
        array.shift(X)
    //----
    a = dist_a/dist1
    b = dist_b/dist2
    score = (1 - math.abs(a/(a+b) - .5)*2)*100
    
    if show_score
        table.cell(tb,0,0,"McDonald's Score",text_color=color.gray)
        table.cell(tb,0,1,str.tostring(score,'#.##')+'%',text_color=color.gray)
// I'm lovin' it

Merhabalar sarı çizgiye temas hisseleri nasıl tarama yapabilirim teşekkürler 

önce İndikatör Pozisyonları ve Değerleri kategorisinde (126 puan) tarafından | 35 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
Merhaba

For döngüsü içerdiğinden matriks yazılım dili metastock için maalesef yazılamaz.

Bilgilerinize.
önce (5,400 puan) tarafından
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



9,397 soru
9,355 cevap
5,082 yorum
35,875 kullanıcı