커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁 드립니다.

도움에 감사 드립니다. 다음은 Envelope지표를 분봉에서 나타나도록 작성 해 주신것입니다. 이것을 일봉에서의 지표를 분봉에 나타 나도록 부탁 드립니다. 미리 감사드리며 아울러 새해에도 늘 좋은일만 함께 하시길 기원 드립니다. Q) Input : Period(20), Percent(0.2); Var : value_MA(0); value_MA = ma(C, Period); var1 = value_MA - value_MA * (Percent / 100); A) input : ntime1(60),P(20),per(0.2); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav(0),upv(0),dnv(0); Array : C1[100](0); 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%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav = sum1/P; upv = mav*(1+per/100); dnv = mav*(1-per/100); plot1(mav); plot2(upv); plot3(dnv); } }
프로필 이미지
뮬리
2020-01-02
302
글번호 134797
지표
답변완료

수식수정부탁드립니다.

#,안녕하세요 관리자님,새해 복 많이 받으십시요 지난 한해동안 많은 도움주신것 진심으로 감사드립니다. 금년에도 잘 부탁드리면서 도움부탁드립니다. 아래수식은 상하 파동완성시에 텍스트 출력되는 식입니다,이때 텍스트출력값이 1틱(+-)오차범위내에서 상호직선으로 텍스트값을 연결하는(그림파일참조)식인데요,문제는 텍스트출력과 동시에 동일호가 직선이 출력되지않고, 다음파동완성시 직선이출력됩니다, 그림에서 설명하자면 1번출력직선이 2번텍스트가 출력되어야 1번직선이 출력됩니다,역시 3번출력직선도 4번텍스트가 출력된후에야 3번직선이 출력됩니다,이 식을 1번텍스트가 출력됨과 동시에 1번직선도(조건만족시) 같이 출력되고 2번텍스트출력과 함께2번직선(조건만족시)도 같이 출력되고 3번도 텍스트출력과 함께 3번직선(조건만족시)도 같이 출력되는식으로 수정하면 좋겠습니다. 즉 한파동 뒤늦게 동일호가선이 출력되는것을 현재파동 완성시 텍스트출력과 동시에 동일호가 조건만족시 직선라인도 출력되는것을 원합니다. 도움부탁드립니다. input : af(0.02), maxAF(0.2); input : 텍스트출력(1),굵기(0); var : T(0),cnt(0),count(0); var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0),day1(0),day2(0),day3(0),day0(0); var : TL1(0),TL2(0),tx1(0),tx2(0),tx11(0),tx22(0); Array : HD[20](0),HT[20](0),HH[20](0),LD[20](0),LT[20](0),LL[20](0); var1 = CSar(af,maxAF); if bdate != bdate[1] Then { day0 = sdate; day1 = day0[1]; } if crossup(c,var1) Then { T = 1; HH[0] = H; HD[0] = sdate; HT[0] = stime; for cnt = 1 to 19 { HD[cnt] = HD[cnt-1][1]; HT[cnt] = HT[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; } if LL[0] > 0 Then { if 텍스트출력 == 1 then { Tx11 = Text_New(HD[1],HT[1],HH[1],NumToStr((HH[1]-LL[1])/PriceScale,0)+NewLine+NumToStr(HH[1],2)); Text_SetStyle(tx11,2,1); Text_SetColor(tx11,BLACK); Text_Delete(tx1); Tx1 = Text_New(HD[0],HT[0],HH[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(HH[0],2)); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,BLACK); Condition1 = false; for cnt = 1 to 19 { if Condition1 == false and abs(LL[0]-LL[cnt]) <= PriceScale*3 and LD[cnt] >= day3 Then { Condition1 = true; TL1 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]); TL_SetColor(tl1,MAGENTA); TL_SetSize(tl1,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); } } } } } if CrossDown(c,var1) Then { T = -1; LL[0] = L; LD[0] = sdate; LT[0] = stime; for cnt = 1 to 19 { LD[cnt] = LD[cnt-1][1]; LT[cnt] = LT[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } if HH[0] > 0 Then { if 텍스트출력 == 1 then { Tx22 = Text_New(LD[1],LT[1],LL[1],NumToStr((HH[1]-LL[1])/PriceScale,0)+NewLine+NumToStr(LL[1],2)); Text_SetStyle(tx22,2,0); Text_SetColor(tx22,RED); Text_Delete(tx2); Tx2 = Text_New(LD[0],LT[0],LL[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(LL[0],2)); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,MAGENTA); Condition2 = false; for cnt = 1 to 19 { if Condition2 == false and abs(HH[0]-HH[cnt]) <= PriceScale*3 and HD[cnt] >= day3 Then { Condition2 = true; TL2 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]); TL_SetColor(tl2,BLUE); TL_SetSize(tl2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); } } } } } if T == 1 then { if H > HH[0] Then { HH[0] = H; HD[0] = sdate; HT[0] = stime; if 텍스트출력 == 1 then { Text_Delete(tx1); Tx1 = Text_New(HD[0],HT[0],HH[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(HH[0],2)); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,BLACK); } } } if T == -1 then { if L < LL[0] Then { LL[0] = L; LD[0] = sdate; LT[0] = stime; if 텍스트출력 == 1 then { Text_Delete(tx2); Tx2 = Text_New(LD[0],LT[0],LL[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(LL[0],2)); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,RED); } } } 언제나 늘 고맙습니다.
프로필 이미지
회원
2020-01-02
346
글번호 134796
지표
답변완료

수식변환 부탁 드립니다

안녕하세요? 새해 복많이 받으세요.. 키움수식 변환 부탁 드립니다 Crossdown (c,lowest(L(1),Period)) CrossUp (c,highest(H(1),Period)) 감사합니다
프로필 이미지
vlfaud3
2020-01-02
290
글번호 134795
시스템
답변완료

함수요청

안녕하세요? 함수요청드립니다. 종목: 항셍선물지수 주기: data1 1분, data2 30분 매수: T장에서 하루 1번만 거래를 하고자 합니다. 10시 15분 시가가 볼린저밴드 상단보다 크면 익봉 시가에 진입 매도: T장에서 하루 1번만 거래를 하고자 합니다. 10시 15분 시가가 볼린저밴드 하단보다 작으면 익봉 시가에 진입 가격청산: 진입이후 dara2(30분봉상)의 가격이 볼린저밴드 상단 혹은 하단 돌파시 익봉 시가에 청산 시간청산: 17시봉에 청산
프로필 이미지
흰둥이아빠
2020-01-02
279
글번호 134793
시스템
답변완료

수식 문의합니다

안녕하세요 수식 문의합니다 이동평균선과 언벨로프 중심선의 골드크로스, 데드크로스 를 이용하여 수식을 만들고 싶습니다 설정값 이평선; 10일선 언벨로프; 50,3 수식1 매수진입 ; 10일선이 언벨로프 중심선을 상승 돌파하면 "10일선 +1틱"에서 매수진입 매도진입 ; 10일선이 언벨로프 중심선을 하락 돌파하면 "10일선 -1틱"에서 매도진입 수식2" 매수진입 ; 10일선이 언벨로프 중심선을 상승돌파하면 "언벨로프 중심선 +1틱"에서 매수진입 매도진입 ; 10일선이 언벨로프 중심선을 하락 돌파하면 "언벨로프 중심선 -1틱"에서 매도진입 2개의 수식 부탁드립니다 새해 복 많이 받으세요
프로필 이미지
정상에서야
2020-01-02
278
글번호 134790
시스템
답변완료

문의드립니다.

안녕하세요. 새해 복 많이 받으시고, 올 한해도 무탈하고 행복한 한해 되기를 기원하겠습니다. 거래량 관련 질문입니다. 국내선물 거래량을 아래와 같이 지표 적응을 하는데 //===★거래량_UD Input : 기준거래량(6000); var : 거래량(0), UDV(0), 거래량색(0), UDV색(0); UDV = Upvol - DownVol; // 순매수체결 거래량 Plot1(0, "횡보구간", RGB(251, 251, 0), def, 30); if UDV > 0 then { 거래량 = V; 거래량색 = RGB(255, 128, 255); //연핑 UDV색 = RGB(170, 0, 0); //밤색 } if UDV <= 0 then { 거래량 = -V; 거래량색 = RGB(104, 206, 255); //연청 UDV색 = BLACK; } //==== 지표의 출력 plot11(거래량, "거래량", 거래량색); plot12(UDV, "UDV", UDV색, def, 1); 이 부분을 해외나스닥선물 적용하니 첨부파일처럼 구현이 되서요. 차이가 없어 보이는데 뭐가 틀렸는지 몰라서 질문드립니다. 수식한번 봐 주세요 감사합니다.
프로필 이미지
오쇼
2020-01-02
392
글번호 134786
지표
답변완료

행복; 지표식 작성 바랍니다

한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 지표식 관련입니다 < 조건 > - 주기; 10분봉 - 전일(D-1 day) 종가가 상한가 인 경우 - 오늘(D day) 시가를 기준으로 (+) 5%, (-) 5% 를 그리기 를 아래와 같이 작성하였습니다 그러나 오류가 있는 것 같습니다 바로 잡아주시기 바랍니다 새해 복 많이 받으십시요^^ ============<< 아래 >>======================================= Input : 변동률(5); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } If DayClose(1) == 상한가 and DayHigh(1) == 상한가 Then{ plot1(DayOpen * (1+변동률/100),"상승변동률",BLACK); plot2(DayOpen * (1-변동률/100),"하락변동률",BLACK); }
프로필 이미지
행복한가방
2020-01-02
274
글번호 134784
지표
답변완료

SetStopProfittarget 도달했으나 체결이안될때 강제 청산하는 방법 알려주세요

SetStopProfittarget로 목표가를 지정하여 목표가에 도달했으나 5분동안 체결이 안되었을때 현재가에 강제 청산하는 방법 알려주세요
프로필 이미지
용인테니스왕자
2020-01-02
287
글번호 134783
시스템
답변완료

실행이되도록 확인부탁드립니다

실행이 되도록 수정 부탁 드립니다 Input: len(3.2), method(1) If method=1 Then Var10 = (HighD(1) + LowD(1) + closed(1)) / 3 '피봇 Var11= Var10 * 2 - LowD(1) '1차 저항 Var12= Var10 + HighD(1) - LowD(1) '2차저항 Var9= Var10 * 2 - HighD(1) '1차 지지 Var8= Var10 - HighD(1) + LowD(1) '2차지지 Else Var10 = (HighD(1) + LowD(1) + closed(1)+opend(1)) / 4 '피봇 Var11= Var10 * 2 - LowD(1) '1차 저항 Var12= Var10 + HighD(1) - LowD(1) '2차저항 Var9= Var10 * 2 - HighD(1) '1차 지지 Var8= Var10 - HighD(1) + LowD(1) '2차지지 End If If Var9 > opend And opend> Var8 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수1", Atstop, Def, Var9) Call sell("매도1", Atstop, Def, Var8) End If End If End If If Var10 > opend And opend>=var9 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수2", Atstop, Def, Var10) Call sell("매도2", Atstop, Def, Var8) end If End If End if If Var11 > opend And opend>=var10 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수3", Atstop, Def, Var12) Call sell("매도3", Atstop, Def, Var10) End If End If End If If Var12 > opend And opend>=var11 Then 8 If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수4", Atstop, Def, Var12) Call sell("매도4", Atstop, Def, Var11) End If End If End If If opend>=var12 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수5", Atstop, Def, opend+(Var12-var11)) Call sell("매도5", Atstop, Def, Var12) End If End If End If If opend<=var8 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수6", Atstop, Def, Var8) Call sell("매도6", Atstop, Def, opend-(Var9-var8)) End If End If End If If position<>0 Then Call exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry+1)-atr(20)*len) Call exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry+1)+atr(20)*len) End If
프로필 이미지
뎅이요
2020-01-01
297
글번호 134782
시스템