커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7612
글번호 230811
답변완료
지표문의
1.아래지표를 해외 선물에 적용하니 표시가 안돼요수정 좀 해주세요.##+++++++++++++++++++++++#+++++++++++++++++++++++##+++++++++++++++++++++++#+++++++++++++++++++++++###===================#Vars:j(0),행번호(0),단위가격(0),추가행(0),알파벳(0),최대개수(0),총개수(0),봉개수(0),추정거래량(0),cnt(0),중앙가격(0),중심행(0),중심가격(0);Arrays:가격대[100](0),거래량[100](0),개수[100](0),프로파일[100](0);단위가격 = 2 * PriceScale;if Date <> Date[1] thenbegin for 행번호 = 0 to 99 begin 거래량[행번호]=0; 개수[행번호]=0; 프로파일[행번호]=0; end; 최대개수=0; 총개수=0; 가격대[0]=High+단위가격*20; for 행번호=0 to 98 가격대[행번호+1]=가격대[행번호]-단위가격;end;if 가격대[0] <= High thenbegin 추가행 = Ceiling((High-가격대[0])/단위가격)+5; if 추가행>50 then 추가행=50; for 행번호=(99-추가행) downto 0 begin 가격대[행번호+추가행]=가격대[행번호]; 거래량[행번호+추가행]=거래량[행번호]; 개수[행번호+추가행]=개수[행번호]; 프로파일[행번호+추가행]=프로파일[행번호]; end; 가격대[0]=가격대[0]+단위가격*추가행; for 행번호=0 to 추가행-1 가격대[행번호+1]=가격대[행번호]-단위가격; for 행번호=0 to 추가행 begin 거래량[행번호]=0; 개수[행번호]=0; 프로파일[행번호]=0; end; 중심행=중심행+추가행;end;cnt=0;for 행번호=0 to 99 begin if Low<=가격대[행번호] and 가격대[행번호]<=High then cnt=cnt+1;end;if cnt>0 then 추정거래량=Volume/cnt;else 추정거래량=0;for 행번호=0 to 99 begin if Low<=가격대[행번호] and 가격대[행번호]<=High then begin 거래량[행번호]=거래량[행번호]+추정거래량; 개수[행번호]=개수[행번호]+1; if 개수[행번호]>최대개수 then begin 최대개수=개수[행번호]; 중심행=행번호; end else if 개수[행번호]=최대개수 then begin if 거래량[행번호]>거래량[중심행] then 중심행=행번호; end; end;end;중심가격=가격대[중심행];Var62 =(max(high - low, abs(high - close[1]), abs(low - close[1])));input : period1(10),multiplier1(3);input : period2(20),multiplier2(2);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);var : TL1(0),TL2(0),TL3(0),TL(0),box1(0),box2(0);src = 중심가격;//src = (H+L)/2;if CurrentBar > 1 Then{ alpha1 = 1 / period1; source1 = Var62; 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 중심가격 > UpperBand1 Then direction1 = 1; if 중심가격 < LowerBand1 Then direction1 = -1; if direction1 == 1 Then supertrend1 = lowerband1; Else supertrend1 = upperband1; alpha2 = 1 / period2; source2 = Var62; 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 중심가격 > UpperBand2 Then direction2 = 1; if 중심가격 < LowerBand2 Then direction2 = -1; if direction2 == 1 Then supertrend2 = lowerband2; Else supertrend2 = upperband2; alpha3 = 1 / period3; source3 = Var62; 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", rgb(247, 75, 201), 0, 1); NoPlot(2); } Else { Plot2(superTrend1,"매도1", Indigo, 0, 1); NoPlot(1); } if C < superTrend2 Then { Plot3(superTrend2,"매수2", rgb(247, 75, 201), 0, 2); NoPlot(4); } Else { Plot4(superTrend2,"매도2", Indigo, 0, 2); NoPlot(3); } if C < superTrend3 Then { Plot5(superTrend3,"매수3", rgb(247, 75, 201), 0, 3); NoPlot(6); } Else { Plot6(superTrend3,"매도3", Indigo, 0, 3); NoPlot(5); }}var : box(0),tx(0);if CrossUp(c,supertrend2) Then{ TL = TL_New(sDate,sTime,0,sDate,sTime,99999999); TL_SetColor(TL,rgb(255, 215, 0)); TL_SetSize(TL,1); TL_SetStyle(TL,2); TX = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx,2,0); Text_SetSize(tx,20); Text_SetColor(tx,Red); }Else if CrossDown(c,supertrend2) Then{ TL = TL_New(sDate,sTime,0,sDate,sTime,999999999); TL_SetColor(TL, rgb(193, 216, 251)); TL_SetSize(TL,2); TL_SetStyle(TL,2); TX = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx,2,1); Text_SetSize(tx,20); Text_SetColor(tx,Blue); }Else{ if var4 > 0 and Index < var4+5 Then { TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1); TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2); TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3); Box_SetEnd(box1,NextBarSdate,NextBarStime,var2); Box_SetEnd(box2,NextBarSdate,NextBarStime,var3); }}그럼 수고하세요
2026-07-11
695
글번호 232794
답변완료
실망이네요
예스나 ai 에 종목검색식을 하나 의뢰 했는데 불성실한 ai의 대답 무료 크레딧만 소모하게 만들고 결론은 유료로 가입하게 만들기 위한 수법인가요?
2026-07-11
409
글번호 232793
답변완료
TSI 다중 골든크로스 종목검색식
다음 TSI를 이용한 종목 검색식을 만들어 주세요. INPUTS: R(8), S(16), U(12), SMTHLEN(3);VALUE1 = TSI(C, R, S, U);VALUE2 = Ema(TSI(C, R, S, U), SMTHLEN);1) 현재 캔들에서 VALUE1 VALUE2 골든크로스가 발생하고 2) 현재 캔들에서 VALUE1은 VALUE1 >-3 and VALUE1<10 범위에 위치하고 3) VALUE1과 VALUE2 골든크로스가 이전 25 캔들내에서 한 번 이상 발생하여 현재 캔들 포함하여 두 번이상 발생미리 감사드립니다.
2026-07-11
437
글번호 232792
답변완료
피라미딩 명령어?
피라미딩 허용하고 설정하는 메뉴가 앱에서 속성이나 시스템에서 하는 것이외에편집기에서 명령어로 설정하는 방법은 없나요?중복 진입으로 코딩했는데, 전략 속성에서 메뉴에서 중복진입을 따로 허용해주지 않으면 중복 진입이 안 되네요..제가 멀 잘못 한 걸까요?여러 전략을 시뮬래이션을 자동으로 하는데, 거기에서 걸리네요.
2026-07-11
429
글번호 232791
답변완료
문의드립니다
문의드립니다data2 obv 잔고수량(100,000) 이후에 data1 rsi oscillator bull 매수신호시 data1매수식data2 obv 잔고수량 (50,000) 또는 data1 rsi oscillator bull 매도신호 data1 모두매도식
2026-07-10
228
글번호 232776
답변완료
해당 봉 위치
아래 조건의 해당봉 위치에 황금종 그림과 풍경소리가 나도록 하고 싶은데 잘 안됩니다.실행이 잘 될 수 있도록 수식을 수정해 주시면 감사하겠습니다.// ============================================================// 진입 후보 '황금 종' 알림 지표 (수렴 / 쌍바닥 / 쌍봉)// 차트 봉 위/아래에 황금 종 ?? + 소리// 로직 = sac_semiauto.py 파이썬 알림과 동일 (LRL 3선 12/60/104 + OHLC + 거래량)//// ★플랫폼 확인 필요(컴파일 오류 시 알려주세요): 아래 표시★ 붙은 함수는// - LRL(Close, N) // - SwingLowBar / SwingHighBar (스윙 극점 찾기)// - Text_New / Text_SetColor / Text_SetStyle (황금 종 그리기)// - PlaySound / Alert (소리)// ============================================================Input: ConvStd(2.5), // 수렴: 3선 표준편차 임계 SwingW(3), // 스윙 극점 강도(반폭) LookBack(60), // 쌍바닥/쌍봉 되돌아보기 봉수 LevelTol(25), // 두 극점 높이차 허용(P) Prom(18), // 사이 반등/하락 최소 깊이(P) VolMult(1.2), // 거래량 배수(평균 대비) VolLen(60); // 거래량 평균 길이Var: v1(0), v2(0), v3(0), v1p(0), v2p(0), v3p(0), mean3(0), sd3(0), avgVol(0), sig(0), pat(""), b1(0), b2(0), lo1(0), lo2(0), hi1(0), hi2(0), midv(0), txtID(0), yPos(0), rng(0), sideStr("");// ── LRL 3선 (var1/2/3 = 12/60/104 선형회귀선) ★ ──v1 = LRL(Close, 12);v2 = LRL(Close, 60);v3 = LRL(Close, 104);v1p = v1[1]; // 직전 봉 값(사용자 변수는 시계열이라 [1] 인덱싱 가능)v2p = v2[1];v3p = v3[1];avgVol = Average(Volume, VolLen);rng = High - Low;sig = 0;pat = "";// ── ① 수렴 (3선 std<2.5 + 기울기 동일방향 + V1·V2 크로스) ──mean3 = (v1 + v2 + v3) / 3;sd3 = SquareRoot(((v1-mean3)*(v1-mean3) + (v2-mean3)*(v2-mean3) + (v3-mean3)*(v3-mean3)) / 3);if sd3 < ConvStd then begin if v1>v1p and v2>v2p and v3>v3p and v1>v2 and v1p<=v2p then begin sig = 1; pat = "수렴"; end; if v1<v1p and v2<v2p and v3<v3p and v1<v2 and v1p>=v2p then begin sig = -1; pat = "수렴"; end;end;// ── ② 쌍바닥(매수): 최근 두 스윙 저점 비슷 + 사이 반등 + 현재 상승 + 거래량 ★ ──if sig = 0 then begin b1 = SwingLowBar(1, Low, SwingW, SwingW, LookBack); // 가장 최근 확정 스윙저점(몇 봉 전). (Nth,값,좌봉,우봉,기간) b2 = SwingLowBar(2, Low, SwingW, SwingW, LookBack); // 그 전 스윙저점 if b1 >= 0 and b2 > b1 then begin lo1 = Low[b1]; lo2 = Low[b2]; midv = Highest(High, b2); // 사이 반등(대략) 최고 if AbsValue(lo1 - lo2) <= LevelTol and (midv - MaxList(lo1, lo2)) >= Prom and Close > lo1 + 2 and Volume >= VolMult * avgVol then begin sig = 1; pat = "쌍바닥"; end; end;end;// ── ③ 쌍봉(매도): 최근 두 스윙 고점 비슷 + 사이 하락 + 현재 하락 + 거래량 ★ ──if sig = 0 then begin b1 = SwingHighBar(1, High, SwingW, SwingW, LookBack); // (Nth,값,좌봉,우봉,기간) b2 = SwingHighBar(2, High, SwingW, SwingW, LookBack); if b1 >= 0 and b2 > b1 then begin hi1 = High[b1]; hi2 = High[b2]; midv = Lowest(Low, b2); if AbsValue(hi1 - hi2) <= LevelTol and (MinList(hi1, hi2) - midv) >= Prom and Close < hi1 - 2 and Volume >= VolMult * avgVol then begin sig = -1; pat = "쌍봉"; end; end;end;// ── 황금 종 ?? 표시 + 소리 ★ ──if sig <> 0 then begin if sig = 1 then begin yPos = Low - rng * 0.6; // 매수: 봉 아래에 종 sideStr = "매수"; end else begin yPos = High + rng * 0.6; // 매도: 봉 위에 종 sideStr = "매도"; end; txtID = Text_New(Date, Time, yPos, "??"); Text_SetColor(txtID, RGB(255, 215, 0)); // 황금색 (RGB 255,215,0) Text_SetStyle(txtID, 2, 2); // 가운데 정렬(플랫폼별 다를 수 있음) PlaySound("C:\DNN_model\chime.wav"); // '띵~똥' 종소리 Alert(pat + " " + sideStr + " 후보");end;
2026-07-10
1172
글번호 232775
답변완료
스토트릭스
최근 100봉 내에서 최고점과 최저점의 차이가 10P 이상일때, 트릭스 선이 상승전환하면 세로선 표시.하락은 반대. (변동폭이 클때만 세로선) 감사합니다.input : P(15),sto1(5);var : aa(0),HH(0),LL(0),fk(0);aa = trix(P) ;HH = highest(aa,sto1);LL = lowest(aa,sto1) ;fk = (aa-LL)/(HH-LL)*100;plot1(fk);
2026-07-09
359
글번호 232766
답변완료
수고하십니다
항상 좋은 일만 있으시기 바랍니다분봉차트에서 음봉을 무시 하고양봉만 연결한 직전양봉고가라인과양봉을 무시 하고 음봉만 연결한직전음봉저가라인을(2줄)요청 합니다
2026-07-09
145
글번호 232764
답변완료
수식 부탁합니다
TRIX(12,9)를 주가가 아닌 거래량으로 변환한 Trix 거래량 지표 부탁합니다.
2026-07-09
243
글번호 232763