커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식문의 드립니다.

안녕하세요. 아래수식을 Yes트레이더로 변환부탁드립니다. // This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International // https://creativecommons.org/licenses/by-nc-sa/4.0/ // &#169; BigBeluga //@version=5 indicator("Volumatic Variable Index Dynamic Average [BigBeluga]", "Volumatic VIDYA [BigBeluga]", overlay = true, max_lines_count = 500, max_labels_count = 500) // INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ // Input parameters for length, momentum, and source data int vidya_length = input.int(10, "VIDYA Length") // Length of the VIDYA calculation int vidya_momentum = input.int(20, "VIDYA Momentum") // Momentum length for VIDYA float band_distance = input.float(2, "Distance factor for upper/lower bands", step = 0.1) // Distance factor for upper/lower bands // Define pivot parameters int pivot_left_bars = 3 // Left side pivot bars int pivot_right_bars = pivot_left_bars // Right side pivot bars float source = input.source(close, "Source") // Source for VIDYA calculation // Define colors for up and down trends color up_trend_color = input(#17dfad, "+", group = "Color", inline = "c") // Color for uptrend color down_trend_color = input(#dd326b, "-", group = "Color", inline = "c") // Color for downtrend bool shadow = input.bool(true, "Shadow", group = "Color", inline = "c") // Initialize variables for line, volume, and trend state var line pivot_line = na // Variable for storing line references var float volume_value = na // Variable for storing volume data float smoothed_value = na // Smoothing variable for VIDYA trend levels var bool is_trend_up = na // Boolean variable for tracking trend direction // Initialize arrays for storing line and volume information var array<line> liquidity_lines_low = array.new<line>(500) // Array for storing lines for lows var array<line> liquidity_lines_high = array.new<line>(500) // Array for storing lines for highs var float up_trend_volume = na // Volume accumulated during uptrend var float down_trend_volume = na // Volume accumulated during downtrend // } // FUNCTIONS―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ // Define VIDYA (Variable Index Dynamic Average) function vidya_calc(src, vidya_length, vidya_momentum) => float momentum = ta.change(src) float sum_pos_momentum = math.sum((momentum >= 0) ? momentum : 0.0, vidya_momentum) float sum_neg_momentum = math.sum((momentum >= 0) ? 0.0 : -momentum, vidya_momentum) float abs_cmo = math.abs(100 * (sum_pos_momentum - sum_neg_momentum) / (sum_pos_momentum + sum_neg_momentum)) float alpha = 2 / (vidya_length + 1) var float vidya_value = 0.0 vidya_value := alpha * abs_cmo / 100 * src + (1 - alpha * abs_cmo / 100) * nz(vidya_value[1]) ta.sma(vidya_value, 15) // Method to extend lines and add labels for liquidity levels method extend_liquidity_lines(array<line> line_array, float price_level, bool is_cross, volume_val)=> if line_array.size() > 0 and last_bar_index - bar_index < 5000 for i = 0 to line_array.size()-1 if i < line_array.size() line liquidity_line = line_array.get(i) float current_line_level = line.get_y2(liquidity_line) bool price_cross = is_cross ? price_level < current_line_level and price_level[1] >= current_line_level : price_level > current_line_level and price_level[1] <= current_line_level bool is_short_line = bar_index - line.get_x1(liquidity_line) < 50 if price_cross and is_short_line line.set_x2(liquidity_line, bar_index) line_array.remove(i) // Add volume label to the liquidity zone label.new(bar_index-1, price_level[1], str.tostring(volume_val, format.volume), color = color.rgb(0, 0, 0, 99), style = is_cross ? label.style_label_lower_left : label.style_label_upper_left, textcolor = chart.fg_color, size = size.small) // Add a circle label to represent liquidity zone label.new(bar_index-1, price_level[1], text = "&#9673;", color = #00000003, textcolor = is_cross ? down_trend_color : up_trend_color, style = label.style_label_center, size = size.normal) // } // CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ // Calculate the Average True Range (ATR) float atr_value = ta.atr(200) // ATR calculation with length of 200 // Calculate the VIDYA (Variable Index Dynamic Average) vidya_value = vidya_calc(source, vidya_length, vidya_momentum) // Calculate upper and lower bands based on VIDYA and ATR float upper_band = vidya_value + atr_value * band_distance float lower_band = vidya_value - atr_value * band_distance // Detect trend direction using crossovers of source with bands if ta.crossover(source, upper_band) is_trend_up := true if ta.crossunder(source, lower_band) is_trend_up := false // Set trend-based smoothing variable if is_trend_up smoothed_value := lower_band if not is_trend_up smoothed_value := upper_band if ta.change(is_trend_up) smoothed_value := na // Calculate pivot highs and lows for price action float pivot_high = ta.pivothigh(pivot_left_bars, pivot_right_bars) float pivot_low = ta.pivotlow(close, pivot_left_bars, pivot_right_bars) // Create and store lines for pivot lows (support zones) if low[pivot_right_bars] > smoothed_value and pivot_low pivot_line := line.new( bar_index[pivot_right_bars], low[pivot_right_bars], bar_index[pivot_right_bars]+5, low[pivot_right_bars], color = color.new(up_trend_color, 50) ) liquidity_lines_low.push(pivot_line) volume_value := math.sum(volume, pivot_right_bars + pivot_left_bars) / (pivot_right_bars + pivot_left_bars) // Create and store lines for pivot highs (resistance zones) if high[pivot_right_bars] < smoothed_value and pivot_high pivot_line := line.new( bar_index[pivot_right_bars], high[pivot_right_bars], bar_index[pivot_right_bars]+5, high[pivot_right_bars], color = color.new(down_trend_color, 50) ) liquidity_lines_high.push(pivot_line) volume_value := math.sum(-volume, pivot_right_bars + pivot_left_bars) / (pivot_right_bars + pivot_left_bars) // Extend lines to track price movements liquidity_lines_high.extend_liquidity_lines(smoothed_value, true, volume_value) liquidity_lines_low.extend_liquidity_lines(smoothed_value, false, volume_value) // Detect changes in the trend direction bool trend_cross_up = not is_trend_up[1] and is_trend_up bool trend_cross_down = not is_trend_up and is_trend_up[1] // Reset volume counters when trend changes if ta.change(trend_cross_up) or ta.change(trend_cross_down) up_trend_volume := 0 down_trend_volume := 0 // Accumulate volume during trends if not(ta.change(trend_cross_up) or ta.change(trend_cross_down)) up_trend_volume += (close > open ? volume : 0) down_trend_volume += (close < open ? volume : 0) // Calculate average volume float avg_volume_delta = (up_trend_volume + down_trend_volume) / 2 // Determine the color of the trend color trend_color = is_trend_up ? up_trend_color : not is_trend_up ? down_trend_color : chart.fg_color // Calculate delta volume percentage string delta_volume = str.tostring(((up_trend_volume - down_trend_volume) / avg_volume_delta) * 100, format.percent) == "NaN%" ? "0%" : str.tostring(((up_trend_volume - down_trend_volume) / avg_volume_delta) * 100, format.percent) // } // PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ // Display labels for volume and trend statistics on the last bar if barstate.islast label.delete( label.new(bar_index, smoothed_value, "Buy: " + str.tostring(up_trend_volume, format.volume) + "₩n Sell: " + str.tostring(down_trend_volume, format.volume) + "₩nDelta Volume: " + delta_volume, color = color.new(trend_color, 90), style = is_trend_up ? label.style_label_upper_left : label.style_label_lower_left, textcolor = chart.fg_color )[1]) label.delete(label.new(bar_index, smoothed_value, text = "&#10026;", color = #00000003, textcolor = trend_color, style = label.style_label_center, size = size.large)[1]) // Plot the VIDYA trend line p1 = plot(smoothed_value, color = trend_color, linewidth = 2, style = plot.style_linebr) p2 = plot(hl2, display = display.none) // Fill between the plot and the VIDYA line fill(p1, p2, smoothed_value, hl2, color.new(trend_color, shadow ? 80 : 100), na) // Plot trend change markers (up and down arrows) plotshape( series = trend_cross_up[1] ? smoothed_value[0] : na, title = "Trend Up", style = shape.labelup, location = location.absolute, color = color.new(up_trend_color, 50), text = "▲", textcolor = chart.fg_color ) plotshape( series = trend_cross_down[1] ? smoothed_value[0] : na, title = "Trend Down", style = shape.labeldown, location = location.absolute, color = color.new(down_trend_color, 50), text = "▼", textcolor = chart.fg_color ) // }
프로필 이미지
일프로
2024-12-11
677
글번호 186174
지표
답변완료

90410번 재문의

1분차트에 적용했는데 아무것도 안나와요 다시 부탁드립니다 라인의 색상, 굵기도 지정할수있게 부탁드립니다 감사합니다
프로필 이미지
러블리
2024-12-11
546
글번호 186173
지표
답변완료

Lowest

안녕하세요. 1분봉차트에서 당일 종가들중 가장 낮은값, 당일 시가들중에 가장 낮은값을 알려고 합니다. dayindex를 사용해서 가령, 당일 4번째봉이 완성되면(즉, dayindex 3 인 봉) Lowest(C,dayindex)[1] 로 쓰면, 당일 1~3번째 봉들 중에서 가장 작은 종가를 줘야 하는 것 같은데,, message로그로 찍어보면 좀 다른 값을 주는 것 같더라구요. 오류가 있는건지요? 당일 최저가는 daylow를 쓰면되지만, 시가나 종가들중에 최저값을 알수 있는 로직을 알려주시면 좋겠습니다~
프로필 이미지
건곤대
2024-12-11
494
글번호 186170
시스템
답변완료

문의드립니다

수고 많으십니다 90383번 수식 작성 감사드립니다 문의 드릴 내용은 90383번 시간 설정에서 설정 된 매매 종료 시간이 되면 모든 포지션 청산 하는 수식을 추가 부탁 드립니다 감사합니다
프로필 이미지
cjfdk
2024-12-11
489
글번호 186164
시스템
답변완료

종목검색식 부탁드림니다.

항상 노고에 감사드림니다. 아래의 수식을 종목검색식으로 부탁드림니다. A=macd(12, 26); B=CCI(9); 조=RSI(14); D=ma(C, 120, 가중); Crossup(A, 0) && Crossup(B, 100) && Crossup(조, 50) && Crossup(C, D)
프로필 이미지
존슨비치
2024-12-11
514
글번호 186162
종목검색

살빼고싶다 님에 의해서 삭제되었습니다.

프로필 이미지
살빼고싶다
2024-12-11
30
글번호 186157
검색
답변완료

종목검색식 을부탁드립니다

수고하십니다 답변수식 정확하게 뜨고있읍니다 그러나 1봉전으로 신호가 작동하네요 0봉전으로 수정 부탁드립니다 죄송합니다 input : mm(26),p(20),d1(2),n(25); var : B(0); B=BollBandUp(P,D1); if (-mm+n >= 0 and Crossup(C[mm-n],B)) or (-mm+n < 0 and Crossup(C,B[mm-n])) Then Find(1); 키움 M=26; P=20; D1=2; N=25; A=Shift(C,-M+n); B=BBandsup(P,D1); Crossup(A,B)
프로필 이미지
너의생각은
2024-12-11
459
글번호 186156
종목검색
답변완료

문의드립니다

90시30분에 차트에 세로선과 알람이 나오게 하고 싶습니다 감사합니다
프로필 이미지
러블리
2024-12-11
418
글번호 186154
지표

alsode 님에 의해서 삭제되었습니다.

프로필 이미지
alsode
2024-12-11
18
글번호 186151
종목검색
답변완료

전환추세 고저 연결선

Input : 전환(0.5); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL(0); Array:고[10,4](0),저[10,4](0); HH = H; LL = L; If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1]+전환 <= HH and hiBar == 0; Condition2 = 고[1,1]-전환 >= LL and loBar == 0; 처리구분 = ""; If Condition1 and Condition2 Then { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Red); } Else If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); } 최종꼭지점 = "고점"; Plot1(고[1,1]); NoPlot(2); } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Green); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); } 최종꼭지점 = "저점"; Plot2(저[1,1]); NoPlot(1); } 추세선의 고점끼리 연결선, 저점끼리 연결선. 감사합니다.
프로필 이미지
고성
2024-12-11
558
글번호 186146
지표