커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

함수요청

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

종목검색 문의 드립니다

슈퍼트렌드(12,3) 상승전환 검색식 부탁드립니다
프로필 이미지
비리번
2025-05-13
221
글번호 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
221
글번호 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
213
글번호 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
268
글번호 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
210
글번호 190780
검색

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

프로필 이미지
가자아이
2025-05-13
9
글번호 190776
지표
답변완료

질문드립니다.

안녕하세요. 시스템 성과보고서에 보면 진입효율과 청산효율이 있습니다. 이거 수식좀 알수있을까요? 그리고 진입효율을 차트에 지표로 띄울수도 있는지 궁금합니다. 예스스탁 같은데서 진입효율값을 불러오려면 어떻게해야할까요.
프로필 이미지
율담
2025-05-13
173
글번호 190774
사용자 함수