커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

신호 발생하지 않아 다시 문의 드립니다.

며칠전에 알려주신 로직입니다. 신호가 발생하지 않는데 다시 확인부탁드립니다. 제가 원하는 것은 60분봉을 추세 기준으로 하여 20이평 120이평 정배열이고 60분봉에서 볼린져밴드 상단선 돌파 중이거나 또는 상단선 위에 있을 때 하위봉(예로 1분봉이나 2분봉 등) 차트에서 볼린져 상선 돌파 매수로 진입하고자 합니다. 60분봉에서 20이평 120이평 역배열이고 60분봉에서 볼린져밴드 하단선 아래로 돌파 또는 하단선 아래 있을 때 하위봉(예로 1분봉이나 2분봉 등) 차트에서 볼린져 하선 돌파 매도로 진입하고자 합니다. 감사합니다^.^ input : 타주기분(60),BBP(20),Dv(2),P1(20),P2(120); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup(0),BBdn(0); var : sum1(0),mav1(0),sum2(0),mav2(0); Array : CC[200](0); #기본차트 볼밴 var1 = BollBandUp(20,2); Var2 = BollBandDown(20,2); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { for cnt = 199 downto 1 { CC[cnt] = CC[cnt-1]; } } CC[0] = C; #타분봉 볼밴계산 if CC[BBP-1] > 0 then { sum = 0; for cnt = 0 to BBP-1 { sum = sum + CC[cnt]; } BBmd = sum/BBP; SumSqrt = 0; For cnt = 0 To BBP - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / BBP); BBup = BBmd + (Dv * Stdv); BBdn = BBmd - (Dv * Stdv); } #타분봉 P1이평 계산 if CC[P1-1] > 0 Then { sum1 = 0; For cnt = 0 to P1-1 { sum1 = sum1 + CC[cnt]; } mav1 = sum1/P1; } #타분봉 P2이평 계산 if CC[P2-1] > 0 Then { sum2 = 0; For cnt = 0 to P1-1 { sum2 = sum2 + CC[cnt]; } mav2 = sum2/P1; } //타분봉 지표값들 계산이 된 상태에서 if mav1 > 0 and mav2 > 0 and BBmd > 0 Then { if mav1 > mav2 and C > BBup Then { if CrossUp(c,var1) Then Buy(); } if CrossDown(c,var1) Then ExitLong(); if mav1 < mav2 and C < BBdn Then { if CrossDown(c,var2) Then Sell(); } if CrossUp(C,Var2) Then ExitShort(); } }
프로필 이미지
선물대장
2023-04-03
1337
글번호 167842
시스템
답변완료

지표 작성 부탁드립니다.

트레이딩뷰에 있는 지표인데 예스트레이더에서 사용할 수 있도록 가공해 주시면 감사하겠습니다. 아래는 트레이딩뷰에 있는 지표 작성 코드입니다. 매번 성의있는 답변 주시는 덕에 도움 많이 받고 있습니다. 감사합니다. ~ //@version=4 study(title="Pocket Pivots", shorttitle="Pocket Pivots", overlay=true) tenSMAlen = input(10, minval=1, title="SMA1 Length") fiftySMAlen = input(50, minval=1, title="SMA2 Length") PPlen = input(10, minval=5, title="Pocket Pivot Length") PPVolLen = input(5, minval=5, title="Volume Pocket Pivot Length") UpDay = close > open and close[0] > close[1] VolUpDay = close[0] > close[1] tenSMA = sma(close,tenSMAlen) fiftySMA = sma(close,fiftySMAlen) //Volume on the pocket pivot day has to be greater than the previous Pocket Pivot Length days - default is 10. PPvol1 must count up to PPlen PPvol1 = 0 for i = 1 to PPlen if volume[0] > volume[i] PPvol1 += 1 else PPvol1 := 0 //Volume on the pocket pivot day has to be greater than the previous Pocket Pivot Length days - default is 5. PPvol2 must count up to PPVollen PPvol2 = 0 for i = 1 to PPVolLen if volume[0] > volume[i] PPvol2 += 1 else PPvol2 := 0 //Check if price has crossed or gapped over 10 day or 50 day SMA MAcross = open < tenSMA and close > tenSMA or open < fiftySMA and close > fiftySMA or close[1] < tenSMA and close[0] > tenSMA or close[1] < fiftySMA and close[0] > fiftySMA //Will show indicator when Pocket Pivot Volume and KMA crosses have occured PocketPivot1 = PPvol1 == PPlen and UpDay and MAcross plotshape(PocketPivot1 ? 1 : na, style=shape.triangleup, location=location.belowbar, color=color.rgb(51,153,255), size=size.small) //Will show Yellow Triangle Down indicator when Volume Pocket Pivot is met and current day close is greater than yesterday;s close PocketPivot2 = PPvol2 == PPVolLen and VolUpDay plotshape(PocketPivot1 != 1 and PocketPivot2 ==1 ? 1 : na, style=shape.triangledown, location=location.belowbar, color=color.rgb(225,225,0), size=size.small) //Alerts Conditions alertcondition(PocketPivot1 == 1, title='Pocket Pivot', message='Pocket Pivot Triggered!') alertcondition(PocketPivot2 == 1, title='Volume Pocket Pivot', message='Volume Pocket Pivot Triggered!')
프로필 이미지
분노의물타기
2023-04-03
2120
글번호 167834
지표
답변완료

수고 부탁드립니다

안녕하세요-~ 휼륭한 지식 답변으로 많은 도움되고 있읍나다 if MarketPosition == 0 and IsExitName("매수2청",1) == true and C <= ExitPrice(1)*0.985 Then buy("매수2진입");~~~(%단위를 틱!으로 바꾸고싶읍니다) 질문1~~ 직전 청산된(매수2청산) 가격보다 50틱이 하락하고~~5 > 20 일때~~1매수 직전 청산된(매도2청산) 가격보다 80틱이 상승하고~~5 < 20 이때~~1매도 직전 진입된(매수2번) 가격보다 50틱이 하락하고~~ 5 / 20 이격도 110 이상일때~~매수1청산 직전 진입된(매도2번) 가격보다 80틱이 상승하고~~ 5 / 20 이격도 90 이하일때~~매도1청산 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 질문2~~~(주문설정창과 연계)~ 직전 청산된(주문설정창의 강제청산 손절매 (pt) 가격보다 50틱이 하락하고~~ 5 > 20 일때~~1매수 직전 청산된(주문설정창의 강제청산 손절매 (pt) 가격보다 80틱이 상승하고~~ 5 / 20 이격도 90 이하일때~~1매도 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 질문3~~ 위 질문1번의 가격 틱!표현과 봉!표현으로의 방식이 만약 다르면~~ 부분적으로 무엇을 바꾸어 주어야 하는지요?? (예시 50틱하락--> 50봉하락) (80틱상승-->80봉상승) 부탁드립니다~~
프로필 이미지
째일
2023-04-03
1766
글번호 167819
시스템
답변완료

수고하십니다

수식 작성 부탁드립니다 진입수식 N이평선 위에 있고, N연속 음봉시 매수 매도진입식은 반대 손절수식 1. N % 손실시 손절 2. 손절값은 포인트로 변수에 누적하여 저장 청산수식 누적손실값이 없으면 N%수익시 청산 누적손실값이 있으면 누적손실값의 N배 만큼 이익시 청산 청산시 손절값변수 0으로 초기화 위에 언급된 N값은 각기 전부 다른 인풋변수로 지정 부탁드립니다. 항상 감사드립니다.
프로필 이미지
부동여산
2023-04-03
1399
글번호 167818
시스템
답변완료

수식 문의입니다

주식 현물거래 기준입니다 분봉차트 상에서 Data1 : 해당 종목의 분봉 차트 Data2 : 해당 종목의 일봉 차트 현재 종목 보유중인 상태에서, 매일 15시 10분 이전 까지는 강제청산 주문이 작동하지 않고 15시 10분 부터 장 마감때까지만 강제청산 주문이 작동하도록 하려고 합니다. 강제청산 주문은, 분봉차트에서 현재가가 "진입가 - (3 * 일봉상atr(20일) )" 보다 낮아지면 즉시 매도가 나가도록 하려고 합니다 아래와 같이 작성했더니 작동이 안되는데... 혹시 어디가 잘못된 것일까요 ㅠ if MarketPosition==1 and stime >= 151000 and NextBarSdate == sDate Then SetStopLoss( 3 * Data2(ATr(20)) , PointStop ); Else SetStopLoss(0);
프로필 이미지
루라라라
2023-04-03
1393
글번호 167817
시스템
답변완료

81402번 재문의 입니다.

마지막첨부는 사용한 수식입니다. 문제 없다고 생각했는데 조건에 맞지 않는 종목이 상당수 나와서 31일 기준으로 검색한 종목중 오류가 있는 부분을 몇개 정리해봅니다. 솔본-3.28일 해당신호가 발생하는데 31일에 나옵니다. 신도기연-3.30일에 신호발생인데 31일에나옴 현우산업-30일에 신호 발생인데 31일에 나옴 호텔신라-29일에 신호 발생하는데 31일에 나옴 서연 - 녹적파 순서가 아닌데도 31일 검색식에 나옴 LG전자-31일에 엘리게이터가 녹적파 순으로 조건이 만족하지만 나오지 않음 번거로우시겠지만 확인한번 부탁드리겠습니다. input : jawPeriod(13),jawOffset(8); input : teethPeriod(8),teethOffset(5); input : lipsPeriod(5),lipsOffset(3); var : hl2(0),jaw(0),teeth(0),lips(0); hl2 = (h+l)/2; jaw = 0; if IsNaN(jaw[1]) == true Then jaw = ma(hl2,jawPeriod); Else jaw = (jaw[1]*(jawPeriod-1) + hl2)/jawPeriod; teeth = 0; if IsNaN(teeth[1]) == true Then teeth = ma(hl2,teethPeriod); Else teeth = (teeth[1]*(teethPeriod-1) + hl2)/teethPeriod; lips = 0; if IsNaN(lips[1]) == true Then lips = ma(hl2,lipsPeriod); Else lips = (lips[1]*(lipsPeriod-1) + hl2)/lipsPeriod; Condition1 = teeth and teeth > jaw; if Condition1 == true and Condition1[1] == False Then Find(1);
프로필 이미지
신데렐라맨
2023-04-03
1272
글번호 167816
종목검색

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2023-04-03
9
글번호 167815
지표
답변완료

rsi 타주기

rsi 지수가, 100틱 차트와 50틱 차트에서 동시에 30 이하일 때, 50틱 차트의 rsi 지수가 30을 먼저 상향 돌파하면, 10틱 차트에 동그라미 표시. (10틱 차트는 rsi와는 무관. 표시만) 10틱 차트에 안되면 50틱 차트에 동그라미 표시. 감사합니다.
프로필 이미지
고성
2023-04-03
1142
글번호 167814
지표
답변완료

수식 문의드립니다.

안녕하세요. 일봉 거래 중 분할 매도 관련해서 문의드립니다. 매수 후 매도가격이 오면 가격이 상승할 때 4회에 걸쳐 분할매도(당일) 후 남은 물량을 당일 종가에 매도하고 있습니다. 그런데 매도 당일 종가가 당일 분할매도가격들 보다 현저하게 하락할 경우에는 손해를 보는 경우도 발생하게 됩니다.(예, 5%,7% 매도 후 종가가 -10%인 경우 등) 따라서 1회라도 매도가 되면 당일고가보다 5%하락한 가격에서 남은 물량을 전체매도 하고자 하는데 매도 수식 문의드립니다. 많은 도움 주셔서 감사합니다.
프로필 이미지
깜피
2023-04-02
1128
글번호 167813
시스템