커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

시스템식 문의드립니다

안녕하세요. 수식작성해주셔서 정말 감사합니다!!! 시스템 수식 작성 부탁드립니다. 조건은 다음과 같습니다. 당일 거래대금 100억 이상 발생한 종목 매수전 ㄱ. 1220이후 10분봉상 음봉에 거래량 50%있으면 당일 매수 안함 ㄴ. 1220이후 10분봉상 양봉에 시가 종가폭이 2%이하(양봉인데 몸통이 2%이하인 경우) & 거래량 50%있으면 당일 매수안함 ㄷ.1450시가가 0900 고가 +3%보다 낮으면 당일 매수안함 (1450이 시가가 0900고가보다 3%더 높은 곳에 있으면 매수합니다) ㄹ. 1300 -1440사이에 최저점 대비 5%이상 상승있으면 당일 매수안함 ㅁ. 1400시가보다 1450 시가의 가격이 높으면 1450 - 1520사이에 1400의 시가에 매수 (그 사이에 ㄱ ㄴ ㄷ ㄹ의 상황이 발생하면 당일은 매수하지 않습니다) 매수 1450 시장가매수 매도 매수가대비 7%상승시 시장가 매도 매수가대비 -3하락시 시장가 매도
프로필 이미지
kosto1
2017-03-14
123
글번호 107768
시스템
답변완료

sell 거래 오류

수식 고맙습니다. 당일 청산 15시로 하고 시뮬레이션 해보니 buy 거래만 하고 sell 거래는 하지 않습니다. 살펴주세요. 늘 고맙습니다. 안녕하세요 예스스탁입니다. if bdate != bdate[1] Then{ Condition1 = false; var1 = H; var2 = L; } if stime >= 140000 and Condition1 == false and C > O Then{ Condition1 = true; if H < var2 Then buy(); } if stime >= 140000 and Condition2 == false and C < O Then{ Condition2 = true; if L > var1 Then sell(); } 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 재문의 > 죄송하지만... 아래건 시뮬레이션이 안되는데요. 수정하여 다시 문의드립니다. kospi200 선물 오후2시 거래시작. 오후2시 후 첫번째로 생긴 양봉의 고가가 09시 장 시작해서 생긴 첫봉(저가)보다 작을 경우 buy 오후2시 후 첫번째로 생긴 음봉의 저가가 09시 장 시작해서 생긴 첫봉(고가)보다 클 경우 sell 부탁드립니다.
프로필 이미지
목마와숙녀
2017-03-14
116
글번호 107767
시스템
답변완료

참조식 문의

아래 참조식을 60분봉 참조로 input : sto1(12),sto2(5),sto3(5); var : stok(0,data2),stod(0,data2); stok = data2(StochasticsK(sto1,sto2)); stod = data2(Stochasticsd(sto1,sto2,sto3)); if stod > stok and stok < 60 and stok > 12 Then sell(); if stod < stok and stok > 40 and stok < 90 Then buy(); 아래 틱봉 시스템에 참조식으로 넣고 싶습니다. 어떻게 합치면 될까요 input : p1(7),p2(11),p3(22),p4(62),p5(122); var : i1(0),i2(0),mav(0),mav1(0),Bxcond(false),Sxcond(false); var1 = ma(c,P1); //이평선 매매 정배열일시 62일선에서 매수, 역배열일시 매도, 손절시 스위칭 전략. var2 = ma(c,P2); var3 = ma(c,P3); var4 = ma(c,P4); var5 = ma(c,P5); mav = ma(C,62); mav1= ma(C,122); condition1 = var1 > var5 and var2 > var5 And var3 > var5; //매수 추세 Condition2 = var1 < var5 and var2 < var5 And var3 < var5; //매도 추세 Condition3 = TotalTrades >= 1 and MarketPosition == 0 and BarsSinceExit(1) <= 10; condition4 = BarsSinceEntry >= 5; if MarketPosition == 0 and Condition1 == true and Condition3 == false and TotalTrades == TotalTrades[1] Then{ Buy("매수진입",atlimit,mav1); } if MarketPosition == 0 and Condition2 == true and Condition3 == false and TotalTrades == TotalTrades[1] Then{ Sell("매도진입", atlimit, mav1); } if IsExitName("StopLoss",1) == true and IsEntryName("매수전환",1) == false and IsEntryName("매도전환",1) == false then{ if MarketPosition == 0 and MarketPosition(1) == 1 Then sell("매도전환",Atlimit,mav1); if MarketPosition == 0 and MarketPosition(1) == -1 Then buy("매수전환",Atlimit,mav1); }
프로필 이미지
이대규
2017-03-14
121
글번호 107766
시스템
답변완료

수식문의합니다

안녕하세요 현재 사진처럼 가능할까요? 내용은 현재 상승하는 구간에서 전 양봉 캔들의 고점을 돌파한 후 음봉이 확정 되면 앞 양봉에 숫자표시 현재 하락하는 구간에서 전 음봉 캔들의 저점을 돌파한 후 양봉이 확정 되면 앞 음봉에 숫자표시 양봉 -- 양봉--- 음봉 확정시 두번째 양봉에 숫자 표시 입니다 음봉 -- 음봉--- 양봉 확정시 두번째 음봉에 숫자 표시 입니다 사진 첨부합니다.. 수고하세요
프로필 이미지
정상에서야
2017-03-14
202
글번호 107765
지표
답변완료

1. 지표의 최고값과 최저값을 선으로 표시/ 2. 지표의 현재값만 표시

안녕하세요. 아래 두 가지의 문의가 있습니다. 1. 지표의 최근 최고값과 최저값을 선으로 표시 할 수 있나요? 예를 들어 이평선(20)으로 해주시면 될 것 같습니다. 이평선은 표시 안되고, 최고/최저값만 선으로 보이는 것이 좋겠습니다. 2. 지표의 현재값만 표시될 수 있을까요? 이전 값은 기록이 안되어도 좋고, 현재 값만 있는 것입니다. 어렵게 질문드려서 죄송합니다. 좋은 하루 되세요...
프로필 이미지
회원
2017-03-14
179
글번호 107758
지표
답변완료

안녕하세요?

수고가 많으십니다. 아래수식에 다음을 추가 할려고 합니다. 1. 당일고점기준 : 첫번째,두번째,세번째 파동의 저가를 변수에 각각 할당. 첨부그림 참고하세요 var1에는 1207.9 var2에는 1202.5 var3에는 1202.0 파동가격이 낮은 가격만 할당하고 싶습니다. var2 가격이 var1보다 크면 저장하지 않고 작은 가격만 저장. 2. 당일저점기준 : 첫번째,두번째,세번째 파동의 고가를 변수에 각각 할당. 첨부그림 참고하세요 var11에는 1197.3 var12에는 1199.0 var13에는 1202.4 파동가격이 높은 가격만 할당. var3 가격이 var2보다 작으면 그다음파동 가격를 저장. -------------------------------------------------------- 이렇게 수식 가능한지요 가능하면 부탁드립니다. 감사합니다. Input:length(5); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""), TL_Val1(0),TL_Val2(0); Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0); Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetSize(TL1,2); TL_SetColor(TL1,BLACK); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],1)); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,RED); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetSize(TL1,2); TL_SetColor(TL1,BLACK); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],1)); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,BLUE); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } mav = ma(C,20);
프로필 이미지
상중하
2017-03-14
222
글번호 107755
지표

대가들의매매 님에 의해서 삭제되었습니다.

프로필 이미지
대가들의매매
2017-03-14
0
글번호 107754
시스템
답변완료

일목균형표를 설정할 때 봉 개수는 며칠꺼를 불러와야 하는지요?

일목균형표의 전환선 기간은 9일, 기준선 기간은 26일, 선행스팬1은 26일로 설정할 때 이 기간 만큼의 봉 개수를 설정하고 차트를 띄워야 하는 것인지요? 즉, 기준선 기간이 26일 이니까 차트에서는 봉개수를 26일치 이상 불러와야 기준선이 올바르게 그어질 것이고, 봉 개수를 9일치만 불러온다면 9일 기준인 전환선은 올바르게 그어지겠지만 기준선과 선행스팬1은 26일 치를 분석해야 하는데 9일치만 분석하기 때문에 올바르게 표시되지 않을 수도 있을 것 같은 생각이 들어 문의드립니다. 제 생각이 &#47583;는지 아니면 차트상의 봉개수와는 관계없이 전환선 기준선 등이 올바르게 그어지는 것인지요?
프로필 이미지
천왕봉
2017-03-14
145
글번호 107753
지표
답변완료

문의드립니다~

input : 분주기(30),P(5),분주기1(15); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0),tf1(0); Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0); Array : C1[100](0),T1[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then{ OO[0] = o; HH[0] = H; LL[0] = L; TT[0] = stime; 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]; TT[cnt] = TT[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TF1 = TM%분주기1; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF1 < TF1[1]) Then{ T1[cnt] = stime; for cnt = 1 to 99{ C1[cnt] = C1[cnt-1][1]; T1[cnt] = T1[cnt-1][1]; } } C1[0] = C; } 1.cc[1]과 c1[1]이 같지않은 경우를 식으로 표현하고 싶은데요~ 틱분주기15분단위에서 이전종가가10시45분 11시15분 11시45분 12시15분 12시45분식으로 15분단위 시간일때에 5일선과 20일선데드크로스시매도한다라는걸 제가 식으로 표현하니깐 if cc[1]!=c1[1] then crossdown(tic5,tic20); 이렇게 표현을 했거든요 그런데 만약 2시가격인cc[1]과 2시15분가격인c[1]이 서로가격이 같아지게되면 2시15분이후에 데드크로스가나온자리를 시스템이 인지를 못하더라구요 그래서 cc[1]의 시간과 c1[1]의 시간이 같지않을때 또는 15분 45분단위시간을 식으로 표현하고 싶습니다. 새로받은식에서tt[1]과 t1[1]이 있던데요 plot로 표현해 보니깐 빨간세로선으로 새벽12시30분 그리고 낮10시30분에 세로로 가격이 그어지던데 tt랑 t1이 각각30분주기시작시간 15분주기시작시간을 나타낸거 같은데요 plot으로 표현해 보니깐 당일시작시간이 나타나서요 제가원하는 식이 tt[1]!=t1[1]이렇게 표현하면 되는건지요? 감사합니다~
프로필 이미지
겐지
2017-03-14
131
글번호 107752
지표