커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

데이터 참조 관련 질문

안녕하세요 ! 데이터 참조에 관해서 질문드립니다! 지금 저는 Data2란에 예)콜옵션 312.5행사가를 띄워놓고 Data2(c) 이런식으로 코딩을 하고 있는데요. 혹시 Data2에 312.5를 띄워놓지 않고 1. C312.5(C) 이런식으로 쓸 수 있는 방법이 없을까요? 2. Data2 = C312.5처럼 Data2를 소스 내에서 변경하거나 생성할 수 있을까요? 더운날 수고 많으십니다 !
프로필 이미지
뜨끄
2017-07-31
126
글번호 111686
지표
답변완료

텍스트 위치조정건

For cnt = var2 TO var1 step 3 Begin Text_Delete(varo1[cnt] ); varo1[cnt] = Text_New(sdate[n봉전1],stime[n봉전1],price[cnt] ,""+NumToStr(CummVol[cnt] ,0)); Text_SetColor(varo1[cnt],color1); Text_Delete(ivaro1[cnt] ); ivaro1[cnt] = Text_New(sdate[in봉전1],stime[in봉전1],CummMo[cnt]/CummVo[cnt] ,""+NumToStr(CummVo[cnt] ,0)); Text_SetColor(ivaro1[cnt],icolor1); end 요렇게 하였더니 text가 위에서 아래로 일렬로 되지않고 3개를 주기로하여 텍스트가 좌우로 왔다갔다하여 보기가 힘든데요 이 상태에서 위에서 아래로 일렬로 되게 하는 방법 없을까요? 출력결과 사진첨부하였읍니다. 그리고요 텍스트 두께를 조정할수 없을까요?
프로필 이미지
이지화
2017-07-31
204
글번호 111676
지표
답변완료

부탁드림니다.

기초가 없으니 어려움이 많습니다 아래식을 수정해주세요 Var1 = Index - 고[1,2] + 1; TL2[var1] = TL_New(sDate,sTime,고[1,1],sDate,sTime,max(고[1,5],고[1,8]));//max(고[o],고[c])윗꼬리 TL_SetSize(TL2[var1],3); TL_SetColor(TL2[var1],lcyan); Var2 = Index - 저[1,2] + 1; TL3[Var2] = TL_New(sDate,sTime,저[1,1],sDate,sTime,min(저[1,5],저[1,8]));//min(저[o],저[c])아래꼬리 TL_SetSize(TL3[Var2],3); TL_SetColor(TL3[Var2],green); /* ### 위아래꼬리 시스템 ### IF CrossDown(L,TL3[Var2]) then { buy("매수",Atmarket);} IF crossup(h,TL2[var1]) then { sell("매도",atmarket);} ##### 당일청산 ##### if stime == 050000 or (stime > 055000 and stime[1] < 050000) then { exitlong("BDF"); exitshort("SDF"); } //max와 min은 고점과저점의 꼬리를 표현한것입니다.윗꼬리형성이후에 고가가 TL2[var1]의 범위에 들어오면 매도, // 아랫꼬리형성후에 저가가 TL3[Var2]의 범위에 들어오면 매수식을 부탁드림니다. //이렇게 작성을 햇는데 작동이 안됩니다,꼬리의 범위를 어떻게 작성하는지요?
프로필 이미지
수루지
2017-07-31
134
글번호 111674
시스템
답변완료

지표식 부탁드립니다.

1분봉으로 data1챠트에 콜 ,data2챠트에 풋을 적용한 후 지표를 나타내려고 하는데 수식이 자꾸 에러가 납니다. 네가지 지표를 그려질 수 있도록 수정 부탁드립니다. value1과 value2는 특정한 지표수식이며 수식은 기존에 있는 것입니다. Input : Period(1); Var : value1(0),value2(0),value3(0),value4(0),var1(0),var2(0); value1 = data1(@@@@@@$$$$$$%%%%%%%&&&&&&); if dayindex == 0 Then var1 = value1; value3 = value1/var1 value2 = data2(@@@@@@$$$$$$%%%%%%%&&&&&&); if dayindex == 0 Then var2 = value2; value4 = value2/var2 plot1(var1); plot2(var2); plot3(value3); plot4(value4); PlotBaseLine1(0,"기준선0");
프로필 이미지
몸통공격
2017-07-31
160
글번호 111673
지표
답변완료

시스템식 문의드립니다

차트에 제가 임의로 추세선을 그어놓고 주가가 종가기준 그추세선을 하향돌파하면 매도 신호가 나오게 할수있나요?
프로필 이미지
그리즐리
2017-07-31
100
글번호 111672
시스템

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2017-07-31
20
글번호 111669
시스템
답변완료

손매매와 병행인데 자동 청산식을 좀 써보려고 합니다.

1. 볼린져밴드를 뚫은 시점에 macd 오실레이터가 0보다 크면 진입. 그리고 음봉을 연속으로 2개 그릴시 매수 포지션을 청산하게끔, 그리고 거래는 포지션 청산시 당일 하루는 추가적인 진입이 없도록 하고 싶습니다. Inputs: Length(20), StdDev(1.5), Bars(1), shortPeriod(30), longPeriod(100); Variables: BBTop(0),BBBot(0),value(0); BBTop = BollBandup(Length, StdDev); value = MACD(shortPeriod, longPeriod); If CountIF(Close > BBTop, Bars) == Bars and value > 0 Then buy ("BBbot", AtMarket, BBTop); if c < c[1] then sell; SetStopProfittarget(5,PercentProfit); SetStopLoss(4,PercentStop); 2. 위의 식이 잘 안 먹혀서 손매매로 하고 있는데, 그래도 손절/익절을 좀 빠르게 해보고 싶습니다. 그니까 시스템식에 따른 진입이 아니라, 손으로 진입하더라도 이후에 1.5포인트 오르면 익절, 1포인트 내리면 손절하고 싶은데.. 어떻게 하면 될까요? ExitLong("ab",atstop,entryprice+1.5); ExitLong("cb",atstop,entryprice-1); 이렇게 해도 효과는 없었구요.
프로필 이미지
가치투자꾼
2017-07-31
128
글번호 111668
시스템
답변완료

부탁 드립니다.

도움주심에 경배로 감사 인사 올립니다. 아래 60분봉의 타주기용 지표를 1)일봉용을 분봉,틱봉에서 사용할수 있도록 수정 부탁 드립니다. 2)주봉용을 일봉,분봉에서 사용할수 있도록 수정 부탁 드립니다 3)월봉용을 주봉,일봉,분봉에서 사용할수 있도록 수정 부탁 드립니다 input : 분주기(60),P100(26); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : HV1(0),HV2(0); var : HH1(0),HH2(0); var : LL1(0),LL2(0); Array : HH[100](0),LL[100](0),OO[100](0),CC[100](0),VV[100](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S 1; TF = TM%분주기; if bdate != bdate[1] or (bdate == bdate[1] and TF < TF[1]) Then{ OO[0] = O; HH[0] = H; LL[0] = L; VV[0] = 0; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; VV[cnt] = VV[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; VV[0] = VV[0]+v; if HH[P100] > 0 Then{ HV1 = VV[0]; HH1 = HH[0]; LL1 = LL[0]; for cnt = 0 to P100-1{ if VV[cnt] > HV1 Then HV1 = VV[cnt]; if HH[cnt] > HH1 Then HH1 = HH[cnt]; if LL[cnt] < LL1 Then LL1 = LL[cnt]; } HV2 = 0; HH2 = 0; LL2 = 9999999999; for cnt = 0 to P100-1{ if VV[cnt] > HV2 and VV[cnt] < HV1 Then HV2 = VV[cnt]; if HH[cnt] > HH2 and HH[cnt] < HH1 Then HH2 = HH[cnt]; if LL[cnt] < LL2 and LL[cnt] > LL1 Then LL2 = LL[cnt]; } if HH1 > 0 and HH[0] == HH1 Then{ var1 = HH[0];} if HH2 > 0 and HH[0] == HH2 Then{ Var2 = HH[0];} if LL1 > 0 and LL[0] == LL1 Then{ var21 = LL[0];} if LL2 > 0 and LL[0] == LL2 Then{ var22 = LL[0];} if Hv1 > 0 and VV[0] == Hv1 Then{ var31 = CC[0];} if Hv2 > 0 and VV[0] == Hv2 Then{ var32 = CC[0];} } }
프로필 이미지
yes
2017-07-31
116
글번호 111667
지표
답변완료

수식 수정좀 부탁드립니다.

사진과 같이 과열구간이 연속으로 침체구간이 연속 발생시 신호가 발생되게 하고 싶습니다. 과열 - 침체 - 과열 <-진입 x 과열 - 침체 - 침체 <-진입 o 부탁드립니다. Input : sto1(12), sto2(5),침체(20),과열(80); var : StoK(0); var : UPS1(0),UPS2(0),UPC1(0),UPC2(0); var : DNS1(0),DNS2(0),DNC1(0),DNC2(0); StoK = StochasticsK(sto1,sto2); if crossup(stok,과열) Then{ UPS1 = stok; UPS2 = UPS1[1]; UPC1 = C; UPC2 = UPC1[1]; } if stok >= 과열 and stok > UPS1 Then UPS1 = stok; if CrossDown(stok,침체) Then{ DNS1 = stok; DNS2 = DNS1[1]; DNC1 = C; DNC2 = DNC1[1]; } if stok <= 침체 and stok < DNS1 Then DNS1 = stok; if CrossDown(stok,과열) and UPS1 < UPS2 and UPC1 > UPC2 and UPC2 > 0 Then sell("s"); if CrossUp(stok,침체) and DNS1 > DNS2 and DNC1 < DNC2 and DNC2 > 0 Then buy("b"); if MarketPosition == 1 and (stok > 과열 ) and (max(C,O)-min(C,O))<H-max(C,O) and H-max(C,O)>=min(C,O)-L or stok < 침체 Then{ ExitLong("b+"); } if MarketPosition == -1 and (stok < 침체 ) and (max(C,O)-min(C,O))<min(C,O)-L and H-max(C,O)<=min(C,O)-L or stok > 과열 Then{ ExitShort("s+"); }
프로필 이미지
디얼디어
2017-07-31
163
글번호 111666
시스템