커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

지표 변환 문의드립니다. 질문 92667 관련

안녕하세요.건승을 기원합니다. 질문 92667 답변 관련 질문입니다. 3번 지표로 구현하엿는데,선은 필요없으니 신호만 나타낼수잇는 수식을 좀 알려주시면 감사하겟습니다. 상단,하단밴드는 버리고 중간선이 색갈이변할때만 신호를 표출하는 식을 부탁합니다.(색깔변하는 봉 바로 밑에 또는 위에) 제가 작성한 "잘못된" 수식입니다만 plot1(filt, "Filter", fcolor); plot2(hband, "Filtered True Range High Band", fcolor); plot3(lband, "Filtered True Range Low Band", fcolor); if filt < filt[1] Then { tx = Text_New(sdate,sTime,H,"☎"); Text_SetStyle(tx,2,0);#좌우상하정렬 Text_SetColor(tx,Black);#색상 Text_SetSize(tx,20);#크기 } if filt > filt[1] Then { tx = Text_New(sdate,sTime,L,"♥"); Text_SetStyle(tx,2,0);#좌우상하정렬 Text_SetColor(tx,Brown);#색상 Text_SetSize(tx,20);#크기 } 모든 봉 위 또는 아래에 신호가 나오네요. 이게 아니고 핵심은 색깔이 변할때만 나오게 해주면 됩니다. 감사합니다.(더불어 전략수식도 알려주시면 감사하겠숩니다)
프로필 이미지
knoll
2025-05-14
268
글번호 190788
지표
답변완료

함수요청

안녕하세요? 아래전략에 대해 스크립트 작성부탁드립니다. 종가기준입니다. 현캔들 완성성봉이 최근 20개봉 고점과 최근 20영업일의 볼린저 밴드 상단을 돌파하되 그 돌파 기준이 되는 볼린저 밴드 상단의 좌우로 각 5영업일의 고점이어야 함. 3개봉 후 시가에 매도 진입, 매도 진입후 7개 후 악봉 시가에 매도 청산 현캔들 완성성봉이 최근 20개봉 저점과 최근 20영업일의 볼린저 밴드 하단을 돌파하되 그 돌파 기준이 되는 볼린저 밴드 상단의 좌우로 각 5영업일의 저점이어야 함. 3개봉 후 시가에 매수 진입, 매수 진입후 7개 후 악봉 시가에 매수 청산
프로필 이미지
흰둥이아빠
2025-05-14
232
글번호 190787
시스템
답변완료

종목검색 문의 드립니다

슈퍼트렌드(12,3) 상승전환 검색식 부탁드립니다
프로필 이미지
비리번
2025-05-13
250
글번호 190786
종목검색
답변완료

부탁드립니다

input: 기준배율(1.8), 익절비율(1.01), 손절비율(0.995), 진입선색(cyan), 익절선색(green), 손절선색(red); var: 기준거래량(0), 중심선(0), 제곱합(0), 분산(0), 표준편차(0), BB상단(0), ma5(0), ma20(0), 진입가(0), 익절선(0), 손절선(0), 신호발생(false), 매도출력(false), ID_진입선(0), ID_익절선(0), ID_손절선(0), ID_txt(0); // === 기준 계산 === 기준거래량 = ma(volume, 20); 중심선 = ma(Close, 20); 제곱합 = ma(Close * Close, 20); 분산 = 제곱합 - 중심선 * 중심선; 표준편차 = SquareRoot(분산); BB상단 = 중심선 + 표준편차 * 2; ma5 = ma(Close, 5); ma20 = ma(Close, 20); // === 매수 신호 === if (신호발생 == false) and (volume > 기준거래량 * 기준배율) and (Close > BB상단) and (Close > Open) and ((Close - Open) > (High - Low) * 0.6) and (ma5 > ma20) then begin TL_New(sDate,sTime,0,sDate,sTime,99999999); // 기존 선 삭제 TL_Delete(ID_진입선); TL_Delete(ID_익절선); TL_Delete(ID_손절선); 진입가 = Close; 익절선 = 진입가 * 익절비율; 손절선 = 진입가 * 손절비율; // 진입선 ID_진입선 = TL_New(sdate, stime, 진입가,NextBarSdate,NextBarStime,진입가); TL_SetColor(ID_진입선, 진입선색); TL_SetSize(ID_진입선, 2); // 익절선 ID_익절선 = TL_New(sdate, stime, 익절선, NextBarSdate, NextBarStime, 익절선); TL_SetColor(ID_익절선, 익절선색); TL_SetSize(ID_익절선, 2); // 손절선 ID_손절선 = TL_New(sdate, stime, 손절선, NextBarSdate, NextBarStime, 손절선); TL_SetColor(ID_손절선, 손절선색); TL_SetSize(ID_손절선, 2); 신호발생 = true; 매도출력 = false; end; // === 매도 신호 === if (신호발생 == true) and (매도출력 == false) then begin if (Close >= 익절선) or (Close <= 손절선) then begin ID_txt = Text_New(date, time, High, "SELL"); Text_SetColor(ID_txt, red); 매도출력 = true; end; end; // === 상태 초기화 === if (매도출력 == true) and ((Close > 진입가 * 1.2) or (Close < 진입가 * 0.9)) then begin 신호발생 = false; 매도출력 = false; end; 차트에 구현이 되질않아요 해외선물에 구현되게끔 부탁드립니다
프로필 이미지
윤호석
2025-05-13
256
글번호 190785
지표
답변완료

부탁드립니다

Input: 기준배율(1.8), 익절비율(1.02), 손절비율(0.98); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(false), 매도완료(false), 승수(0), 총수(0), 승률(0); // --- 거래 조건 --- 기준거래량 = Average(volume, 20); If 진입중 == false and 매도완료 == false Then Begin If volume > 기준거래량 and Close > BollBandUp(20, 2) and Close > Open and (Close - Open) > (High - Low) * 0.6 Then Begin 진입가 = Close; 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 진입중 = true; 총수 = 총수+1; Text_New(date, time, Close, "BUY"); End; End; // --- 청산 조건 --- If 진입중 == true and 매도완료 == false Then Begin If Close >= 익절가 or Close <= 손절가 Then Begin If Close >= 익절가 Then 승수 = 승수+ 1; Text_New(date, time, Close, "SELL"); 매도완료 = true; End; End; // --- 상태 초기화 --- If 매도완료 == true and (Close > 진입가 * 1.2 or Close < 진입가 * 0.9) Then Begin 진입중 = false; 매도완료 = false; End; // --- 승률 계산 --- If 총수 > 0 Then 승률 = 승수 / 총수 * 100.0; Plot1(승률, "승률"); 차트에 구현이 되질않아요 해외선물에 구현될수있도록 부탁드립니다!
프로필 이미지
윤호석
2025-05-13
253
글번호 190784
지표

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

프로필 이미지
해암
2025-05-13
0
글번호 190783
지표
답변완료

문의드립니다.

아래의 수식을 변화부탁드립니다. =================== / ~~ Inputs { PriceValue = input.string("hl2", options = ["hl2","VWAP", "sma", "wma", "ema", "hma"], group="", inline="Value") maLen = input.int(5, minval=2, maxval=200, title="", group="", inline="Value", tooltip=t1) TargetValue = input.string("Price Action", options = ["Price Action","VWAP", "Volatility", "sma", "wma", "ema", "hma"], group="", inline="Target") maLen_ = input.int(5, minval=2, maxval=200, title="", group="", inline="Target", tooltip=t2) // Input parameters for the KNN Moving Average numberOfClosestValues = input.int(3, "Number of Closest Values", 2, 200, tooltip=t3) smoothingPeriod = input.int(50, "Smoothing Period", 2, 500, tooltip=t4) windowSize = math.max(numberOfClosestValues, 30) // knn Color Upknn_col = input.color(color.lime, title="", group="KNN Color", inline="knn col") Dnknn_col = input.color(color.red, title="", group="KNN Color", inline="knn col") Neuknn_col = input.color(color.orange, title="", group="KNN Color", inline="knn col") // MA knn Color Maknn_col = input.color(color.teal, title="", group="MA KNN Color", inline="MA knn col") // BG Color bgcolor = input.bool(false, title="Trend Prediction Color", group="BG Color", inline="bg", tooltip=t5) Up_col = input.color(color.lime, title="", group="BG Color", inline="bg") Dn_col = input.color(color.red, title="", group="BG Color", inline="bg") //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ kNN Classifier { value_in = switch PriceValue "hl2" => ta.sma(hl2,maLen) "VWAP" => ta.vwap(close[maLen]) "sma" => ta.sma(close,maLen) "wma" => ta.wma(close,maLen) "ema" => ta.ema(close,maLen) "hma" => ta.hma(close,maLen) meanOfKClosest(value_,target_) => closestDistances = array.new_float(numberOfClosestValues, 1e10) closestValues = array.new_float(numberOfClosestValues, 0.0) for i = 1 to windowSize value = value_[i] distance = math.abs(target_ - value) maxDistIndex = 0 maxDistValue = closestDistances.get(0) for j = 1 to numberOfClosestValues - 1 if closestDistances.get(j) > maxDistValue maxDistIndex := j maxDistValue := closestDistances.get(j) if distance < maxDistValue closestDistances.set(maxDistIndex, distance) closestValues.set(maxDistIndex, value) closestValues.sum() / numberOfClosestValues // Choose the target input based on user target_in = switch TargetValue "Price Action" => ta.rma(close,maLen_) "VWAP" => ta.vwap(close[maLen_]) "Volatility" => ta.atr(14) "sma" => ta.sma(close,maLen_) "wma" => ta.wma(close,maLen_) "ema" => ta.ema(close,maLen_) "hma" => ta.hma(close,maLen_) knnMA = meanOfKClosest(value_in,target_in) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ kNN Prediction { // Function to calculate KNN Classifier price = math.avg(knnMA, close) c = ta.rma(knnMA[1], smoothingPeriod) o = ta.rma(knnMA, smoothingPeriod) // Defines KNN function to perform classification knn(price) => Pos_count = 0 Neg_count = 0 min_distance = 10e10 nearest_index = 0 for j = 1 to 10 distance = math.sqrt(math.pow(price[j] - price, 2)) if distance < min_distance min_distance := distance nearest_index := j Neg = c[nearest_index] > o[nearest_index] Pos = c[nearest_index] < o[nearest_index] if Pos Pos_count += 1 if Neg Neg_count += 1 output = Pos_count>Neg_count?1:-1 // Calls KNN function and smooths the prediction knn_prediction_raw = knn(price) knn_prediction = ta.wma(knn_prediction_raw, 3) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Plots { // Plots for display on the chart knnMA_ = ta.wma(knnMA,5) knnMA_col = knnMA_>knnMA_[1]?Upknn_col:knnMA_<knnMA_[1]?Dnknn_col:Neuknn_col Classifier_Line = plot(knnMA_,"Knn Classifier Line", knnMA_col) MAknn_ = ta.rma(knnMA, smoothingPeriod) plot(MAknn_,"Average Knn Classifier Line" ,Maknn_col) green = knn_prediction < 0.5 red = knn_prediction > -0.5 bgcolor( green and bgcolor? color.new(Dn_col,80) : red and bgcolor ? color.new(Up_col,80) : na) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} ================= 도와주심에 항상 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2025-05-13
413
글번호 190782
지표

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

프로필 이미지
해암
2025-05-13
0
글번호 190781
지표
답변완료

추가 질문 드려요.

안녕하세요. NthHighest과 관련된 추가 질문 드려요. 동일한 값이 나열 되어 있을 때는 그 값들이 다 순서대로 없어질 때까지는 계속 같은 값이 나오잖아요.. ^^;; 제가 찾고 싶은 것은 첨부 이미지를 보시면, 다시 예를 들어 설명 드릴께요. 만약, 과거 40일 중 선행스팬2(구름대의 파란색 라인)의 값이 대부분 중복되어 있습니다. 그런데, 저 중복된 값들을 그냥 1개의 값이라고 생각하고, 40일 기간 중 선행스팬2의 가장 큰 값과 2번째 큰값, 3번째 큰값 그리고 가장 작은 값과 2번째로 작은 값, 3번째로 작은 값을 찾고 싶습니다. 동일한 값은 그냥 1개의 값으로 처리하고 싶어요~ 혹시 가능한지요? 가능하시면 condition1=~ 형태로 부탁 드립니다. 늘 도와 주셔서 감사합니다. 좋은 하루 보내세요.~ ------------------------------- 안녕하세요 예스스탁입니다. 1 예 맞습니다. 2 2,2,2,1,1,1,1,.. 2,2,1,1,1,1,1,... 동일값이면 순위가 차례대로 부여됩니다. 30봉 중 2가 3개이상이면 2가 리턴되고 2가 3개 미만이면 1이 리턴됩니다. 즐거운 하루되세요 > 이루나라 님이 쓴 글입니다. > 제목 : NthHighest 관련 질문입니다. > 안녕하세요. NthHighest(N, Value, Length) 함수가 궁금한데 예시를 통해 질문 드립니다. 1) 첫번째 질문입니다. 지난 30일 동안 20일이동평균의 값 중 가장 큰 값부터 위에서 아래로 3번째로 큰 값을 찾고 싶습니다. 그러면, NthHighest(3, 20일이동평균, 30) 이렇게 사용하면 될까요? 2) 두번째 질문입니다. 만약에 1번이 맞다고하면, 말도 안되는 가정이지만 NthHighest(3, 20일이동평균, 30) 수식을 사용했을 때 30일 기간 중 20일이동평균의 값이 1과 2 딱 2가지 밖에 없다고 한다면, 그럼 그 결과 값은 어떤게 나오는 건가요? 3번째 큰 값이 없어서요.. 늘 감사합니다 좋은 하루 보내세요.
프로필 이미지
이루나라
2025-05-14
248
글번호 190780
검색

가자아이 님에 의해서 삭제되었습니다.

프로필 이미지
가자아이
2025-05-13
12
글번호 190776
지표