커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁 드립니다.

1)수식을 함수로 변환시켜 실행 시키고 싶습니다. 예)TL1=함수명(length); 2)예를 들어 length(100)을 입력 하려면 Array:valArr[100](0)등과 같이 수정 해야 하는곳이 있는지요? 3)함수식을 배포버전으로 저장 하고 싶습니다. 미리 감사 드립니다. Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,length) == H and lastHiVal <> H; Condition2 = Lowest(L,length) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; }} If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2], sDate[barArr[1]],sTime[barArr[1]],valArr[1]); Else TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); }} TL_SetSize(TL1,0); TL_SetColor(TL1,green);
프로필 이미지
yes
2018-06-14
197
글번호 119707
지표
답변완료

모멘텀 스코어 계산

안녕하세요. 모멘텀스코어를 계산하고 계산한 스코어의 이평선을 계산해서 3이평선이 12이평선 보다 높은 경우에 매수하고, 3이평선이 12이평선보다 낮으면 매도를 하고 싶은데요. Var : m1(0), m2(0), m3(0), m4(0); Var : m5(0), m6(0), m7(0), m8(0); Var : m9(0), m10(0), m11(0), m12(0); var : MoMS(0); If C-C[1] > 0 Then m1 = 1; If C-C[2] > 0 Then m2 = 1; If C-C[3] > 0 Then m3 = 1; If C-C[4] > 0 Then m4 = 1; If C-C[5] > 0 Then m5 = 1; If C-C[6] > 0 Then m6 = 1; If C-C[7] > 0 Then m7 = 1; If C-C[8] > 0 Then m8 = 1; If C-C[9] > 0 Then m9 = 1; If C-C[10] > 0 Then m11 = 1; If C-C[11] > 0 Then m11 = 1; If C-C[12] > 0 Then m12 = 1; MoMS = (m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+m12); value1 = ma(MoMS, 3); value2 = ma(MoMS, 12); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); } # 매도/매수청산 If CrossDown(value1, value2) Then { Sell(); } 이렇게 했는데 제대로 작동을 안하는데 어떻게 수정해야 될까요?
프로필 이미지
연감자
2018-06-13
196
글번호 119706
시스템
답변완료

다시문의드림니다

안녕하세요..글번호58169.제가설명을잘못해서요..다시문의드림니다.죄송합니다... 첩부한사진의흰색라인은 글번호48820 수식이구요. 검정색라인의 수식을 부탁드림니다. 1.직고라인..양봉의종가에서 -10틱이탈되면 양봉의종가가격에서 라인발생해서 다음직고라인이 발생될때까지 그려지게요. 2.직저라인..음봉의종가에서 +10틱돌파되면 음봉의종가가격에서 라인발생해서 다음직저라인이 발생될때까지 그려지게요. 3.중심라인..직고와직저의 중심값라인발생해서 다음라인이발생될깨까지 그려지게요. 수고하세요...꾸벅
프로필 이미지
보인다
2018-06-13
251
글번호 119705
지표

보인다 님에 의해서 삭제되었습니다.

프로필 이미지
보인다
2018-06-13
0
글번호 119704
지표
답변완료

부탁드립니다.

1. 죄송합니다. 58183과 관련하여 챠트에 전혀 구현이 되지 않습니다. 60분챠트에서 현재일종가 01시봉과 02시봉을 합친 최고점과 최저점을 전일 01시봉과 02시봉의 최고점과 최저점끼리 서로 연결된 우측 추세선으로 구현되도록 부탁드립니다. 그러면서 동시에 위 시간대 전일과 전전일, 전전일과 전전전일끼리도 서로 연결된 추세선 구현이 가능하시면 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2018-06-13
180
글번호 119703
지표
답변완료

지표 수식 도움요청합니다.

안녕하세요? 실력이 모자라 이것저것 짜립기하다보니 뭔가 에러도 나고 표현하고자 하는 것에 미흡합니다. 수고스러운걸 너무도 잘 알지만 도와주심 정말 감사하겠습니다, 표현하고자 하는 지표의 기능은 1. 핵심 중심라인과 시가, 고, 저, 종가선 표현 2. 5, 20 이동평균선 표현 3 당일, 전일, 전전일 라인의 선택과 컬러를 선택 표현할 수 있도록 4. 캔들챠트 오른쪽에 해당 지표 이름과 지수데이터가 컬러를 선택해서 표현할 수 있도록 하고자 함입니다. 미리 감사드립니다.. 꾸뻑 =============================================== var : HC20(0),LC20(0),mid20(0); var1 = c; if dayindex == 0 Then{ HC20 = o; LC20 = o; } if TimeToMinutes(stime)>= 540 Then{ if h > HC20 Then HC20 = h; if l < LC20 Then LC20 = l; } mid20=(HC20+LC20)/2; plot1(HC20,"당일최고가"); plot2(LC20,"당일최저가"); plot3(mid20,"당일중간가"); plot5(DayOpen,"당일시가"); Plot6(DayClose(1), "전일종가"); Plot7(DayClose(2), "전전일종가"); if lc20<lc20[1] Then {plot2(LC20,"당일최저가",black); } if hc20>hc20[1] Then{ plot1(HC20,"당일최고가",red); } if mid20>mid20[1] Then plot3(mid20,"당일중간가",red); if mid20<mid20[1] Then plot3(mid20,"당일중간가",black); plot4(c,"종가선"); Text_Delete(var11); var1 = Text_New(sdate,stime,dayopen(0),"당일시가:"+NumToStr(dayopen(0),2)); Text_Delete(var12); var2 = Text_New(sdate,stime,DayHigh(0),"당일고가:"+NumToStr(DayHigh(0),2)); Text_Delete(var13); var3 = Text_New(sdate,stime,DayLow(0),"당일저가:"+NumToStr(DayLow(0),2)); Text_Delete(var14); var4 = Text_New(sdate,stime,DayClose(0),"당일종가:"+NumToStr(DayClose(0),2)); Text_Delete(var15); var5 = Text_New(sdate,stime,dayopen(1),"전일시가:"+NumToStr(dayopen(1),2)); Text_Delete(var16); var6 = Text_New(sdate,stime,DayHigh(1),"전일고가:"+NumToStr(DayHigh(1),2)); Text_Delete(var17); var7 = Text_New(sdate,stime,daylow(1),"전일저가:"+NumToStr(DayLow(1),2)); Text_Delete(var18); var8 = Text_New(sdate,stime,DayClose(1),"전일종가:"+NumToStr(DayClose(1),2)); Text_Delete(var19); var9 = Text_New(sdate,stime,dayopen(2),"전전일시가:"+NumToStr(dayopen(2),2)); Text_Delete(var20); var10 = Text_New(sdate,stime,DayHigh(2),"전전일고가:"+NumToStr(DayHigh(2),2)); Text_Delete(var21); var11 = Text_New(sdate,stime,DayLow(2),"전전일저가:"+NumToStr(DayLow(2),2)); Text_Delete(var22); var12 =
프로필 이미지
포보스
2018-06-13
226
글번호 119702
지표
답변완료

수식 수정 요청드립니다!!!!

답변 감사합니다만, 하기 수식 조건 만족시 화살표 나오게 수정 요청드립니다. 화살표 표시되며 가격도 표기되게 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 수식 작성법이나 차트 적용하는 방법은 랭귀지도움말과 프로그램 도움말 참고하시기 바랍니다. 아래 링크에 가시면 도움말 다운로드 받으실 수 있습니다. https://www.yesstock.com/Product/pd_eFriendGlobalYestrader.asp 모두 실시간 자동매매나 시뮬레이션 가능합니다. 1 Input : shortPeriod(20), longPeriod(60); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); } # 매도/매수청산 If CrossDown(value1, value2) Then { Sell(); } 2 Input : shortPeriod(20), longPeriod(120); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); } # 매도/매수청산 If CrossDown(value1, value2) Then { Sell(); } 즐거운 하루되세요 > hongka21 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 제가 400틱 차트에서 이평선에 따른 매수/매도 신호 적용을 하고싶은데요, 신호는 파라볼릭 신호와 같이 매수는 붉은색 화살표/매도는 파란색 화살표시 되었으면 좋겠습니다. 1. 400틱 차트에서 20 이평선이 60 이평선을 넘어설때(골든크로스시) 매수 신호(붉은색 화살표) 20 이평선이 60 이평선을 뚫고 내려갈때(대드크로스시) 매도 신호(파란색 화살표) 2. 400틱 차트에서 20 이평선이 120 이평선을 넘어설때(골든크로스시) 매수 신호(붉은색 화살표) 20 이평선이 120 이평선을 뚫고 내려갈때(대드크로스시) 매도 신호(파란색 화살표) 두개의 신호 발생할수있도록 수식 작성 부탁드립니다. 3. 작성된 수식을 예스스탁(e프랜드 한투증권사용)중인 차트에 어떻게 적용하는지도 설명 부탁드립니다. 4. 위 신호 발생에 따른 시스템 자동 매매(신호에 따른 자동 진입/청산)이 가능한지 문의드립니다. 5. 위 신호 발생에 따른 시뮬레이션 자동 매매(신호에 따른 자동 진입/청산)이 가능한지 문의드립니다. 적극적인 답변 부탁드립니다. 감사합니다.!!
프로필 이미지
hongka21
2018-06-12
249
글번호 119701
지표
답변완료

수식문의

예스수식으로 부탁드립니다. A = (DayHigh() + DayLow())/2; crossup(C, A) and C > O A = (DayHigh() + DayLow())/2; crossdown(C, A) and C < O
프로필 이미지
히라얀
2018-06-12
205
글번호 119699
시스템
답변완료

수식문의

안녕하세요 하기 답변주신 메일 정말 감사드립니다. 제가 착각을해서 한가지 수정사항이 있습니다. 죄송하지만, 변경부탁드립니다. 결론은, +/- 부호가 반대로 작용되고 있습니다. 수정부탁드립니다. 하기수식에서 매도 진입시 ADX 선 위에 + DI 선이 있으면 진입대기후 + DI 선이 ADX 아래로 내려온 후에 진입하게 부탁드립니다. 하기 수식에서 매수 진입시 ADX 선 위에 - DI 선이 있으면 진입대기후 - DI 선이 ADX 아래로 내려온 후에 진입하게 부탁드립니다. ------------------------------------------------------- 안녕하세요 하기 수식에서 한가지 추가사항을 하고 싶어서 메일드립니다. 검토 부탁드립니다. 하기수식에서 매도 진입시 ADX 선 위에 - DI 선이 있으면 진입대기후 - DI 선이 ADX 아래로 내려온 후에 진입하게 부탁드립니다. 하기 수식에서 매수 진입시 ADX 선 위에 + DI 선이 있으면 진입대기후 + DI 선이 ADX 아래로 내려온 후에 진입하게 부탁드립니다. 감사합니다. input : Period(20),dv(2); var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1); var : BandB1(0,data1),HH1(0,data1),LL1(0,data1); var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2); var : T(0,data1); BBmd1 = data1(ma(C,Period)); BBdn1 = data1(BollBandDown(Period,Dv)); BBUp1 = data1(BollBandUp(Period,Dv)); BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100); BBmd2 = data2(ma(C,Period)); BBdn2 = data2(BollBandDown(Period,Dv)); BBUp2 = data2(BollBandUp(Period,Dv)); if crossup(BandB1,90) Then HH1 = BandB1; if BandB1 > 90 and BandB1 > HH1 Then HH1 = BandB1; if CrossDown(BandB1,10) Then LL1 = BandB1; if BandB1 < 10 and BandB1 < LL1 Then LL1 = BandB1; if CrossDown(BandB1,90) Then { T = 0; if HH1 > 100 Then T = -1; if BBup2 < BBup1 then T = -2; } if CrossUp(BandB1,10) Then { T = 0; if HH1 < 0 Then T = 1; if BBdn2 > BBdn1 then T = 2; } if T == -1 and BBup2 < BBup1 then T = -2; if T == 1 and BBdn2 > BBdn1 then T = 2; if T == -2 and T != T[1] Then { T = 0; sell("s4"); } if T == 2 and T != T[1] Then { T = 0; buy("b4");
프로필 이미지
softtoug
2018-06-12
173
글번호 119698
시스템