커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

수식 부탁 드림니다

안녕 하세요수식 문의 드립니다1. (5)_HMAWavg(WAVG(가격, 기간/2)*2 - Wavg(가격, 기간), floor(sqrt(기간)));2. (20)_HMA3. (5)_HMA_고점4. (5)_HMA_저점5. (20)_HMA_고점6. (20)_HMA_저점7. (20)_가중이평----------------------------------------변수이름가격 = 종가기간1 = 5기간2 = 20기간3 = 20----------------------------------------챠트 표시에1. (5)_HMA 2. (20)_HMA3. 5_고점 4. 5_저점5. 20_고점 6. 20_저점7. 가중_20----------------------------------------나타나게 해 주십시요항상 감사 합니다
프로필 이미지
s1017051
2026-02-21
50
글번호 230672
지표
답변완료

수식수정 부탁드립니다

아래의 지표수식에 대해 수정 요망합니다.#기본조건 설정#===================================================================================================input : 상승단갭율(1.45), 양봉기준율(0.050), 음봉기준율(0.0499), 가격라인율(11.8);var : 양봉(False),음봉(False), GapUp(False), GapDown(False) ;input : 하락갭율양(1.75), 하락갭율음(-1.75);양봉 = C >= O *(1+양봉기준율/100) ;음봉 = C < O*(1+음봉기준율/100) or C < O ;GapUp = ( O - C[1] ) / C[1] * 100 >= 상승단갭율 ; GapDown = ( (C[1] * (1-하락갭율양/100) >= O) or ((O-C[1])/C[1] * 100 <= 하락갭율음) ) and C[1] > O and O[1] > O ; #시가 상승갭 발생의 경우#===================================================================================================if GapUp == true and C[1] <= O[1] and C > O Then { Var1 = C[1] ; Var2 = (C-O)*가격라인율/100+O ; }if GapUp == true and C[1] <= O[1] and C <= O Then { Var1 = C[1] ; Var2 = O ; }if GapUp == true and C[1] > O[1] and C > O Then { Var1 = C[1] ; Var2 = (C-O)*가격라인율/100+O ; }if GapUp == true and C[1] > O[1] and C <= O Then { Var1 = C[1] ; Var2 = O ; }Plot1(Var1, "상승갭전일종가라인");Plot2(Var2, "상승갭당일시가라인");#===================================================================================#갭하락캔들의 음봉 또는 양봉를 구별하여 라인 설정#===================================================================================if GapDown == true and C <= O Then #하락갭이면서 음봉인 경우{ if 양봉[1] == true Then { Var3 = O[1] ; Var4 = O ; } if 음봉[1] == true Then { Var3 = C[1] ; Var4 = C ; }}if GapDown == true and C > O Then #하락갭이면서 양봉인 경우{ if 양봉[1] == true and C <= C[1] Then #1봉전의 캔들이 양봉이면서 전일종가보다 당일종가가 낮은 경우는 1봉전 시가와 당일시가로 두개의 가격라인이 생성되고 { Var3 = O[1] ; Var4 = O ; } if 양봉[1] == true and C > C[1] Then #1봉전의 캔들이 양봉이면서 전일종가보다 당일종가가 높은 경우는 당일종가와 1봉전 종가로 두개의 가격라인이 생성되고 { Var3 = O[1] ; Var4 = O ; } if 음봉[1] == true and C <= C[1] Then #1봉전의 캔들이 음봉이면서 전일종가보다 당일종가가 낮은 경우는 1봉전 종가와 당일종가로 두개의 가격라인이 생성되고 { Var3 = C[1] ; Var4 = O ; } if 음봉[1] == true and C > C[1] Then #1봉전의 캔들이 음봉이면서 전일종가보다 당일종가가 높은 경우는 1봉전 종가와 당일시가로 두개의 가격라인이 생성되고 { Var3 = C[1] ; Var4 = O ; }}Plot3(Var3, "하락갭전일종가라인음양봉");Plot4(Var4, "하락갭당일가격라인음양봉");#==============================================================================================# 1. 상승 갭(Var1) 계단식 변동 추적 #==============================================================================================var : UGap0(0), UGap1(0), UGap2(0), UGap3(0); var : UIdx0(0), UIdx1(0), UIdx2(0), UIdx3(0); # 변동이 발생한 봉 번호(Index)var : URate(0), txUp(0);Input : U최소변동하락율(40),U계단변동율텍스트표시(1),글자크기UU(13),글자긁기UU(1),글자크기UD(13),글자긁기UD(1);var : U_UpCnt(0), U_DnCnt(0); var : U_PrevCnt1(0), U_PrevCnt2(0);if Var1 > 0 and Var1 != Var1[1] Then{ # 1-1. 가격 데이터 계단식 이관 if Var1[1] == Var1[2] Then { UGap3 = UGap2; UGap2 = UGap1; UGap1 = UGap0; } UGap0 = Var1; # 1-2. 발생 위치(인덱스) 계단식 이관 if Var1[1] == Var1[2] Then { UIdx3 = UIdx2; UIdx2 = UIdx1; UIdx1 = UIdx0; } UIdx0 = Index; # 1-3. 변동률 계산 및 텍스트 출력 if UGap1 > 0 Then { URate = (UGap0 - UGap1) / UGap1 * 100; # (현재-과거)/과거 * 100 if Var1[1] != Var1[2] Then { Text_Delete(txUp); } Else { # 연속 카운팅 및 과거 파동 저장 로직 if URate > 0 Then # 위로 변동 (상승) { if U_DnCnt > 0 Then { U_PrevCnt2 = U_PrevCnt1; U_PrevCnt1 = -U_DnCnt; } U_UpCnt = U_UpCnt + 1; # 상승 카운트 1 증가 U_DnCnt = 0; # 하락 카운트 초기화 } Else if URate < 0 Then # 아래로 변동 (하락) { if U_UpCnt > 0 Then { U_PrevCnt2 = U_PrevCnt1; U_PrevCnt1 = U_UpCnt; } U_DnCnt = U_DnCnt + 1; U_UpCnt = 0; } } if U계단변동율텍스트표시 == 1 and Abs(URate) >= U최소변동하락율 Then { if URate > 0 Then # 위로 변동 (상승) { txUp = Text_New(sDate, sTime, H * 1.05, "+" + NumToStr(URate, 2) + "%"); Text_SetColor(txUp, BlacK); Text_SetStyle(txUp, 2, 1); Text_SetSize(txUp, 글자크기UU); Text_SetBold(txUp, 글자긁기UU); } Else if URate < 0 Then # 아래로 변동 (하락) { txUp = Text_New(sDate, sTime, L * 0.95, NumToStr(URate, 2) + "%"); Text_SetColor(txUp, WhitE); Text_SetStyle(txUp, 2, 0); Text_SetSize(txUp, 글자크기UD); Text_SetBold(txUp, 글자긁기UD); } } }}#==============================================================================================# 2. 하락 갭(Var3) 계단식 변동 추적 및 텍스트 표시#==============================================================================================var : DGap0(0), DGap1(0), DGap2(0), DGap3(0); var : DIdx0(0), DIdx1(0), DIdx2(0), DIdx3(0); # 변동이 발생한 봉 번호(Index)var : DRate(0), txDown(0);Input : D최소변동하락율(30),D계단변동율텍스트표시(1),글자크기DU(15),글자긁기DU(1),글자크기DD(15),글자긁기DD(1);var : D_UpCnt(0), D_DnCnt(0); var : D_PrevCnt1(0), D_PrevCnt2(0); if Var3 > 0 and Var3 != Var3[1] Then{ # 2-1. 가격 데이터 계단식 이관 if Var3[1] == Var3[2] Then { DGap3 = DGap2; DGap2 = DGap1; DGap1 = DGap0; } DGap0 = Var3; # 2-2. 발생 위치(인덱스) 계단식 이관 if Var3[1] == Var3[2] Then { DIdx3 = DIdx2; DIdx2 = DIdx1; DIdx1 = DIdx0; } DIdx0 = Index; # 2-3. 변동률 계산 및 텍스트 출력 if DGap1 > 0 Then { DRate = (DGap0 - DGap1) / DGap1 * 100; if Var3[1] != Var3[2] Then { Text_Delete(txDown); } Else { # 연속 카운팅 및 과거 파동 저장 로직 if DRate > 0 Then # 위로 변동 (상승) { if D_DnCnt > 0 Then { D_PrevCnt2 = D_PrevCnt1; D_PrevCnt1 = -D_DnCnt; } D_UpCnt = D_UpCnt + 1; D_DnCnt = 0; } Else if DRate < 0 Then { if D_UpCnt > 0 Then { D_PrevCnt2 = D_PrevCnt1; D_PrevCnt1 = D_UpCnt; } D_DnCnt = D_DnCnt + 1; D_UpCnt = 0; } } if D계단변동율텍스트표시 == 1 and Abs(DRate) >= D최소변동하락율 Then { if DRate > 0 Then # 위로 변동 (상승) { txDown = Text_New(sDate, sTime, H * 1.05, "+" + NumToStr(DRate, 2) + "%"); Text_SetColor(txDown, Red); Text_SetStyle(txDown, 2, 1); Text_SetSize(txDown, 글자크기DU); Text_SetBold(txDown, 글자긁기DU); } Else if DRate < 0 Then # 아래로 변동 (하락) { txDown = Text_New(sDate, sTime, L * 0.95, NumToStr(DRate, 2) + "%"); Text_SetColor(txDown, Blue); Text_SetStyle(txDown, 2, 0); Text_SetSize(txDown, 글자크기DD); Text_SetBold(txDown, 글자긁기DD); } } }}plot1~4의 라인은 계단식 상승 또는 하락의 변동라인을 표시하게 되어 있는데 이 변동의 변동율을 차트에 표시하게 하는 수식입니다.문제는 일정한 변동율이 있을 때에만 표시되게 수식을 구성하였는데 일정율이상의 변동율이 발생했음에도 불구하고 차트에 표시가 되지 않아서 수정 검토를 요청드리는 것입니다.예를 들어 현대건설의 주봉차트에서 문제가 되고 있는 부분에 대해서 예시해보겠습니다.1. 2020년 3월 27일 주봉의 경우는 Plot3(Var3, "하락갭전일종가라인음양봉");라인의 하락변동율이 38.90%가 됨에도 불구하고 U최소변동하락율(40)와 D최소변동하락율을 23이상 입력하면 표시가 안되지만 22이하로 입력하면 표시가 됩니다. 그런데 U최소변동하락율을39이하로 설정하고 D최소변동하락율을 38까지 입력하면 변동율이 표시가 됩니다. 즉 U최소변동하락율과 D최소변동하락율는 각각 독립적으로작동을 해야하는데 연동되어 표시가 된다는 것입니다.2. 2015년 07월 03일의 주봉은 28.32%, 2016년 02월 12일의 주봉은 27.49%인데 D최소변동하락율을 각 변화율보다 낮은 변화율을 설정하면 표시가 되어야 하는데 U최소변동하락율(40)와 25%, 15%등을 설정하면 표시가 안되다가 D최소변동하락율을 0에 가깝게 설정하거나 U최소변동하락율(40)을 일정이하로 변동시키면 표시가 된다는 것입니다갭상승라인과 갭하락라인의 변동율이 독립적으로 설정한 변동율이상이면 표시가 될 수 있게끔 수정해주시기 바랍니다.
프로필 이미지
해피오
2026-02-20
102
글번호 230661
지표
답변완료

변환 부탁드립니다.

안녕하세요. 새해 복 많이 받으세요이 신호에서 검색이되는 종목을 검색이 될 수 있도록 변환 부탁드립니다.행복한 26년 보내세요~A=MA(C,5);A1=MA(C,20);A2=MA(C,120);TrendUp() andLongCandle() andWhiteLine() andUpShadow() < Height() * 0.1 andDownShadow() < Height() * 0.1AND(L<=A2*1.03 OR C<=A2*1.03) && A>A1 && C>=A2
프로필 이미지
미서니
2026-02-20
71
글번호 230659
종목검색

강심장 님에 의해서 삭제되었습니다.

프로필 이미지
강심장
2026-02-20
4
글번호 230655
지표
답변완료

부탁드립니다

지표조건기간 5기간1 20기간 2 60가격 종가이평종류 단순 이평종류1 가중M5=MA(가격,기간,이평종류);M20=MA(가격,기간1,이평종류1);M60=MA(가격,기간2,이평종류1);정배열 종목 검색식 부탁 드립니다
프로필 이미지
님이랑
2026-02-20
54
글번호 230653
종목검색
답변완료

문의2

안녕하세요 수고하십니다주기 60분 전략방법nacd 오실레이터 12.26.9상승교차 되었고 현재봉 시가대비 --20 빠지면 매수 다음봉 즉시 매수청산macd 상승유지이면 시가대비 --20 빠지면 매수 값안오면다음봉에서 실시 다음봉 즉시 매수청산macd 하락교차이면 종료 아래 전략 한다 macd 오실레이터 12.26.9하락교차 되었고 현재봉 시가대비 +20오르면 매도 다음봉 즉시매도청산macd 하락유지이면 시가대비 +20오르면 매도다음봉즉시 매도청산macd 상승교차 이면 종료위글 전략한다대단히감사합니다
프로필 이미지
놀이터
2026-02-20
51
글번호 230651
시스템
답변완료

문의 드립니다

종가가 1봉전 5일간 최고종가보다 크다. 검색식 부탁드립니다.
프로필 이미지
pmcj
2026-02-20
33
글번호 230648
종목검색
답변완료

문의1

주기는 1하여 적용하면 오류지요항상지정가에 하면 거래후 재조회하면신호위치 바뀜 현상 엉터리되던데 엉터리아닌 고정되도록 식을 부탁드립니다
프로필 이미지
놀이터
2026-02-20
34
글번호 230643
시스템
답변완료

전환추세 쌍바닥

두 양선이 모두 0.2 이상이면 쌍바닥 되는 조건을,직전 양선은 그대로 0.2 이상이면 되는데 나중 양선은 0.25 이상일 때 쌍바닥으로 수정.나중 양선은 전환될 때 0.25 이상일 수도 있고, 0.2에 전환된 후 +1틱일 때 0.25 조건 만족일 수 있습니다.and 저[1,1] <= 고[1,1]-0.25 추가 해보니 오류가 납니다.쌍봉은 반대. 감사합니다.Input : 전환(0.2);Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL(0),TX(0);Array:고[10,4](0),저[10,4](0);HH = H;LL = L;If Index == 0 Then{ 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime;}If Index > 0 Then{ hiBar = hiBar + 1; loBar = loBar + 1;}If HH[hiBar] < HH Then hiBar = 0;If LL[loBar] > LL Then loBar = 0;Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;Condition2 = 고[1,1]-전환 >= LL and loBar == 0;처리구분 = "";If Condition1 and Condition2 Then { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; }}Else If Condition1 Then 처리구분 = "고점처리";Else If Condition2 Then 처리구분 = "저점처리";If 처리구분 == "고점처리" Then{ If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Red); if 저[1,1] <= 저[2,1] + PriceScale* 1 and 저[1,1] >= 저[2,1] - PriceScale* 1 and 저[1,1]<= highest(H,400)-2.5 and 저[1,1]<= lowest(L,200)+0.1 Then { tx = Text_New(저[1,3],저[1,4],저[1,1]-0.3,"●"); Text_SetStyle(tx,2,2); Text_SetColor(tx,Red); Text_SetSize(tx,12); } } Else If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); } 최종꼭지점 = "고점"; }If 처리구분 == "저점처리" Then{ If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL,1); TL_SetColor(TL,Blue); if max(고[1,1],고[2,1]) <= min(고[1,1],고[2,1])+PriceScale*1 and 고[1,1] >= lowest(L,400)+2.5 and 고[1,1] >= highest(H,200)-0.1 Then { tx = Text_New(고[1,3],고[1,4],고[1,1]+0.3,"●"); Text_SetStyle(tx,2,2); Text_SetColor(tx,Blue); Text_SetSize(tx,12); } } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); } 최종꼭지점 = "저점"; Plot2(저[1,1]); NoPlot(1);}
프로필 이미지
고성
2026-02-20
79
글번호 230641
지표