커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
7606
글번호 230811
지표
답변완료

하이킨아시 실시간

알려주신 수식이 약간 복잡합니다. 혹시 다른 수식을 참고하여 간단히 할 수 있을까? 파라볼릭 쌍바닥 쌍봉 직전 수식을 위에 올려봅니다. 수정 부탁드립니다.Input : af(0.004), maxAF(0.2);Var : cSarv(0),T(0),tx(0),LL(0),LL1(0),HH(0),HH1(0);cSarv = csar(af,maxAF);plot1(c);If crossup(c,cSarv) Then { T = 1; HH = H; HH1 = HH[1]; var1 = cSarv; Text_Delete(tx);}If CrossDown(c,cSarv) Then { T = -1; LL = L; LL1 = LL[1]; var4 = csarv; Text_Delete(tx);}if T == 1 Then{ if H > HH Then HH = H; Text_Delete(tx); if HH >= HH1-0.5 and HH <= HH1+0.5 and var4>= lowest(L,500)+9 and var4 >= highest(H,250)-1 Then { tx = Text_New(sDate,sTime,HH+1.5,"■"); Text_SetStyle(tx,1,2); Text_SetColor(tx,Cyan); Text_SetSize(tx,45); } }if T == -1 Then{ if L < LL Then LL = L; Text_Delete(tx); if LL <= LL1+0.5 and LL >= LL1-0.5 and var1<= highest(H,500)-9 and var1<= lowest(L,250)+1 Then { tx = Text_New(sDate,sTime,LL-1.5,"■"); Text_SetStyle(tx,1,2); Text_SetColor(tx,Lime); Text_SetSize(tx,45); }}input : MaPeriod(2),MaPeriod2(1);var : maOpen(0),maClose(0),maLow(0),maHigh(0);var : haOpen(0),haClose(0),haLow(0),haHigh(0);var : ExtMapBuffer1(0),ExtMapBuffer2(0),ExtMapBuffer3(0),ExtMapBuffer4(0);var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer7(0),ExtMapBuffer8(0);var : r(0),g(0),b(0), TL(0),t(0),tx(0);var : HH(0),LL(0),HH1(0),LL1(0),HH2(0),LL2(0);var : tx1(0),tx2(0);if Index == 0 Then{maOpen=Open;maClose=Close;maLow=Low;maHigh=High;}Else{maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod;maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod;maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod;maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod;haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;haClose=(maOpen+maHigh+maLow+maClose)/4;haHigh=Max(maHigh, Max(haOpen, haClose));haLow=Min(maLow, Min(haOpen, haClose));if (haOpen<haClose) then{r=255;g=10;b=0;ExtMapBuffer7=haLow;ExtMapBuffer8=haHigh;t = 1;}else{r=0;g=191;b=255;ExtMapBuffer7=haHigh;ExtMapBuffer8=haLow;t = -1;}ExtMapBuffer5=haOpen;ExtMapBuffer6=haClose;ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);}PlotPaintBar(ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer3,ExtMapBuffer4,"강조",Rgb(r,g,b));if T == 1 Then{if T != T[1] Then{HH = haHigh;HH1 = HH[1];HH2 = HH1[1];Text_Delete(tx2);Condition1 = False;if Condition1 == False and HH1 > 0 and max(HH,HH1) <= min(HH, HH1)+0.5 Then{Condition1 = true;tx1 = Text_New(sDate,sTime,HH,"■");Text_SetStyle(tx1,2,1);Text_SetColor(tx1,Red);Text_SetSize(tx1,15);}}Else{if haHigh > HH Then{HH = haHigh;if HH1 > 0 and max(HH,HH1) <= min(HH, HH1)+0.5 Then{if Condition1 == False Then{Condition1 = true;tx1 = Text_New(sDate,sTime,HH,"■");Text_SetStyle(tx1,2,1);Text_SetColor(tx1,Magenta);Text_SetSize(tx1,15);}Else{Text_SetLocation(tx1,sDate,sTime,HH);}}Else{if Condition1 == true Then{Text_Delete(tx1);}}}}}if T == -1 Then{if T != T[1] Then{LL = haLow;LL1 = LL[1];LL2 = LL1[1];Text_Delete(tx1);Condition2 = False;if Condition2 == False and LL1 > 0 and max(LL,LL1) <= min(LL, LL1)+0.5 Then{Condition2 = true;tx2 = Text_New(sDate,sTime,LL,"■");Text_SetStyle(tx2,2,0);Text_SetColor(tx2,Cyan);Text_SetSize(tx2,15);}}Else{if haLow < LL Then{LL = haLow;if LL1 > 0 and max(LL,LL1) <= min(LL, LL1)+0.5 Then{if Condition2 == False Then{Condition2 = true;tx2 = Text_New(sDate,sTime,LL,"■");Text_SetStyle(tx2,2,2);Text_SetColor(tx2,Cyan);Text_SetSize(tx2,15);}Else{Text_SetLocation(tx2,sDate,sTime,LL);}}Else{if Condition2 == true Then{Text_Delete(tx2);}}}}}
프로필 이미지
고성
2026-09-09
127
글번호 233548
강조
답변완료

해외선물 나스닥 세로선 수식 부탁드립니다.

21시50분 22시10분22시50분 23시10분23시50분 00시10분00시50분 01시10분01시50분 02시10분02시50분 03시10분03시50분 04시10분세로선을 만들고 싶습니다.
프로필 이미지
멋정이
2026-09-08
100
글번호 233547
지표
답변완료

합성시스템에서의 SetStopLoss

안녕하세요일전에 글번호 231963에서 질문 드린 내용의 추가 질문입니다.답변해주신대로 여러개의 신호가 합쳐진 합성시스템에서 단 하나의 SetStopLoss 명령어로 모든 신호들의 손절을 제어하려면 가장 좋은 방법이 무엇인지 궁금합니다.감사합니다.
프로필 이미지
맘속의행복
2026-09-08
80
글번호 233544
시스템
답변완료

하이킨아시스무스 실시간

현재 쌍바닥 조건을 참고로, 쌍바닥 바로 직전을 표시하고 싶습니다.반등하다 하락전환한 후 직전 저점의 -0.5 ~ +0.5 사이에 들어오면 봉 하단에 네모 표시.이후 -0.5 아래로 추가 하락하거나, 위로 양전환되면 네모 삭제.쌍봉 직전은 반대.LL1 > 0 은 무슨 의미이며,꼭 필요한가요? 감사합니다.input : MaPeriod(2),MaPeriod2(1);var : maOpen(0),maClose(0),maLow(0),maHigh(0);var : haOpen(0),haClose(0),haLow(0),haHigh(0);var : ExtMapBuffer1(0),ExtMapBuffer2(0),ExtMapBuffer3(0),ExtMapBuffer4(0);var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer7(0),ExtMapBuffer8(0);var : r(0),g(0),b(0), TL(0),t(0),tx(0);var : HH(0),LL(0),HH1(0),LL1(0),HH2(0),LL2(0);if Index == 0 Then{maOpen=Open;maClose=Close;maLow=Low;maHigh=High;}Else{maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod;maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod;maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod;maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod;haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;haClose=(maOpen+maHigh+maLow+maClose)/4;haHigh=Max(maHigh, Max(haOpen, haClose));haLow=Min(maLow, Min(haOpen, haClose));if (haOpen<haClose) then{r=255;g=10;b=0;ExtMapBuffer7=haLow;ExtMapBuffer8=haHigh;t = 1;}else{r=0;g=191;b=255;ExtMapBuffer7=haHigh;ExtMapBuffer8=haLow;t = -1;}ExtMapBuffer5=haOpen;ExtMapBuffer6=haClose;ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);}PlotPaintBar(ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer3,ExtMapBuffer4,"강조",Rgb(r,g,b));if T == 1 Then{if T != T[1] Then{HH = haHigh;HH1 = HH[1];HH2 = HH1[1];if LL2 > 0 and max(LL,LL1,LL2) <= min(LL, LL1,LL2)+0.8 and haclose < highest(hahigh,200)-9 and haclose < lowest(halow,100)+2 Then{ tx = Text_New(sDate,sTime,L-1,"■"); Text_SetStyle(tx,2,2); Text_SetColor(tx,Black); Text_SetSize(tx,25); }if LL1 > 0 and max(LL,LL1) <= min(LL, LL1)+0.5 and haclose < highest(hahigh,200)-9 and haclose < lowest(halow,100)+2 Then{ tx = Text_New(sDate,sTime,L-1,"●"); Text_SetStyle(tx,2,2); Text_SetColor(tx,Red); Text_SetSize(tx,15); }}Else{if haHigh > HH ThenHH = haHigh;}}if T == -1 Then{if T != T[1] Then{LL = haLow;LL1 = LL[1];LL2 = LL1[1];if HH2 > 0 and max(HH,HH1,HH2) <= min(HH, HH1,HH2)+0.8 and haclose > lowest(halow,200)+9 and haclose > highest(hahigh,100)-2 Then{ tx = Text_New(sDate,sTime,H+1,"■"); Text_SetStyle(tx,2,2); Text_SetColor(tx,Red); Text_SetSize(tx,25); }if HH1 > 0 and max(HH,HH1) <= min(HH, HH1)+0.5 and haclose > lowest(halow,200)+9 and haclose > highest(hahigh,100)-2 Then{ tx = Text_New(sDate,sTime,H+1,"●"); Text_SetStyle(tx,2,2); Text_SetColor(tx,Blue); Text_SetSize(tx,15); }}Else{if haLow < LL ThenLL = haLow;}}
프로필 이미지
고성
2026-09-08
138
글번호 233540
강조
답변완료

관리자님 수식 만들어 주셔서 너무 감사합니다.. 궁금한점 있어서 추가 질문합니다.

1번 질문 제가 뭔하는 건 어느 시작점 캔들부터 3개의 캔들을 기준으로1 2 3 1 2 3 1 2 3 1 2 3숫자로 표현하면 이렇게 캔들이 중복을 시켰을때도지캔들 상관없이 2번 캔들 중간에 공간이 생기면 표시를 원하는 겁니다.var : B(0);if L > H[2] Then{ B = box_new(sDate[2],sTime[2],H[2],sDate,sTime,L); Box_SetColor(B,Blue); Box_SetFill(B,true);}if H < L[2] Then{ B = box_new(sDate[2],sTime[2],L[2],sDate,sTime,H); Box_SetColor(B,Red); Box_SetFill(B,true);}해결해 주셔서 감사합니다.추가질문 입니다.질문1숫자로 표현하면 이렇게 캔들이 중복을 시켰을때도지캔들 상관없이 2번 캔들 중간에 공간이 생겨서 표시가 된 상태에서1번 캔들 종가 와 2번캔들 시가 사이에 갭이 있다면 2번 캔들 종가 와 3번캔들 시가 사이에 갭이 있다면갭 까지 확장에서 표현이 가능할까요?질문2숫자로 표현하면 이렇게 캔들이 중복을 시켰을때도지캔들 상관없이 2번 캔들 중간에 공간이 없는 상태에서1번 캔들 종가 와 2번캔들 시가 사이에 갭이 있다면 2번 캔들 종가 와 3번캔들 시가 사이에 갭이 있다면갭 표시가 가능할까요?질문3표시된 박스가 5개 캔들 우측 옆으로 확장이 가능할까요?만약 수식을 통합해서 했을때 복잡하거나 오류가 나면 따로 따로 해주셔도 됩니다... 진심으로 감사합니다.
프로필 이미지
멋정이
2026-09-07
131
글번호 233536
지표
답변완료

수식 부탁드립니다.

지표에서는 외국인 콜 EI715 풋 EI719 랭귀는 불러오는데 스팟에서는function RequestForeignData() { try { var optObj = GetActiveOptionObject(); if (optObj && typeof optObj.GetInvestorInfoByCategory === "function") { // 파라미터 규격: GetInvestorInfoByCategory(nCategory, nInvestor, nAmountQty, nBuySell, nIndex) // nCategory: 1 (KOSPI옵션전체) // nInvestor: 1 (외국인) // nAmountQty: 1 (금액) // nBuySell: 2 (매수), 1 (매도) // nIndex: 0 (당일) var callBuy = optObj.GetInvestorInfoByCategory(1, 1, 1, 2, 0); var callSell = optObj.GetInvestorInfoByCategory(1, 1, 1, 1, 0); // 만약 KOSPI옵션전체(1) 내에서 콜/풋 구분이 통합 수급으로 잡히는 경우 전체 순매수로 반영 g_foreignTotalAmt = (callBuy - callSell); g_foreignCallAmt = g_foreignTotalAmt; // 콜/풋 세부 구분이 필요할 경우 매핑 조정 g_foreignPutAmt = 0; // 디버깅 로그로 정상 수신 여부 확인 if (typeof Main !== "undefined") { Main.MessageLog(">>> [수급 데이터 수신 성공] 외인 옵션 순매수금액: " + (g_foreignTotalAmt / 100000000).toFixed(1) + "억 <<<"); } } else { if (typeof Main !== "undefined") { Main.MessageLog(">>> [경고] Option1 객체 또는 GetInvestorInfoByCategory 함수를 찾을 수 없습니다. <<<"); } } } catch(e) { if (typeof Main !== "undefined") { Main.MessageLog(">>> [수급 연동 에러]: " + e.message + " <<<"); } }} 이렇게 불러오면 되는지 검토바람 외국인 선물수량 ,외국인 콜금액 외국인풋금액을 스팟에서 불러오는것 부탁드립니다.
프로필 이미지
구름달
2026-09-07
141
글번호 233532
지표
답변완료

이평선

안녕하세요 주봉 월봉 10이평 수식 부탁합니다수고하세요
프로필 이미지
오중부
2026-09-07
100
글번호 233519
지표
답변완료

문의합니다..^^*

아래수식은 예스지표수식입니다..이수식을 종목검색으로 변환 부탁드립니다...이유는 제가 아래 조건을 파워종목검색에 적용해서 종목을 검색하고자 합니다..Plot1(dayhigh(1));
프로필 이미지
서민순
2026-09-06
140
글번호 233517
종목검색
답변완료

예스종목검색식으로 변환부탁드립니다.

항상 감사드립니다.다음 신호수식을 예스 종목검색식으로 변환부탁드립니다.감사합니다.A=(highest(H, 22) - C) / (highest(H, 22) - lowest(L, 22)) * (100);B = RSI(25);A < B
프로필 이미지
자유만세
2026-09-06
102
글번호 233516
종목검색