커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

미장 OHLC

안녕하세요 미국 정규장 OHLC 가격을 나타내는 사용자 함수 부탁드립니다. 나중에 지표로 표시 해서 사용할 예정입니다 NQ랑 ES에만 적용할 예정입니다. 거래소 시간 09~30분 같은데… 차트에서 시간은 거래소 시간으로 설정할 예정입니다. RealO, RealH, ReaL, RealC 이렇게 설정해 주세요 그리고 realO[1]로 적으면 어제 본장의 오픈 가격이 오늘 표시되게 해주세요.
프로필 이미지
이만스닥
2025-05-19
195
글번호 190977
사용자 함수
답변완료

수식 검증 좀 부탁드립니다!

청산이 잘 안됩니다. 수식 검증 좀 부탁드립니다!! // 진입 전략: 이평선 기준, long은 이평 크로스 업, short은 초단기로만 Var: aa(0), bb(0); Input: ss(3), sss(4); //진입변수 Var: yyy(1); //진입수량 aa = Average(close, ss); // 단기 이평선 bb = Average(close, ss*sss); // 장기 이평선 if CrossUp(aa,bb[1]) Then Buy ("매수", AtMarket,Def,yyy); // 단기 이평선이 장기 이평선을 골든크로스 시 롱 진입 input: SL(10), PT(10); SetStopTrailing(SL,PT,PercentStop); input: ShortHoldDay(2), SL_time(10); if MarketPosition <0 and BarsSinceEntry > ShortholdDay Then { ExitLong("EL_time",AtMarket); ExitShort("ES_time",AtMarket);} if SL_time > 0 Then SetStopLoss ((SL_time/BigPointValue),PointStop);
프로필 이미지
김작가
2025-05-19
231
글번호 190976
시스템
답변완료

시간설정

늘 감사합니다. 차트에 시간지정 설정하기 8시45분을 기준으로 15시45분 까지 약17분간격으로 검은색 세로선 그리기. 종료시간 까지 총25개 선입니다. 색상변경, 굵기변경, 시간간격을 변경하면 갯수가 변할수 있으면 너무 좋아요. 감사함니다
프로필 이미지
상암동
2025-05-20
225
글번호 190975
지표
답변완료

답변주신 내용중 공부상 질문

안녕하세요 아래에 같이 지난 요청에 수식을 작성해주셨는데요. input : N(1); var : x(0),y(0); Array : VV[2,20](0),box[20](0); For x = 19 DownTo 1 { VV[0,x] = VV[0,x-1]; VV[1,x] = VV[1,x-1]; } VV[0,0] = v; VV[1,0] = Index; var1 = Sort2DArray(VV,2,20,1); For x = 0 to N-1 { Box_Delete(box[x]); var1 = H[index-vv[1,x]]; var2 = L[index-vv[1,x]]; box[x] = Box_New(sDate[index-vv[1,x]],sTime[index-vv[1,x]],var1,NextBarSdate,NextBarStime,var2); Box_SetColor(box[x],Red); Box_SetFill(box[x],true); } 위 코드에서 var1 = Sort2DArray(VV,2,20,1); 부분과 for문 내부에서 var1 = H[index-vv[1,x]]; 를 사용하는 부분이 공부하는데 조금 어렵습니다. 동일한 변수명을 재사용한것과 배열을 정렬해서 배열이 아닌 변수에 값을 넘기는것이 이해가 잘 되지 않는 부분입니다. 공부를 위해서 설명과 코드에 자세한 주석을 달아주시길 부탁드립니다!! 항상 답변 감사드립니다.
프로필 이미지
oni
2025-05-19
194
글번호 190974
지표
답변완료

항상 감사합니다 지표 변환 부탁드립니다

// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ tf = input.timeframe("D") color_up = input.color(color.rgb(229, 148, 27), "", inline = "color") color_dn = input.color(color.rgb(30, 142, 234), "", inline = "color") var array_vals = array.new<float>() var count = 0 // } // CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ convert_tf(tf)=> time_in = timeframe.in_seconds(tf) / 60 / 60 time_in >= 24 ? tf : time_in >= 1 ? str.tostring(time_in) + "h" : tf + "m" current_tf_min = timeframe.in_seconds("")/60 user_tf_min = timeframe.in_seconds(tf)/60 bars_amount = int(user_tf_min / current_tf_min) tf_change = timeframe.change(tf) if tf_change label.new(bar_index, array_vals.max(), str.tostring(array_vals.max(), "#,###.###"), style = label.style_label_left, color = color(na), textcolor = chart.fg_color) label.new(bar_index, array_vals.min(), str.tostring(array_vals.min(), "#,###.###"), style = label.style_label_left, color = color(na), textcolor = chart.fg_color) array_vals.clear() count := 0 if not tf_change count +=1 array_vals.push(high) array_vals.push(low) max = array_vals.max() min = array_vals.min() tf_trend = array_vals.avg() color tf_col = tf_trend > tf_trend[1] ? color_up : color_dn color time_color = color.from_gradient(count, 0, bars_amount, color.new(tf_col, 0), color.new(tf_col, 100)) // } // PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ plotshape(tf_change[1] ? tf_trend : na, "", shape.circle, location.absolute, color.new(chart.fg_color, 30), size = size.tiny) plot(tf_trend, "HTF Trend", color = tf_change ? color(na) : tf_col, style = plot.style_linebr, linewidth = 1) plot(tf_trend, "HTF Trend", color = tf_change ? color(na) : time_color, style = plot.style_linebr, linewidth = 5) plot(max != max[1] ? na : max, "High Level", color = bar_index % 2 == 0 ? chart.fg_color : color(na), style = plot.style_steplinebr) plot(min != min[1] ? na : min, "Low Level", color = bar_index % 2 == 0 ? chart.fg_color : color(na), style = plot.style_steplinebr) bgcolor(tf_change ? color.new(chart.fg_color, 85) : na) if barstate.islast l1 = label.new(bar_index, array_vals.max(), str.tostring(array_vals.max(), "#,###.###"), style = label.style_label_left, color = color(na), textcolor = chart.fg_color) l2 = label.new(bar_index, array_vals.min(), str.tostring(array_vals.min(), "#,###.###"), style = label.style_label_left, color = color(na), textcolor = chart.fg_color) label.delete(l1[1]) label.delete(l2[1]) dash = table.new(position.top_right, 10, 10) dash.cell(0, 0, "Timeframe: ", text_color = chart.fg_color) dash.cell(1,0, convert_tf(tf), text_color = chart.fg_color) dash.cell(0, 1, "Trend: ", text_color = chart.fg_color) dash.cell(1, 1, tf_trend > tf_trend[1] ? "&#129153;" : "&#129155;", text_color = tf_col) // }
프로필 이미지
갈랑교
2025-05-19
250
글번호 190973
지표

남한산성 님에 의해서 삭제되었습니다.

프로필 이미지
남한산성
2025-05-19
0
글번호 190972
시스템
답변완료

문의드립니다

안녕하세요 관리자님 아래 지표는 관리자님이 보내주신 지표인데요 실거래에서 사용준비중입니다 다름이 아니오라 아래 지표에서 muliplier1~3을 하나는 2 muliplier1~3을 하나는 3 으로 하여 지표를 겹치면 첨부한 그림과 같이 선이 각각 2개씩 나오텐데요 이를 하나의 지표로 만들어서 선과 선 사이에 색깔을 입힐려고 합니다 수정하려고 했는데 못하겠어요ㅜㅜ 도와주세요 -아 래- input : period1(10),multiplier1(3); input : period2(20),multiplier2(3); input : period3(30),multiplier3(3); var : src(0); var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0); var : prevSuperTrend1(0), superTrend1(C), direction1(0),alpha1(0),source1(0); var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0); var : prevSuperTrend2(0), superTrend2(C), direction2(0),alpha2(0),source2(0); var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0); var : prevSuperTrend3(0), superTrend3(C), direction3(0),alpha3(0),source3(0); src = (H+L)/2; if CurrentBar > 1 Then { alpha1 = 1 / period1; source1 = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand1 = src + multiplier1 * AtrV1; lowerBand1 = src - multiplier1 * AtrV1; prevLowerBand1 = lowerBand1[1]; prevUpperBand1 = upperBand1[1]; if lowerBand1 > prevLowerBand1 or close[1] < prevLowerBand1 Then lowerBand1 = lowerBand1; Else lowerBand1 = prevLowerBand1; if upperBand1 < prevUpperBand1 or close[1] > prevUpperBand1 Then upperBand1 = upperBand1; Else upperBand1 = prevUpperBand1; if C > UpperBand1 Then direction1 = 1; if C < LowerBand1 Then direction1 = -1; if direction1 == 1 Then supertrend1 = lowerband1; Else supertrend1 = upperband1; alpha2 = 1 / period2; source2 = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand2 = src + multiplier2 * AtrV2; lowerBand2 = src - multiplier2 * AtrV2; prevLowerBand2 = lowerBand2[1]; prevUpperBand2 = upperBand2[1]; if lowerBand2 > prevLowerBand2 or close[1] < prevLowerBand2 Then lowerBand2 = lowerBand2; Else lowerBand2 = prevLowerBand2; if upperBand2 < prevUpperBand2 or close[1] > prevUpperBand2 Then upperBand2 = upperBand2; Else upperBand2 = prevUpperBand2; if C > UpperBand2 Then direction2 = 1; if C < LowerBand2 Then direction2 = -1; if direction2 == 1 Then supertrend2 = lowerband2; Else supertrend2 = upperband2; alpha3 = 1 / period3; source3 = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand3 = src + multiplier3 * AtrV3; lowerBand3 = src - multiplier3 * AtrV3; prevLowerBand3 = lowerBand3[1]; prevUpperBand3 = upperBand3[1]; if lowerBand3 > prevLowerBand3 or close[1] < prevLowerBand3 Then lowerBand3 = lowerBand3; Else lowerBand3 = prevLowerBand3; if upperBand3 < prevUpperBand3 or close[1] > prevUpperBand3 Then upperBand3 = upperBand3; Else upperBand3 = prevUpperBand3; if C > UpperBand3 Then direction3 = 1; if C < LowerBand3 Then direction3 = -1; if direction3 == 1 Then supertrend3 = lowerband3; Else supertrend3 = upperband3; if C > superTrend1 Then { Plot1(superTrend1,"매수1", Yellow, 0, 1); NoPlot(2); } Else { Plot2(superTrend1,"매도1", Indigo, 0, 1); NoPlot(1); } }
프로필 이미지
카카
2025-05-19
265
글번호 190971
지표
답변완료

질문 부탁드립니다

지난 답변 적용하면서 궁금한 사항 몇 가지가 있어서 여쭤보고 싶습니다 질문1) tl_getvalue 관련인데요 식에서 var22 가 의미하는건, 현재봉 시작점에서의 추세선 값을 의미하는게 맞지 않나요?~ 아래 식에서 (분봉에서 보고있을때) tttl1[0] 의 끝점을 sd[0],st[0] 이나 sd[1],sd[1] 와 같이 가장 최근만족봉과 가까운 지점으로 설정했을때는 var22 의 값 (Var22=TL_GetValue(tttl1[0],sDate,sTime);) 이 제대로 나오는데 끝점을 sd[5],st[5] (시작점은 이보다 더 과거) 처럼 더 과거의 시점으로 했을때는 var22 값에 오차가 생기는 현상이 발생합니다. 즉 var22 값과 현재봉 시작점에서의 추세선 값을 비교해봤을때 간극이 생깁니다. 혹시 조건 if 문에서 and (d1 == 0 or (d1 > 0 and dd >= d1+5)) 이 부분과 관련이 있는 현상일까요?? 아니면 분봉에서 적용한것과 관련이 있을까요? 질문2) 추세선간의 crossup 관련 이해가 어려운 부분이 있습니다 crossup(h,ma(c,20))이 "한봉전의 h값이 한봉전 ma 값보다는 작고, 현재 h가 ma 보다 크다" 라는 의미처럼 CrossUp(TL_GetValue(tttl1[1],sDate,sTime),TL_GetValue(tttl1[0],sDate,sTime)) 이 의미하는건, 이전 조건만족봉 위치에서의 tttl1[1] 이 tttl1[0] 보다 작고, 현재 만족봉에서의 tttl1[1] 이 tttl1[0] 보다 크다라는 의미로 이해하는게 맞나요? 즉 현재만족봉 시점에서 봤을때 tttl1[2] < tttl1[1] 이고 tttl1[1] > tttl1[0] 이라는 의미가 되는건가요? 아니면 단순히 현재만족봉기준 한봉전과 비교하는건가요?? 해석을 도와주셨으면 합니다 그리고 Var22=TL_GetValue(tttl1[0],sDate,sTime); if CrossUp(TL_GetValue(tttl1[1],sDate,sTime),TL_GetValue(tttl1[0],sDate,sTime)) Then var11 = TL_GetValue(tttl1[0],sDate,sTime); 이렇게 작성했을때 crossup 조건이 만족했을때 var11 에는 어떤 값이 들어가게 되며 var22 와는 어떻게 달라지는건지도 해석이 궁금합니다. 감사합니다 아래는 수식입니다 var : cnt(0), sum1(0), sumi1(0),summ(0),tt(0),hh(0),ll(0),tl(0),tl1(0),n(0),ae(0); var: sum2(0),sumi2(0),count(0),sumaa(0),sumai(0),avgaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0),e1(0),e2(0); Array : ii[50](0),aa[50](0),cc[50](0),ee[50](0),ttl[30](0),txtt[40](0), tttl1[40](0),tttl2[40](0),sd[45](0),st[45](0),ad[50](0),at[50](0); if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; hh = h; var1 = Index; Var2 = var1[1]; Var3 = Var2[1]; sum1=0; sumi1=0; sum2=0; sumi2=0; tl=TL_NEW(sDate,sTime,100,sDate,sTime,999999); TL_SetSize(tl,0); TL_SetColor(tl,Gray); For cnt = 1 to (var1-Var2) { sum1=sum1+l[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; sd[cnt] =sd[cnt-1]; st[cnt] =st[cnt-1]; txtt[cnt] = txtt[cnt-1]; tttl1[cnt]=tttl1[cnt-1]; tttl2[cnt]=tttl2[cnt-1]; } aa[0] = value1; sd[0] = sDate; st[0] = sTime; TL_SetExtRight( tttl1[3],False); tttl1[0] = TL_New(sd[5],st[5],aa[5],sd[3],st[3],aa[3]); TL_SetDrawMode( tttl1[0],0); TL_Delete( tttl1[3]); TL_SetExtRight( tttl1[0],true); TL_SetColor(tttl1[0],Black); TL_SetColor(tttl1[3],Green); TL_SetSize( tttl1[0],0); TL_SetSize( tttl1[3],1); Var22=TL_GetValue(tttl1[0],sDate,sTime); if CrossUp(TL_GetValue(tttl1[1],sDate,sTime),TL_GetValue(tttl1[0],sDate,sTime)) Then var11 = TL_GetValue(tttl1[0],sDate,sTime); txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(Var22,0)+" "+ NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); Text_SetSize(txtt[0],15); Text_SetBold(txtt[0],1); Text_SetStyle(txtt[0], 0, 0); } if aa[0] >0 then Plot11(aa[0],"average",Cyan,Def,1);
프로필 이미지
yamu
2025-05-20
208
글번호 190964
지표
답변완료

안녕하세요.

다음 수식의 라인을 종가가 돌파하는 종목을 찾고 싶습니다. 지표와 종목검색 부탁드립니다. 감사합니다. MS=MA(C, 기간1, 단순); ML=MA(C, 기간2, 단순); 볼륨=(avg(V,shortPeriod)-avg(V,longPeriod)) / avg(V,shortPeriod)*100; 조건= Crossup(MS, ML)&& 볼륨>0; ValueWhen(1, 조건, MS) shortPeriod 5 longPeriod 20 기간1 5 기간2 20
프로필 이미지
도전74
2025-05-19
223
글번호 190956
종목검색

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

프로필 이미지
낙도
2025-05-19
22
글번호 190955
지표