커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

용호79 님에 의해서 삭제되었습니다.

프로필 이미지
용호79
2022-02-08
0
글번호 156104
시스템
답변완료

문의

답변수식에 k와 t 값을 추가로 반영해보았습니다. 1) 바르게 했는지요? k 값은 시뮬레이션 결과에 변화가 있는데 t 값은 결과 변화가 없습니다. t 값은 분자에 data1(Oi) 누적이 있어 답변수식 참조하여 적용했는데 아닌 것 같습니다. 살펴주세요. *************************************************************************** input : StartTime(090000),EndTime(150000); var : Tcond(false,Data1); var : sum1(0,Data1),sum2(0,Data1),sum3(0,Data1); var : a(0,Data1),b(0,Data1),k(0,Data1),j(0,Data1),q(0,Data1),t(0,Data1),x(0,Data1),y(0,Data1),z(0,Data1),hh(0,Data1),ll(0,Data1); var : a1(0,Data1),a2(0,Data1),a3(0,Data1),a4(0,Data1),a5(0,Data1),a6(0,Data1),a7(0,Data1); sum1 = data2(c) + data3(c); sum2 = data4(c) + data5(c); sum3 = data6(c) + data7(c); k = data3(c) + data5(c) + data7(c); j = (data2(c) + data3(c) + data4(c) + data5(c)+ data6(c) + data7(c))/100; if Data1(Bdate != bdate[1]) Then { hh = k; ll = k; } Else { if k > hh Then hh = k; if k < ll Then ll = k; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; a=sum1-sum3; b=sum1-sum2; q=a-b; a1 = 0; a2 = 0; a3 = 0; a4 = 0; a5 = 0; a6 = 0; a7 = 0; } if Tcond == true Then { a1 = a1 + Data1(OI); a2 = a2 + Data2(OI); a3 = a3 + Data3(OI); a4 = a4 + Data4(OI); a5 = a5 + Data5(OI); a6 = a6 + Data6(OI); a7 = a7 + Data7(OI); t = a1/j; x = a3+a5+a7; y = a2+a4+a6; z = x/y*100; if Data1(sdate) == Data1(sDate) and Data1(sdate) == Data2(sDate) and Data1(sdate) == Data3(sDate) and Data1(sdate) == Data4(sDate) and Data1(sdate) == Data5(sDate) and Data1(sdate) == Data6(sDate) and Data1(sdate) == Data7(sDate) Then { t = a1/j; x = a3+a5+a7; y = a2+a4+a6; } Else { t = 0; x = 0; y = 0; z = 0; } if Tcond[1] == true and CrossDown(k,hh*(1-30/100)) and q > 0.5 and z > 10 and t > 10 Then Buy("b"); }
프로필 이미지
목마와숙녀
2022-02-08
1041
글번호 156098
시스템
답변완료

재문의 드립니다

쌀쌀한날씨에 고생많으십니다 수식 문의드립니다!!! input : period(20) , midperiod(20),d1(2),period1(10),period2(15),d(2),이평(120),이평(240),hp1(20); var : price(0),h1(0); value1 = BollBandUp(Period1,D); value2 = BollBandUp(Period2,D); H1=Highest(H,HP1); price = (C+H+L)/3; var1 = Ema(price,Period)+D1*std(price,Period); Condition1 = C > H1[1]; if CrossUp(C,var1[midperiod-1]) and (c>=Value1) and (c>=Value2)and Condition1 and (c>이평) and (c>이평1)Then Find(1); 주가가 price와 볼린저밴드 2개를돌파하면서 20일 신고가를 만드는식입니다 그리고 주가가 단순이평 120일선 240일선 위에있고 120일선 240일선 정배열구간입니다 추가로 주가가 일목균형표 선행스팬2보다 위에 있는걸 검색하고 싶습니다. 이부분에서 20일선신고가가 고가가 아닌 종가가 신고가인지 확인부탁드리고 고가가 신고가라면 종가가 신고가 수식을 알고 싶습니다
프로필 이미지
비스코
2022-02-08
1171
글번호 156095
검색
답변완료

수식 부탁드립니다.

아래 수식 문의를 했읍니다만..제가 원하는 결과 도출이 안되어 다시 문의드립니다. 1. 조건 1 . 볼린저밴드 하단선 터치시 진입(상단 절대아닙니다!!) BBandsDown(Period,D1)....Period=45,D1=2.3 2. 조건 2 . 익절 30틱, 손절 30틱 3. 조건3 . 첨부화일과 같이 볼린져밴드 하단 터치시 진입이나.. 이전봉L(1)과 그 이전봉 L(2)의 가격은 밴드 하단보다 커야한다 즉 가격대가 밴드 상단에서 형성 후 밀려서 밴드 하단 터치시에만 진입 4. 조건 4 . 해당 봉의 저가가 밴드 하단 터치시 매수 진입 종가가 아닌 저가가 밴드 하단시 진입 주문가는 시장가나 현재가가 아닌 밴드 하단 터치가. 5. 조건5 . 매수 전용입니다. 당일 신호 발생 후 당일 청산이 기본입니다. 6. 차트는 갭보정 차트입니다. 갭보정 여부는 수식에서 설정하나요? 아니면 차트 설정이 갭보정으로 되어있으면 자동 적용되나요?? 매우 단순한 조건인데... 기존의 제공된 볼린져밴드 수식으로 적용시 이상한 결과만 도출됩니다. 수식 부탁드립니다. 참고로 아래 문의드린 75831번의 수식을 적용시 수식에러가 발생합니다.
프로필 이미지
ryu
2022-02-08
1189
글번호 156092
시스템
답변완료

지표 질문입니다

일봉 5ma ,20ma를 틱 차트에 구현하는 수식 감사합니다
프로필 이미지
회원
2022-02-08
1135
글번호 156088
지표
답변완료

예스랭귀지 메뉴얼 설명

안녕하세요! 예스랭귀지 메뉴얼을 공부하는 중인데 너무 이해가 안가서 여기에 질문 합니다. 배열에 관한 메뉴얼 부분인데요, 1. Hval[count] = Hval[count-1][1]; 라는 식이 전혀 이해가 안가네요. 여기서 Hval은 배열인데 [1]이 또하나 즉 []가 두번 쓰였습니다. 이건 고가봉인데 현재 고가가 아니라 1분 전의 고가를 넣는다는 건가요? 근데 왼쪽에는 왜 Hval[count][1]에 대입이 아니라 Hval[count]인지요?ㅠㅠ 2. 아래 코드의 실행은 봉마다 실행이 되는건가요? 봉은 변수지만 사실 다른, 예를 들면 파이썬의 경우 List(즉 어레이)라고 할 수 있는 건데 이게 마치 변수처럼 다뤄지니 너무 헷갈리네요. 이런 연장에서 보면 아래 코드의 Frame와 Frame[1] 둘을 messageLog를 해보면 0.00만 나옵니다. 근데 저 아래 식에서는 두개를 비교연산을 하는데 값이 왜 0.00인지 모르겠습니다 3. 10개의 요소를 가진 배열을 선언했는데 위의 2번에 썼듯 봉개념이 너무 헷갈리다보니 예시의 목적과 연관이 있는 숫자인지 잘 감이 안옵니다ㅠㅠ 10시간이라서 그런건가 아니면 60분 안에서 H 즉 고가로 저장할 것을 그냥 임의로 10개 정도를 담을 뜻으로 10의 배열을 선언한 건지요? 도움부탁드립니다. 너무 어렵네요 감사합니다! var : Frame(0),count(0); Array : Hval[10](0); Frame = TimeToMinutes(sTime)%60; if DayIndex == 0 or Frame <Frame[1] Then { Hval[0] =H; For count =1 to 9{ Hval[count] = Hval[count-1][1]; } } if H > Hval[0] Then Hval[0]= H; Plot1(Hval[0]);
프로필 이미지
nirvana
2022-02-08
1522
글번호 156087
지표
답변완료

수식문의드립니다

안녕하세요 오늘도 몇 가지 질문이 있어 문의드립니다! 1. 주문시 가격을 틱 단위로 맞춰야 하는지 ATR을 기준으로 손절가를 정해 청산하려 하고 아래와 같이 작성했습니다 input : HB(14735), LB(14725); var : e60(0), N(0); e60 = Ema(C,60); N = Highest(ATr(14), 100); Buy("H",AtStop,HB,2) ; Sell("L",AtStop,LB,2) ; if marketposition > 0 Then ExitLong("exitH1",AtStop,HB-N); if marketposition < 0 Then ExitShort("exitL1",AtStop,LB+N); ATR이 0.25단위가 아니다보니 여기서 손절가인 HB-N, LB+N의 값은 틱 단위인 0.25로 떨어지지 않게 되는데 그냥 이렇게 사용해도 알아서 계산되 작동되는지 ex) 14000.35로 매수주문 들어가면 14000.50으로 계산 ex) 14000.35로 매도주문 들어가면 14000.25으로 계산 아니면 단위를 맞추기 위해 위의 'N'을 반올림하거나 해서 소수점이 틱 단위로 되도록 맞춰야 하는지 확인 부탁드립니다 2. 피라미딩에서 매수가 많이되는 문제 HB(LB) 돌파진입 이후 첫 포지션의 손절선은 돌파선 -5 추가 진입마다 손절선을 +2씩 상향시키도록 아래와 같이 만들었습니다 input : HB(14750), LB(14720), N(2); var : Hx(0), Lx(0); Buy("b1",AtStop,HB,2); Buy("b2",AtStop,HB+N,2); Buy("b3",AtStop,HB+2*N,2); Buy("b4",AtStop,HB+3*N,2); Sell("s1",AtStop,LB,2); Sell("s2",AtStop,LB-N,2); Sell("s3",AtStop,LB-2*N,2); Sell("s4",AtStop,LB-3*N,2); if marketposition == 1 then { Hx = highest(H,barsinceentry); if HB <= Hx && Hx < HB +N then exitlong("exitB", atstop, HB-5); if HB +N <= Hx && Hx < HB +2*N then exitlong("exitB", atstop, HB-3); if HB+2*N <= Hx && Hx < HB +3*N then exitlong("exitB", atstop, HB-1); if HB +3*N <= Hx then exitlong("exitB", atstop, HB+1); } if marketposition == -1 then { Lx = lowest(L,barsinceentry); if LB >= Lx && Lx > LB-N then exitlong("exitB", atstop, LB+5); if LB-N >= Lx && Lx > LB-2*N then exitlong("exitB", atstop, LB+3); if LB-2*N >= Lx && Lx > LB-3*N then exitlong("exitB", atstop, LB+1); if LB-3*N >= Lx then exitlong("exitB", atstop, LB-1); } 위와같이 만들어 시스템매매설정의 피라미딩 탭에서 '다른진입신호만 허용'을 선택했습니다 매수(매도) 한 방향으로 최대 4번까지만 진입해 피라미딩 되어야하는데 4번 이상 진입하는 경우가 종종 생기고 그렇게 됐을땐 청산조건에 걸려도 전부 청산되지가 않습니다 ex) 매수 6번 진입해 12계약이 있다면, 청산조건이 되도 8계약만 청산되고 4계약이 남음 어떤 부분에 문제가 있어 이런 일이 생기는 것인지 확인 부탁드립니다 감사합니다
프로필 이미지
jshwang2
2022-02-08
1297
글번호 156086
시스템
답변완료

안녕하세요 운영자님 수식 좀 알려주세요

안녕하세요 현재의 가격이 5,10,20,60,180일선 모두를 상승하거나 하락할때의 수식이 궁금합니다. 기본적으로 나와있는 수식에서는 crossup crossdown 을 사용하여 하나나 두개의 이동평균선만을 설정할 수 있는데 저는 5,10,20,60,180일선 모두를 밑에 깔고 상승했을때 혹은 위에놓고 하락하였을때의 수식을 원합니다.,.(정배열,역배열이 아니라 그냥 설정한 모든이평) 정배열,역배열 말고 이동평균선이 뒤섞여있어도 어쨋든 설정한 모든 이동평균선위로 가격이 올라가있을때의 수식을 부탁드립니다..
프로필 이미지
해선에이스
2022-02-08
1047
글번호 156085
시스템
답변완료

수식추가 부탁드립니다.

안녕하세요? 아래의 수식에서 진입부분이 현재 음봉 음봉에 매도 양봉 양봉에 매수 로 되어있는데, 전음봉 종가보다 진입음봉의 종가가 작을때 매도 전양봉 종가보다 진입양봉 종가가 클때 매수 로 하고싶습니다. 부탁드립니다. 감사합니다. input : 음봉(5),양봉(5); input : 익절틱수(50),손절틱수(50),진입횟수(3); var : entry(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and entry < 진입횟수 and C[1] == O[1]-음봉*PriceScale and C == O-음봉*PriceScale Then Sell(); if MarketPosition == 0 and entry < 진입횟수 and C[1] == O[1]+양봉*PriceScale and C == O+양봉*PriceScale Then Buy(); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop)
프로필 이미지
대구어린울프
2022-02-08
1024
글번호 156084
시스템