커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

dayindex=0,1,2,..일때 주문진입신호명을 b0, b1,b2... 으로 표시방법?

항상 도움주셔서 감사드립니다. dayindex=0 일때 buy 함수에서 주문진입신호명을 "b0" dayindex=1 일때 buy 함수에서 "b1" dayindex=2 일때 buy 함수에서 "b2" dayindex=3 일때 buy 함수에서 "b3" : : 으로 표시하고 싶습니다. dayindex값을 간단한 text함수로 바꿔주는 방법이 있을까요?
프로필 이미지
퀀텀프로
2020-04-07
860
글번호 137673
시스템
답변완료

수식 수정 부탁드립니다.

var : Condition1(false),Condition2(false),Condition3(false); if MarketPosition == 0 then { if NextBarSdate != sdate Then { buy("시가매수",AtMarket,dayopen,1); } } Else If MarketPosition == 1 Then { #시가 대비 -1% 하락시 -3% 까지 1주씩 매수 if dayopen *0.99 >= c and Condition1 == False then { Condition1 = True; buy("1% 하락 매수",atlimit,dayopen *0.99,1); } else if dayopen *0.98 >= c and Condition1 == false then { Condition2 = True; buy("2% 하락 매수",atlimit,dayopen *0.98,1); } else if dayopen *0.97 >= c and Condition3 == false then { Condition3 = True; buy("3% 하락 매수",atlimit,dayopen *0.97,1); } } 시가 매수후 시가에서 -3%까지 -1%하락할때마다 1주씩 매수를 해야되는데 시가 매수는 되는데 시가에서 하락할때마다 매수는 안되네요; (Condition 들은 같은 가격에서 재매수 금지를 위해 넣었습니다 이걸 뺀다고 해도 가격 하락시에 매수는 되지 않네요;) 문법상 오류는 없는거 같은데 어떤 문제때문인가요?
프로필 이미지
오라클
2020-04-07
841
글번호 137672
시스템
답변완료

지표식 문의드립니다

안녕하세요 관리자님!! 보내주신 아래서식은 잘쓰고 있습니다.. 아래의 식은 장중발생하는 (고가+저가)/2의 값을 표현하는건데 이를 응용하여 ntime 중 발생하는 (고가+신고가)/2, (저가+신저가)/2 의 값을 구현하고 싶습니다. 도와주세요!!! - 아래 - input : P(20),Dv(6),ntime(60); var : cnt(0),S1(0),D1(0),TM(0),TF(0),hh(0),ll(0),mm(0); var1 = BollBandUp(P,dv); var2 = BollBandDown(P,dv); 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 = TimeToMinutes(stime)%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { hh = h; ll = l; } if h > hh Then hh = h; if l < ll Then ll = l; mm = (hh+ll)/2; if mm != mm[1] Then { value1 = var1; value2 = var2; } plot1(value1,"상한"); plot2(value2,"하한"); }
프로필 이미지
카카
2020-04-07
794
글번호 137671
지표

수색대대 님에 의해서 삭제되었습니다.

프로필 이미지
수색대대
2020-04-07
1
글번호 137669
지표
답변완료

지표문의

1.안녕하세요 아래는 CSar지표인데요. 수평연장선이 고가지점, 저가지점 대비 2등분으로 표시 되는데 3등분으로 보구 싶어요. 지표 수정 좀해 주세요. 아울러 등분 나누는 방법두 좀 알려주세요. input : af(0.02), maxAF(0.2),추세선두께(5),추세선색1(RED),추세선색2(BLUE),연장선두께(2),연장선색(blue); input : 텍스트출력(1); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0); var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0); var : TL1(0),TL2(0),cnt(0),count(0); var : TL3(0),TL4(0),TL5(0),TL6(0),tx1(0),tx2(0),tx11(0),tx22(0); Var : TL11(0),TL22(0); var1 = CSar(af,maxAF); if crossup(c,var1) Then { T = 1; HH = H; HD = sdate; HT = stime; HH1 = HH[1]; HD1 = HD[1]; HT1 = HT[1]; if LL > 0 Then { TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL_Delete(TL6); TL3 = TL_new(HD[1],HT[1],HH[1],sdate,stime,HH[1]); TL4 = TL_new(HD[1],HT[1],(HH[1]+LL)/2,sdate,stime,(HH[1]+LL)/2); TL5 = TL_new(HD[1],HT[1],LL,sdate,stime,LL); TL6 = TL_new(HD[1],HT[1],HH[1]+(HH[1]-LL[1])/2,sdate,stime,HH[1]+(HH[1]-LL)/2); //추세선 오른쪽 연장설정 TL_SetExtRight(TL3,true); TL_SetExtRight(TL4,true); TL_SetExtRight(TL5,true); TL_SetExtRight(TL6,true); if 텍스트출력 == 1 then { Tx11 = Text_New(HD1,HT1,HH1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(HH1,2)); Text_SetStyle(tx11,2,1); Text_Delete(tx1); Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2)); Text_SetStyle(tx1,2,1); } } TL11 = TL_New(HD1,HT1,HH1,HD,HT,HH); } if CrossDown(c,var1) Then { T = -1; LL = L; LD = sdate; LT = stime; LL1 = LL[1]; LD1 = LD[1]; LT1 = LT[1]; if HH > 0 Then { TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL_Delete(TL6); TL3 = TL_new(LD[1],LT[1],HH,sdate,stime,HH); TL4 = TL_new(LD[1],LT[1],(HH+LL[1])/2,sdate,stime,(HH+LL[1])/2); TL5 = TL_new(LD[1],LT[1],LL[1],sdate,stime,LL[1]); TL6 = TL_new(LD[1],LT[1],LL[1]-(HH-LL[1])/2,sdate,stime,LL[1]-(HH-LL[1])/2); //추세선 오른쪽 연장설정 TL_SetExtRight(TL3,true); TL_SetExtRight(TL4,true); TL_SetExtRight(TL5,true); TL_SetExtRight(TL6,true); if 텍스트출력 == 1 then { Tx22 = Text_New(LD1,LT1,LL1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(LL1,2)); Text_SetStyle(tx22,2,0); Text_Delete(tx2); Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2)); Text_SetStyle(tx2,2,0); } } TL22 = TL_New(LD1,LT1,LL1,LD,LT,LL); } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; TL_SetEnd(TL1,HD,HT,HH); TL_SetEnd(TL11,HD,HT,HH); if 텍스트출력 == 1 then { Text_Delete(tx1); Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2)); Text_SetStyle(tx1,2,1); } } } if T == -1 then { if L < LL Then { LL = L; LD = sdate; LT = stime; TL_SetEnd(TL2,LD,LT,LL); TL_SetEnd(TL22,LD,LT,LL); if 텍스트출력 == 1 then { Text_Delete(tx2); Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2)); Text_SetStyle(tx2,2,0); } } } #추세선 두께, 색상 TL_SetSize(TL1,추세선두께); TL_SetSize(TL11,추세선두께); TL_SetSize(TL2,추세선두께); TL_SetSize(TL22,추세선두께); TL_SetColor(TL1,추세선색1); TL_SetColor(TL11,추세선색1); TL_SetColor(TL2,추세선색2); TL_SetColor(TL22,추세선색2); #연장선 두께, 색상 TL_SetSize(TL3,연장선두께); TL_SetSize(TL4,연장선두께); TL_SetSize(TL5,연장선두께); TL_SetSize(TL6,연장선두께); TL_SetColor(TL3,연장선색); TL_SetColor(TL4,연장선색); TL_SetColor(TL5,연장선색); TL_SetColor(TL6,연장선색); 3.그럼 수고하셍세요
프로필 이미지
성공예견
2020-04-07
793
글번호 137668
지표
답변완료

질문드립니다

input : tick(300),P(15); var : S1(0),D1(0),TM(0),TF(0),idx(0),bars(0); var : cnt(0),sum1(0),mav1(0); Array : C1[100](0); bars = floor(tick/BarInterval); if Bdate != Bdate[1] Then { idx = 0; D1 = sdate; } Else idx = idx+1; if D1 > 0 then { TF = idx%bars; 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]; } mav1 = sum1/P; plot1(mav1); } } 위 수식으로 만들어진 선에 15이평선이 닿았을 때, 음성신호가 한번만 나오게 하고 싶습니다. 가능할까요?
프로필 이미지
견유학자
2020-04-07
662
글번호 137667
지표

2wnwn 님에 의해서 삭제되었습니다.

프로필 이미지
2wnwn
2020-04-07
11
글번호 137666
지표
답변완료

문의드립니다.

inputs: ATRLength(100), ATRMult(5), Strength(100); vars: strend(0),st(0); st = SuperTrend(ATRLength, ATRMult, Strength, strend); Plot1(st+atr(ATRLength)*ATRMult,"Up",iff(strend == 1,red,blue)); Plot2(st-atr(ATRLength)*ATRMult,"Down",iff(strend == 1,red,blue)); Plot3(st,"SuperTrend",iff(strend == 1,red,blue)); 안녕하세요 상기 지표를 컴파일하려고 하는데 4번째 줄, 6열에서 선언되지 않은 이름 'SuperTrend'이(가) 사용되었습니다 라는 문구가 뜨고 있습니다. 어떻게 수정해야 검증할 수 있을지 문의드립니다. 감사합니다.
프로필 이미지
thegin
2020-04-07
603
글번호 137665
지표
답변완료

분봉에서

감사합니다 다시 수정해서 질문해 드립니다. 5분봉 차트에서 직전 3일동안 최고점을 돌파하는 수식이 어떻게 되나요..? 그럴경우 종목검색시 검색이 필요한 봉을 최소 몇개로 설정해야 검색이 되나요? 그리고 5분봉차트에서 직전 3일 동안 최고점에서 시작해서 현재까지 차트에 수평선으로 표시할수 있을까요?
프로필 이미지
디딤돌
2020-04-07
581
글번호 137664
종목검색