커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

오류메세지 수정 부탁드립니다.

감사합니다. //========================================== // Indicator Name : FibonacciRetracement // Written by : yahoosir // Blog : http://yahoosir.blog.me //========================================== Input:length(10),ClsPxUseBit(0),inRange(10),waveLineSize(2),displPRC(1); Var:j(0),jj(0),jjj(0),HH(0),LL(0),lastHi(0),lastLo(0),lastVertex(""),procBit(""), TL1(0),TL2(0); Array:PK[50,4](0),VL[50,4](0), // 1:Price, 2:BarNumber, 3:Date, 4:Time basePK[5](0),baseVL[5](0); // 0:N/A, 1:Price, 2:BarNumber, 3:Date, 4:Time //========================================== HH = IFF(ClsPxUseBit == 1,C,H); LL = IFF(ClsPxUseBit == 1,C,L); If CurrentBar == 1 Then Begin PK[1,1] = HH; VL[1,1] = LL; End ; Condition1 = Highest(HH,length) = HH and lastHi <> HH; Condition2 = Lowest (LL,length) = LL and lastLo <> LL; procBit = ""; If Condition1 and Condition2 Then Begin If lastVertex == "Valley" Then procBit = "Peak" ; Else procBit = "Valley"; End Else If Condition1 Then procBit = "Peak" ; Else If Condition2 Then procBit = "Valley"; //========================================== If procBit == "Peak" Then Begin lastHi = HH; If lastVertex == "Valley" Then Begin For j = 50 DownTo 2 Begin For jj = 1 To 4 Begin PK[j,jj] = PK[j-1,jj]; End ; End ; PK[1,1] = HH; PK[1,2] = BarNumber; PK[1,3] = Date; PK[1,4] = Time; TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]); TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,RED); basePK[1] = 0; For j = 1 To inRange Begin If basePK[1] < PK[j,1] Then Begin For jjj = 1 To 4 Begin basePK[jjj] = PK[j,jjj]; End ; End ; End ; End Else If PK[1,1] < HH Then Begin PK[1,1] = HH; PK[1,2] = BarNumber; PK[1,3] = Date; PK[1,4] = Time; TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]); End ; lastVertex = "Peak"; End ; //========================================== If procBit == "Valley" Then Begin lastLo = LL; If lastVertex == "Peak" then Begin For j = 50 DownTo 2 Begin For jj = 1 To 4 Begin VL[j,jj] = VL[j-1,jj]; End ; End ; VL[1,1] = LL; VL[1,2] = BarNumber; VL[1,3] = Date; VL[1,4] = Time; TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]); TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,BLUE); baseVL[1] = 0; For j = 1 To inRange Begin If baseVL[1] > VL[j,1] or baseVL[1] = 0 Then Begin For jjj = 1 To 4 Begin baseVL[jjj] = VL[j,jjj]; End ; End ; End ; End Else If VL[1,1] > LL then Begin VL[1,1] = LL; VL[1,2] = BarNumber; VL[1,3] = Date; VL[1,4] = Time; TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]); End ; lastVertex = "Valley"; End ; //========================================== Array: fr[7,4](0); // 1:Rate, 2:Price, 3:Trendline ID, 4:Text ID If CurrentBar == 1 Then Begin fr[1,1] = 0; fr[2,1] = 0.236; fr[3,1] = 0.382; fr[4,1] = 0.50; fr[5,1] = 0.618; fr[6,1] = 0.764; fr[7,1] = 1; End ; If basePK[1] > 0 and baseVL[1] > 0 Then Begin If baseVL[2][1] <> baseVL[2] or basePK[2][1] <> basePK[2] Then Begin If TL2 > 0 Then TL_Delete(TL2); TL2 = TL_New(baseVL[3],baseVL[4],baseVL[1],basePK[3],basePK[4],basePK[1]); TL_SetSize(TL2,4); TL_SetColor(TL2,Magenta); If baseVL[2] < basePK[2] Then Begin for j = 1 to 7 Begin If fr[j,3] > 0 Then TL_Delete(fr[j,3]); fr[j,2] = basePK[1] - ((basePK[1] - baseVL[1]) * fr[j,1]); fr[j,3] = TL_New(baseVL[3],baseVL[4],fr[j,2],Date,Time,fr[j,2]); If displPRC == 1 Then Begin If fr[j,4] > 0 Then Text_Delete(fr[j,4]); fr[j,4] = Text_New(baseVL[3],baseVL[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],black); End ; End ; End Else If basePK[2] < baseVL[2] Then Begin for j = 1 to 7 Begin If fr[j,3] > 0 Then TL_Delete(fr[j,3]); fr[j,2] = baseVL[1] + ((basePK[1] - baseVL[1]) * fr[j,1]); fr[j,3] = TL_New(basePK[3],basePK[4],fr[j,2],Date,Time,fr[j,2]); If displPRC == 1 Then Begin If fr[j,4] > 0 Then Text_Delete(fr[j,4]); fr[j,4] = Text_New(basePK[3],basePK[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],black); End ; End ; End ; End Else Begin for j = 1 to 7 Begin TL_SetEnd(fr[j,3],Date,Time,fr[j,2]); End ; End ; End ;
프로필 이미지
매버릭
2017-03-15
160
글번호 107813
지표
답변완료

지표 만들고 검색할때

사용자 지표를 만들고 저장해놓으면 검색식 만들때 그 지표를 불러와서 사용가능한가요? 예를 들어 Q(0) 라는 지표를 만들어서 지표식에서 작동하는 것을 확인했고 검색식을 만들때 Q(0)라는 지표를 불러서 사용하면 되는 지 궁금합니다.
프로필 이미지
왓썹
2017-03-15
126
글번호 107811
지표
답변완료

수정 부탁드려요

52376 댓글에 보완 사항을 적었습니다 확인해보시고 수정 부탁드립니다
프로필 이미지
정상에서야
2017-03-15
140
글번호 107805
지표
답변완료

문의드립니다.

좋은 하루 입니다. 1.환경: 당일 고가저가의 중심인 중심선상 2.표시 20일선이 30일선 아래 있으면 중심선 색상이 파랑색 20일선이 30일선 위에 있으면 중심선 색상이 빨강색 으로 표시되도록 하려는데 잘 안되네요. 수고하세요 ^^
프로필 이미지
웹피
2017-03-15
124
글번호 107804
지표
답변완료

Line에 text 표시

안녕하세요 Line에 text를 표시하는 방법 부탁드립니다. ----------------------------- 선물 분봉 사용하여 (시간주기 상관없이) 당일시가기준으로 1pt 상승시 또는 하락시 마다 Line이 그려졌다고 했을 때 1) 빨간색 상승Line 위에 해당지수,경과봉수를 text로 표시 2) 파란색 하락Line 아래에 해당지수,경과봉수를 text로 표시 (text는 되도록 Line 중앙에 위치) 그림으로 표시하면 다음과 같습니다. 괄호안은 해당line의 봉경과 갯수입니다. 278.50 (10) 빨간색 상승선 ---------------- 빨간색 277.50 (24) 빨간색 상승선 --------------- 빨간색 하락선 ----------- 파란색 277.50 (7) 파란색 하락선 ---------------- 파란색 276.50 (14) 파란색 꼭 위의 예가 아닌 스윙하이 스윙로우 Line 등 수평추세선이 나오는 어떤 예도 상관없습니다. 이상입니다. 감사합니다 !!
프로필 이미지
새로운세상
2017-03-15
145
글번호 107799
지표
답변완료

수식부탁드립니다

안녕하세요^^ 혼자 수식을 만드는데 어려워서 도움을 청합니다. 단순 5 이동평균선을 사용하여 골드일때 매수식 데드일때 매도식을 만들고 싶습니다. 감사합니다.
프로필 이미지
시월
2017-03-15
113
글번호 107797
시스템
답변완료

문의드립니다

시스템 적용시 수익구간의 봉갯수 누적지표 손실구간의 봉갯수 누적지표 를 나타내고 싶습니다 감사합니다
프로필 이미지
파인애플
2017-03-15
114
글번호 107796
지표
답변완료

볼린져밴드 상하단 매수매도

총 투입금액 안에서 첨부된 그림과 같이 일정 거래량 이상과 함께 볼린져 밴드 하단을 터치할때 마다 최대4회 정도 나눠서 매수하고,(매수비중은 총투입금액의 매수1=10% 매수2=20%, 매수3=30%, 매수4=40%) 볼린져 밴드 상단을 터치할경우엔 무조건 청산 하는 식을 만들어 보고 싶습니다. 몇회 매수가 되었던 볼린져 밴드 상단을 터치할 경우엔 완전 청산하는 식으로요.
프로필 이미지
바나
2017-03-15
195
글번호 107795
시스템
답변완료

부탁드립니다

부탁 합니다 input : sto1(12),sto2(5),sto3(2); var : T1(0),entry(0),Tcond(false); var : stok(0),stod(0); if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then{ Tcond = true; T1 = TotalTrades; } if stime == 020000 or (stime > 020000 and stime[1] < 020000) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if entry < 3 and crossup(stok,20) Then buy("매수",OnClose,def,2); if entry < 3 and CrossDown(stok,80) Then sell("매도",OnClose,def,2); 오후3시부터 익일 새벽 2시 사이에만 신호가 나오게 하고 싶은데 다른 시간에도 신호가 나옵니다 entry <3 라는 수익은 하루 두번이상 진입 금지라는 뜻 인가요 아니면 동일방향 두번 이상 진입금지란 소린가요?? 전 신호가 매수 매도 합쳐서 하루에 두번이상 안나오게 하고 싶습니다 지금은 3번도 나오네요 ^^ 대신 청산신호는 아무때나 나오게 하고 싶습니다 그리고 청산수식이 신호가 안나옵니다 수익이 잘못 된건가요 확인 부탁 합니다 if MarketPosition == 1 Then{ if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then exitlong("bx2",AtStop,LL+(HH-LL)*23.6); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 Then ExitShort("sx2",AtStop,LL+(HH-LL)*76.4); }
프로필 이미지
영웅456
2017-03-15
116
글번호 107794
시스템