커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

기준봉 돌파 코딩

빠르고 친절한 답변에 항상 감사를 드립니다. 캔들의 크기(기준봉)를 설정하고 이를 돌파 시 진입과 청산하는 코딩을 부탁드립니다. => X크기 이상의 캔들을 N봉이내에 돌파하는 식?
프로필 이미지
하날랑
2025-01-09
499
글번호 187028
시스템
답변완료

검색식 부탁드립니다. _(_ _)_

항상 도와주심에 거듭 감사드립니다. _(__)_ 아래의 수식1이 수식2를 첫 돌파했을 때와 두번째 돌파했을 때의 종목 검색식을 부탁드립니다. 수식1 var : 당월시가(0),전월시가(0); var : 당월종가(0),전월종가(0); if sDate > sDate[1]+30 Then { 당월시가 = O; 전월시가 = 당월시가[1]; 전월종가 = 당월종가[1]; } 당월종가 = C; if 전월시가 > 0 Then { var1 = ((전월시가+전월종가)/2 + 당월시가)/2; if CrossUp(C,var1) Then Find(1); } 수식2 var : MM(0),KK(0),MO(0),mx(0); var : M1(0),M2(0),M3(0),M4(0),M5(0),M6(0); var : M7(0),M8(0),M9(0),M10(0),M11(0),M12(0); MM = floor(date/100); if MM != MM[1] Then { MO = O; M1 = KK[1]; M2 = M1[1]; M3 = M2[1]; M4 = M3[1]; M5 = M4[1]; M6 = M5[1]; M7 = M6[1]; M8 = M7[1]; M9 = M8[1]; M10 = M9[1]; M11 = M10[1]; M12 = M11[1]; mx = Max(M1, M2, M3, M4, M5,M6, M7, M8, M9, M10, M11, M12); } KK = iff(MO > C, MO, 0); if mx > 0 and CrossUp(C,mx) Then Find(1);
프로필 이미지
한칼부르스
2025-01-09
580
글번호 187027
종목검색
답변완료

문의 드립니다

.
프로필 이미지
푸른
2025-01-13
468
글번호 187026
시스템
답변완료

종목 검색식 부탁드려요

문의드립니다. 1. ADX(14) 가 시그널을(9) 돌파하는 검색식 부탁드려요 (단, 침체(20)를 벗어난 상태에서만 ADX가 시그널을 돌파할때)
프로필 이미지
일지매7
2025-01-09
524
글번호 187025
종목검색
답변완료

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

항상 노고에 감사드림니다. 아래의 수식을 종목검색식으로 부탁드림니다. 1)종목 C(19) > O(19) && C > O && V(19)*2 < V && Crossup(c, c(19))) 2)종목 Crossup(H, BBandsup(Period, D1)) and V>=V(1)*10 지표변수 Period 300 D1 0.7
프로필 이미지
존슨비치
2025-01-09
501
글번호 187024
종목검색

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

프로필 이미지
살빼고싶다
2025-01-08
27
글번호 187023
검색
답변완료

박스하단표시

박스상단에 가격이 표시되 잇는데 박스하단에 표시할려면 어뗀 수식을 입력해야되나요
프로필 이미지
팔보채
2025-01-08
435
글번호 187022
지표
답변완료

질문 드리겠습니다

지난번 답변 감사드립니다 질문1) 조건만족봉 사이의 시간 간격에 대한 수식 질문인데요 분봉에서 차트를 보고있을때 만약 "현재봉과 직전봉이 3거래일 떨어져있다면" 이라는 수식을 만들고 싶습니다 즉 조건봉이 발생한 날을 기준으로 3일째에 다음 조건봉이 발생할때" 라는 의미입니다 봉갯수로 (예로 120분봉에서는 하루에 4개봉) 하려니 분 단위를 다르게 하면 봉 갯수도 바꿔야 해서,, 날짜 시간 함수로 만들고 싶습니다 질문2) 아래 식에서 vv 배열에 h[1] 부터 h[var2-var1] 까지의 값들을 넣으려면 어떻게 작성하면 될까요? 조건만족봉의 1봉전 값부터 직전만족봉의 h 값까지 넣으려고 합니다 만약에 배열에 넣게되면 차트의 가장 처음까지 가면서 계속 넣게 되나요? for loop로 해서 조건 만족봉이 나올때 마다 vv[0] 값을 리셋 할 수 있을까요? 배열관련된 함수들이 많은데 조건봉 사이의 값들에 적용을 하려고 합니다 var : cnt(0); var : t(0),StartBarIndex(0); Array : ii[50](0),aa[50](0),vv[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1 = Index; Var2 = var1[1]; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; } 질문3) 2차원 배열에 값을 넣으려고 합니다 아래 식에서 hh와 ll 값을 cc 라는 배열에 넣으려면 설정을 어떻게 해야되는지 궁금합니다 1열에 hh 값을, 2열에 ll 값을 넣고자 합니다 만약 이렇게 할경우에 cc[0,0] 은 hh(0), cc[1,0] 에는 hh(1)... 이 들어가고 cc[1,0] 에는 ll(0) 이 들어가게 되는게 맞나요??? 감사합니다 var : cnt(0),tt(0),hh(0),ll(0); Array : ; if h>l*1.08 Then { hh=0; ll=l[1]; For cnt = 1 to (var1-Var2)-1 { if H[cnt] > hh Then { hh = h[cnt]; } if l[cnt] <= ll Then ll=l[cnt]; } }
프로필 이미지
yamu
2025-01-09
458
글번호 187021
지표
답변완료

변환부탁드립니다.

트레이딩뷰 지표인데..변환가능한가요? 부탁드립니다. //@version=5 indicator("TradesLite ", overlay = true, max_labels_count = 500, max_boxes_count = 500, max_lines_count = 500, max_bars_back = 1000) // //SETTINGS // // INDICATOR SETTINGS swing_length = input.int(10, title = 'Swing High/Low Length', group = 'Settings', minval = 1, maxval = 50) history_of_demand_to_keep = input.int(20, title = 'History To Keep', minval = 5, maxval = 50) box_width = input.float(2.5, title = 'Supply/Demand Box Width', group = 'Settings', minval = 1, maxval = 10, step = 0.5) // INDICATOR VISUAL SETTINGS supply_color = input.color(color.new(#EDEDED,70), title = 'Supply', group = 'Visual Settings', inline = '3') supply_outline_color = input.color(color.new(color.white,75), title = 'Outline', group = 'Visual Settings', inline = '3') demand_color = input.color(color.new(#00FFFF,70), title = 'Demand', group = 'Visual Settings', inline = '4') demand_outline_color = input.color(color.new(color.white,75), title = 'Outline', group = 'Visual Settings', inline = '4') bos_label_color = input.color(color.white, title = 'BOS Label', group = 'Visual Settings', inline = '5') poi_label_color = input.color(color.white, title = 'POI Label', group = 'Visual Settings', inline = '7') swing_type_color = input.color(color.black, title = 'Price Action Label', group = 'Visual Settings', inline = '8') // //END SETTINGS // // //FUNCTIONS // // FUNCTION TO ADD NEW AND REMOVE LAST IN ARRAY f_array_add_pop(array, new_value_to_add) => array.unshift(array, new_value_to_add) array.pop(array) // FUNCTION MAKE SURE SUPPLY ISNT OVERLAPPING f_check_overlapping(new_poi, box_array, atr) => atr_threshold = atr * 2 okay_to_draw = true for i = 0 to array.size(box_array) - 1 top = box.get_top(array.get(box_array, i)) bottom = box.get_bottom(array.get(box_array, i)) poi = (top + bottom) / 2 upper_boundary = poi + atr_threshold lower_boundary = poi - atr_threshold if new_poi >= lower_boundary and new_poi <= upper_boundary okay_to_draw := false break else okay_to_draw := true okay_to_draw // FUNCTION TO DRAW SUPPLY OR DEMAND ZONE f_supply_demand(value_array, bn_array, box_array, label_array, box_type, atr) => atr_buffer = atr * (box_width / 10) box_left = array.get(bn_array, 0) box_right = bar_index var float box_top = 0.00 var float box_bottom = 0.00 var float poi = 0.00 if box_type == 1 box_top := array.get(value_array, 0) box_bottom := box_top - atr_buffer poi := (box_top + box_bottom) / 2 else if box_type == -1 box_bottom := array.get(value_array, 0) box_top := box_bottom + atr_buffer poi := (box_top + box_bottom) / 2 okay_to_draw = f_check_overlapping(poi, box_array, atr) // okay_to_draw = true //delete oldest box, and then create a new box and add it to the array if box_type == 1 and okay_to_draw box.delete( array.get(box_array, array.size(box_array) - 1) ) f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = supply_outline_color, bgcolor = supply_color, extend = extend.right, text = 'SUPPLY', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index)) box.delete( array.get(label_array, array.size(label_array) - 1) ) f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = color.new(poi_label_color,90), bgcolor = color.new(poi_label_color,90), extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index)) else if box_type == -1 and okay_to_draw box.delete( array.get(box_array, array.size(box_array) - 1) ) f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = demand_outline_color, bgcolor = demand_color, extend = extend.right, text = 'DEMAND', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index)) box.delete( array.get(label_array, array.size(label_array) - 1) ) f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = color.new(poi_label_color,90), bgcolor = color.new(poi_label_color,90), extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index)) // FUNCTION TO CHANGE SUPPLY/DEMAND TO A BOS IF BROKEN f_sd_to_bos(box_array, bos_array, label_array, zone_type) => if zone_type == 1 for i = 0 to array.size(box_array) - 1 level_to_break = box.get_top(array.get(box_array,i)) // if ta.crossover(close, level_to_break) if close >= level_to_break copied_box = box.copy(array.get(box_array,i)) f_array_add_pop(bos_array, copied_box) mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2 box.set_top(array.get(bos_array,0), mid) box.set_bottom(array.get(bos_array,0), mid) box.set_extend( array.get(bos_array,0), extend.none) box.set_right( array.get(bos_array,0), bar_index) box.set_text( array.get(bos_array,0), 'BOS' ) box.set_text_color( array.get(bos_array,0), bos_label_color) box.set_text_size( array.get(bos_array,0), size.small) box.set_text_halign( array.get(bos_array,0), text.align_center) box.set_text_valign( array.get(bos_array,0), text.align_center) box.delete(array.get(box_array, i)) box.delete(array.get(label_array, i)) if zone_type == -1 for i = 0 to array.size(box_array) - 1 level_to_break = box.get_bottom(array.get(box_array,i)) // if ta.crossunder(close, level_to_break) if close <= level_to_break copied_box = box.copy(array.get(box_array,i)) f_array_add_pop(bos_array, copied_box) mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) / 2 box.set_top(array.get(bos_array,0), mid) box.set_bottom(array.get(bos_array,0), mid) box.set_extend( array.get(bos_array,0), extend.none) box.set_right( array.get(bos_array,0), bar_index) box.set_text( array.get(bos_array,0), 'BOS' ) box.set_text_color( array.get(bos_array,0), bos_label_color) box.set_text_size( array.get(bos_array,0), size.small) box.set_text_halign( array.get(bos_array,0), text.align_center) box.set_text_valign( array.get(bos_array,0), text.align_center) box.delete(array.get(box_array, i)) box.delete(array.get(label_array, i)) // FUNCTION MANAGE CURRENT BOXES BY CHANGING ENDPOINT f_extend_box_endpoint(box_array) => for i = 0 to array.size(box_array) - 1 box.set_right(array.get(box_array, i), bar_index + 100) // //END FUNCTIONS // //CALCULATIONS // // CALCULATE ATR atr = ta.atr(50) // CALCULATE SWING HIGHS & SWING LOWS swing_high = ta.pivothigh(high, swing_length, swing_length) swing_low = ta.pivotlow(low, swing_length, swing_length) // ARRAYS FOR SWING H/L & BN var swing_high_values = array.new_float(5,0.00) var swing_low_values = array.new_float(5,0.00) var swing_high_bns = array.new_int(5,0) var swing_low_bns = array.new_int(5,0) // ARRAYS FOR SUPPLY / DEMAND var current_supply_box = array.new_box(history_of_demand_to_keep, na) var current_demand_box = array.new_box(history_of_demand_to_keep, na) // ARRAYS FOR SUPPLY / DEMAND POI LABELS var current_supply_poi = array.new_box(history_of_demand_to_keep, na) var current_demand_poi = array.new_box(history_of_demand_to_keep, na) // ARRAYS FOR BOS var supply_bos = array.new_box(5, na) var demand_bos = array.new_box(5, na) // //END CALCULATIONS // // NEW SWING HIGH if not na(swing_high) //MANAGE SWING HIGH VALUES f_array_add_pop(swing_high_values, swing_high) f_array_add_pop(swing_high_bns, bar_index[swing_length]) f_supply_demand(swing_high_values, swing_high_bns, current_supply_box, current_supply_poi, 1, atr) // NEW SWING LOW else if not na(swing_low) //MANAGE SWING LOW VALUES f_array_add_pop(swing_low_values, swing_low) f_array_add_pop(swing_low_bns, bar_index[swing_length]) f_supply_demand(swing_low_values, swing_low_bns, current_demand_box, current_demand_poi, -1, atr) f_sd_to_bos(current_supply_box, supply_bos, current_supply_poi, 1) f_sd_to_bos(current_demand_box, demand_bos, current_demand_poi, -1) f_extend_box_endpoint(current_supply_box) f_extend_box_endpoint(current_demand_box)
프로필 이미지
bw
2025-01-08
584
글번호 187020
지표

파솔라 님에 의해서 삭제되었습니다.

프로필 이미지
파솔라
2025-01-08
484
글번호 187019
지표