커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지그재그를 이용한 마디가 구하기

항상 회원들의 질문에 성심성의껏 답변 해주셔서 감사합니다. 다름아니라, 첨부파일처럼 지그재그 수식을 이용해서 마디가를 구하고 싶습니다 동그라미 친 부분들이 지그재그 꺽이는 부분인데, 그 꺽이는 부분의 종가들의 평균을 선으로 그어주는걸 만들고 싶습니다. 물론 변수로 봉갯수를 입력할 수 있게 만들어 주시면 감사하겠습니다. 즉, 예를 들면, 변수로 120을 입력하면, 그 기간동안 지그재그로 인해 꺽이는 부분이 4번 있다면, 그 4개 캔들 종가의 평균을 직선으로 표현하고 싶습니다.
프로필 이미지
퍼플앙
2016-01-27
445
글번호 94835
지표

오늘도수익 님에 의해서 삭제되었습니다.

프로필 이미지
오늘도수익
2016-01-27
30
글번호 94834
지표
답변완료

문의드립니다

안녕하세요~ 1.주간기준으로 최대 3번의 진입만 할 것이고 손절당하는 경우가 아니고 익절하는 경우 해당 주는 더이상 진입이 발생하지 않게 하고 싶습니다 따라서 주간기준으로 max 3번의 진입이 있게되는데 첫번째 진입에 익절하는 경우 해당 주 더이상 진입 금지이고 첫번째 진입 손절 후 두번째 진입에 익절하는 경우 해당 주 진입금지 세번째 진입은 주간 마지막 진입입니다. 2. 현재가가 5일이평 아래에 지속적으로 있다가 현재가가 5일이평과 같을 때 바로 매수하는 수식을 알려주세요 3. bdate 와 sdate의 차이를 알려주세요 늘 감사드려요~
프로필 이미지
하라잉
2016-01-26
94
글번호 94833
시스템
답변완료

재문의합니다

안녕하세요 답변 매번 감사합니다 (buy1매수조건)을 어떻게 추가하는것인지 난감하네요 아래 buy1수식을 첨부합니다 if nday >= 10 then if data1(c) < data2(c) Then if countif(CrossDown(sma44,sma45+0.5),3) >=1 Then Buy("Buy1",AtLimit,c-pricescale*1); 다시한번 부탁드립니다 감사합니다 안녕하세요 예스스탁입니다. 작성하신 식이시면 첨부된 그림과 같이 buy1로 진입중에 sell이 발생하지 않습니다. 다만 Sell진입이 봉완성시 값을 셋팅하고 다음봉에서 신호가 발생하므로 셋팅되는 봉에서 buy조건이 동시충족되면 다음봉에서 동시에 신호가 나올수 있습니다. 이럴경우 동시셋팅되지 않게 아래와 같이 buy1조건이 아니라는 내용을 추가로 적어주셔야 합니다. !(조건)이 지정된 조건이 아니라는 표현입니다. if IsEntryName("buy1")==False and !(buy1매수조건) Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); } 즐거운 하루되세요 > 파티아 님이 쓴 글입니다. > 제목 : 문의드립니다 > 안녕하세요 늘감사합니다 30분봉입니다 buy1 매수중에는 sell 진입을 금지하고 싶은데도 계속 진입이 되네요 수식 수정 부탁드려요 감사합니다 if IsEntryName("buy1")==False Then{ if countif(CrossDown(sma44,sma45),3) >=1 Then Sell("Sell",AtLimit,c+pricescale*1); }
프로필 이미지
파티아
2016-01-26
102
글번호 94832
시스템
답변완료

함수수정요청(11-1)

안녕하세요? 아래의 함수를 수정요청드립니다. 아래의 함수는 매수와 매도가 서로 독립적으로 영향을 받고 있지 않습니다. 다시 말씀드리면 기존에 매도(s) 포지션이 진입되면 익절(sp)이든 손절(sl)이든 청산이 되야 매수(b) 신호가 생성됩니다. 그러지 말고 기존에 매도포지션이 들어가있어도 매수조건이 맞으면 기존의 매도포지션이이 청산되고 매수가 들어갈 수 있도록 수정 요청드립니다. ------------------------------------------------------------------------------------ var : entry1(0); var : ho1(0),OL1(0),HL1(0); var : maho1(0),maOL1(0),maHL1(0); var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0); var : EntryCnt1(0); var : V1(0),V2(0),V3(0),V4(0),V5(0); var : V6(0),V7(0),V8(0),V9(0),V10(0); if bdate != bdate[1] Then entry1 = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry1 = entry1+1; ho1 = Dayhigh-Dayopen; OL1 = DayOpen-DayLow; HL1 = DayHigh-DayLow; sumho1 = 0; sumOL1 = 0; sumHL1 = 0; for cnt1 = 1 to 10{ sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1)); sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1)); sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1)); } maho1 = sumho1/10; maOL1 = sumOL1/10; maHL1 = sumHL1/10; V1 = dayopen(0)+maho1; V2 = DayOpen(0)-maOL1; V3 = DayOpen(0)+maHL1; V4 = DayOpen(0)-maHL1; V5 = NthMaxList(1,V1,V2,V3,V4); V6 = NthMaxList(2,V1,V2,V3,V4); V9 = NthMaxList(3,V1,V2,V3,V4); V10 = NthMaxList(4,V1,V2,V3,V4); V7 = (V5+V10)/2; V8 = (V6+V9)/2; if MarketPosition == 0 and entry1 == 0 Then{ if V7 > V8 Then sell("s1",AtStop,v7); if V7 < V8 Then sell("s2",Atlimit,v8); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("sp1",atlimit,V9); ExitShort("sl1",AtStop,V6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("sp2",atlimit,V9); ExitShort("sl2",AtStop,V6); } var : TF(0); var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 050000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/2; var2 = (HV1+LV1)/2; var3 = (HV2+LV2)/2; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then buy("b",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitLong("bx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitLong(); }
프로필 이미지
통큰베팅
2016-01-26
102
글번호 94831
시스템

삼족오 님에 의해서 삭제되었습니다.

프로필 이미지
삼족오
2016-01-26
6
글번호 94830
지표
답변완료

46143 이어서 지표 문의 드립니다.

조금 더 자세히 풀어봤습니다. 신고가가 계속 갱신되고 있습니다. 그에 맞춰서 저가도 계속 올라가고 있는 상황입니다. 제가 원하는 것은 신고가가 아무리 갱신되더라도 아주 예전의 폭(a)이였어도 그것이 최대폭이라면 그 폭이 유지가 되는 것입니다. 초기화 조건이 없는 상태라면 폭 a b c d e 전자가 다 크다는 가정을 하겠습니다. a >b a a>c a a>d a a>e a 가 되어 5의 신고가 상태에서도 5의 가격 - a = 제가 원하는 폭 의 가격이 나와야 합니다. 지금 식대로라면 a > b a b > c b c > d c d > e d 이렇게 비교를 하는 것 같습니다. 엑셀 데이타 그림 제가 원하는 방식으로 지표를 나오게 하고 싶습니다. 감사합니다.
프로필 이미지
kosto1
2016-01-26
128
글번호 94829
지표
답변완료

please check

please check attaschment. always thank you.
프로필 이미지
흑수돌
2016-01-27
108
글번호 94828
지표

삼족오 님에 의해서 삭제되었습니다.

프로필 이미지
삼족오
2016-01-27
22
글번호 94826
지표