커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 수정 의뢰 합니다!

안녕하세요! 아래는 지난번에 만들어 주신 수식 입니다! 이평 기울기를 적용하여 하락시는 파랑색, 상승시에는 빨강색으로 선의 색을 바꿔 주세요! 감사합니다! Input : Period1(3),Period2(7),Period3(14),Period4(28),Period5(40),Period6(56),Period7(112),Period8(224); var : Xma1(0),Xma2(0),Xma3(0),Xma4(0),Xma5(0),Xma6(0),Xma7(0),Xma8(0); Xma1 = ema(C,Period1); Xma2 = ema(C,Period2); Xma3 = ema(C,Period3); Xma4 = ema(C,Period4); Xma5 = ema(C,Period5); Xma6 = ema(C,Period6); Xma7 = ema(C,Period7); Xma8 = ema(C,Period8); Plot1(Xma1, "지수이동평균1"); Plot2(Xma2, "지수이동평균2"); Plot3(Xma3, "지수이동평균3"); Plot4(Xma4, "지수이동평균4"); Plot5(Xma5, "지수이동평균5"); Plot6(Xma6, "지수이동평균6"); Plot7(Xma7, "지수이동평균7"); Plot8(Xma8, "지수이동평균8"); -------------------------------------------------------------------- 아래 수식은 지난번에 만들어 주신 수식 입니다! 월고와 월저를 콜과 풋으로 구분하고 싶습니다! 즉, 풋월고, 콜월고 , 풋월저, 콜월저,월물첫날 풋저가, 콜저가 이렇게 나누어 주시길 부탁드립니다! 그리고 라인이 생성되면 라인끝에 이름(예:풋월고)등 이름도 같이 표기해주시길 부탁드려요! var : nday(0),week(0),Exdate(false); var : HH(0),LL(0); nday = date - int(date/100)*100; week = DayOfWeek(date); if nday >= 8 and nday <= 14 and week == 4 then Exdate = true; Else Exdate = false; if bdate != bdate[1] and Exdate == false and Exdate[1] == true Then { var1 = sdate; HH = H; LL = L; } if sdate == var1 Then value1 = daylow; if H > HH Then HH = H; if L < LL Then LL = L; plot1(DayHigh(1),"전일고가"); plot2(daylow(1),"전일저가"); plot3(DayOpen(0),"전일시가"); if HH > 0 and LL > 0 then { plot4(HH,"월고"); plot5(LL,"월저"); } plot6(value1,"월물첫날저가"); ------------------------------------------------------------------------- 옵션의 당일콜풋 교차챠트를 만들고 싶습니다! 행사가별로 전일 콜고가와 콜저가, 풋고가와 풋저가가 선4개로 표시되게 만들어 주세요! 부탁드립니다
프로필 이미지
qha71
2018-11-12
201
글번호 123551
지표
답변완료

질문 드립니다

안녕하세요 ^^* 매번 수고해주심에 진심으로 감사드립니다!!! 아래수식은 어느 회원님의 질문에 관리자님이 답변해주신 수식인데요 이수식을 아래내용만 조금 수정 보완해주시면 고맙겠습니다 1, 파동의 고점 혹은 저점이 발생시 "수평선"이 바로그 고점 저점자리에서 발생되었으면합니다 (* 기존의 수평선은 제거후) * 이후 이 수평선은 몇개의 봉이 완성되든 상관없이 다음 새로운 고점 저점이 발생시까지 계속 이어져야하며 * 동시에 이 새로운 고점 혹은 저점이 발생시 이전 수평선은 모두 사라졌으면합니다 <<* 파동선이 같은방향으로 연장이되든 아님 반대방향으로 전환이되든 어떤 경우든 새로운 고점 저점이 발생시는 항상 위조건이 모두 만족되었으면 합니다>> 2, 이 "수평선"의 "두께"와 "색상"은 수정가능하도록 부탁드립니다 저에겐 이 기능이 매우 중요할것같아서요 기본적으로는 제일 두꺼운 흰색으로 설정 부탁드립니다 항상 감사합니다 ^^ ==================================================================================== Input:전환비율(0.5),종가사용여부(0),파동선두께(2),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL11(0),TL12(0),TL13(0); Array:고[10,4](0),저[10,4](0); HH = IFF(종가사용여부 == 1,C,H); LL = IFF(종가사용여부 == 1,C,L); If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0; Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0; 처리구분 = ""; If Condition1 and Condition2 Then { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(저[1,3],저[1,4],999999999,저[1,3],저[1,4],0); TL12 = TL_New(고[2,3],고[2,4],저[1,1],고[1,3],고[1,4],저[1,1]); TL13 = TL_New(고[2,3],고[2,4],저[1,1]* (1 + (전환비율/100)) ,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); } Else If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(고[1,3],고[1,4],999999999,고[1,3],고[1,4],0); TL12 = TL_New(저[2,3],저[2,4],고[1,1],저[1,3],저[1,4],고[1,1]); TL13 = TL_New(저[2,3],저[2,4],고[1,1]* (1 - (전환비율/100)) ,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,blue); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
유로파54
2018-11-12
153
글번호 123550
지표

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

프로필 이미지
stockric
2018-11-10
0
글번호 123549
지표
답변완료

수식 작성 도움 부탁 드립니다.

안녕하세요. 시스템 매매 시작해 보고자 하는데, 수식 작성 도움 부탁 드리겠습니다. 투입금액 비중 같은 부분은 작성이 가능한지 잘 모르겠는데, 확인 한번 부탁 드려요. 감사합니다. - 매수 : 당일 실시간 가격 > 당일 시가 + (전일 고가 - 전일 저가) * 13일 평균 노이즈 비율 단, 1일 1회만 진입 ※ 노이즈 비율 = 1-abs(시가-종가)/(고가-저가) - 매수 시 투입금액 : 총 자산 * 0.02/전일 변동성 * 1~13일 이동평균선스코어 ※ 전일 변동성 = (전일 고가 - 전일 저가)/현재가 ※ 이동평균선스코어 3~13일의 11개 이동평균선 후 현재가가 각 일별 이동평균선을 넘으면 1/11점씩 부여 예) 3일 이동평균선을 넘으면 1/11점, 3, 4일 이동평균선을 넘으면 2/11점 즉, 현재가가 모든 이동평균선을 넘으면 이동평균선스코어는 1점, 현재가가 모든 이동평균선을 넘지 못하면 이동평균선스코어는 0점 부여 - 매도 : 다음날 시가
프로필 이미지
유로티
2018-11-10
177
글번호 123548
시스템

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

프로필 이미지
haha1122
2018-11-12
10
글번호 123547
검색
답변완료

부탁 좀 드립니다.

안녕하세요 늘 감사합니다. 현재 시스템 신호를 만들어서 사용하고 있습니다. 차트에 매수 신호 나오고 매수 신호에 가격을 나오게 만들고 싶습니다. 예를 들어 화살표 나오고 매수라고 나올 경우 그 옆에 국선의 경우 "269.40" 이런 식으로 나왔으면 좋겠습니다. 작성 해주는 식의 주석 좀 부탁드립니다.
프로필 이미지
상영중
2018-11-09
140
글번호 123546
시스템
답변완료

수식 작성좀 부탁드려요.

해외 선물 진입후 일정시간이 지나면 청산하는 수식을 작성하려고 합니다. 오전 10시00분~오후16시00분 까지는 진입후 12분 후에 청산 오후 16시00분~오후22시30분 까지는 진입후 6분 후에 청산 오후22시30분~익일 오전 02시00분 까지는 진입후 3분 후에 청산 위와 같이 청산하는 수식 작성좀 부탁드립니다.
프로필 이미지
천왕봉
2018-11-09
151
글번호 123545
시스템
답변완료

추가 식좀 부탁합니다

value1 = ???????? value2 = ???????????? If crossup(value1,value2) Then { Buy ("매수") ; } If crossdown(value1,value2) Then { Sell ("매도"); } 안녕하세요 전 위 식을 이용해서 매매를 합니다 이곳에 손절 라인을 만들고 싶습니다 예를 들어 국선기준 신호봉의 저가 271.95 고가 272.10 이라면 틱수로는 위로3틱입니다 그럼 손절가는 배수인 6틱를 주고 싶네요 ----- 차후에 틱수를 늘릴수 있습니다(꼭 배수가 아니라도요) 예를 하나 더 들면 신호봉의 저가 271.70 고가가 272.00 이라면 틱수로는 위로6틱입니다 그럼 손절가는 배수인 12틱 입니다 매도의 손절가도 같습니다 지표식 그리고 차트에 ------"손절" 이런 지표로 나왔으면 합니다 단 예를 들어 매수시 손절표시 나오고 다음에 매도시 손절가 나오때 매수시 손절가는 없어저야 합니다 다시 말씀 드리면 차트에는 늘 손절가 표시는 하나만 나와있다는 말입니다 예외의 수 매수해서 손절가 나오기도 전에 반대신호가 나오면 청산하고 반대신호 나오게 합니다 모든 식에는 주석도 같이 달아주세요 익절 식 고점 봉의 저가 고가의 수칫의 배가 내로오면 "익절" 손절식의 의미와 같습니다 ----- 차후에 틱수를 늘릴수 있습니다(꼭 배수가 아니라도요)
프로필 이미지
상영중
2018-11-09
142
글번호 123544
시스템
답변완료

진입조건 하나더 추가 부탁드리겠습니다.

진입조건에 하나 더 추가하고 싶습니다. if MarketPosition == 0 and CountIF(C>O,Y) == Y Then buy("정배매수"); if MarketPosition == 0 and CountIF(C<O,X) == X Then sell("정배매도"); 여기에 연속-양봉시 매수진입 연속-음봉시 매도 진입입니다. 거기에 매수진입시 최초양봉과 진입시의 봉간 틱수가 일정틱이상이 되어야 진입할수 있게 해주세요 예를들면 조건1(5회연속 양봉) + 조건2(5회연속 양봉의 차이가 10tick이상) 일때 진입 매도 진입의 경우 그 반대일때 진입하게 끔 수식 부탁드리겠습니다. ====================================================================== input : p1(5),p2(20),p3(60),X(8),Y(7),XX(8),YY(7),XXX(5),YYY(9); input : 익절틱수(70),손절틱수(56); var : Tcond(false); var1 = ma(c,P1); var2 = ma(c,P2); var3 = ma(c,P3); if var1 > var2 and var2 > var3 then { if MarketPosition == 0 and CountIF(C>O,Y) == Y Then buy("정배매수"); if MarketPosition == 0 and CountIF(C<O,X) == X Then sell("정배매도"); } else if var1 < var2 and var2 < var3 then { if MarketPosition == 0 and CountIF(C>O,YY) == YY Then buy("역배매수"); if MarketPosition == 0 and CountIF(C<O,XX) == XX Then sell("역배매도"); } else { if MarketPosition == 0 and CountIF(C>O,YYY) == YYY Then buy("혼재매수"); if MarketPosition == 0 and CountIF(C<O,XXX) == XXX Then sell("혼재매도"); } SetStopProfittarget(PriceScale*익절틱수, PointStop); SetStopLoss(PriceScale*손절틱수, PointStop);
프로필 이미지
이형지
2018-11-10
143
글번호 123539
시스템