커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

추가 문의드립니다

안녕하세요, 아래 문의드린 식 수정해주셔서 감사드립니다. 식 조건을 하나 더 추가 부탁드리고자 합니다. 진입시간설정할수있게 부탁드립니다. 제가 지정한일자와 시간 이후에 작동되도록 부탁드립니다. ex) 2019년06월19일 10시10분 로지정하면 2019년06월19일 10시11분 부터 시스템이 작동되도록 부탁드립니다. 감사합니다! ----------------------------------- 안녕하세요 예스스탁입니다. 값지정에 잘못된 부분이 있었습니다. 수정한 식입니다. 1 input : 저점날짜(20190619),저점가격(3275); input : 고점날짜(20190620),고점가격(3380); input : 진입비율1(65.2),수량1(100),청산비율1(40.0); input : 진입비율2(70.0),수량2(50),청산비율2(45.0); input : 진입비율3(80.0),수량3(30),청산비율3(60.0); input : 손절비율(90); var : HH(0),LL(0),newHigh(false),Tcond(false); if sdate == 저점날짜 and sdate != sdate[1] Then LL = 저점가격; if sdate == 고점날짜 and sdate != sdate[1] Then { HH = 고점가격; newHigh = true; } if sdate >= 고점날짜 and sdate >= 저점날짜 and HH > 0 and LL > 0 Then Tcond = true; if tcond == true then { if C <= HH*0.85 Then newhigh = false; if newhigh == true and H > HH Then HH = H; #첫진입(65.2%위에서 아래로 터치하면 즉시 매수) if TotalTrades == 0 and MarketPosition == 0 and L > HH-(HH-LL)*(진입비율1/100) Then buy("b1",atlimit,HH-(HH-LL)*(진입비율1/100),수량1); #매수 후 if MarketPosition == 1 then { #두번째진입(70.0% 위에서 아래로 터치하면 즉시 추가매수) if MaxEntries == 1 and L > HH-(HH-LL)*(진입비율2/100) Then buy("b2",atlimit,HH-(HH-LL)*(진입비율2/100),수량2); #세번째진입(80.0% 위에서 아래로 터치하면 즉시 추가매수) if MaxEntries == 2 and L > HH-(HH-LL)*(진입비율3/100) Then buy("b3",atlimit,HH-(HH-LL)*(진입비율3/100),수량3); #첫 진입후 40%를 상회하면 즉시 전량청산 if MaxEntries == 1 Then ExitLong("bx1",Atlimit,HH-(HH-LL)*(청산비율1/100)); #두번 진입후 45%를 상회하면 즉시 전량청산 if MaxEntries == 2 Then ExitLong("bx2",Atlimit,HH-(HH-LL)*(청산비율2/100)); #세번 진입후 60%를 상회하면 즉시 전량청산 if MaxEntries == 3 Then ExitLong("bx3",Atlimit,HH-(HH-LL)*(청산비율3/100)); #손절비율 이하로 하락시 즉시 전량청산 ExitLong("bx",AtStop,HH-(HH-LL)*(손절비율/100)); } } 2 input : 저점날짜(20190619),저점가격(3275); input : 고점날짜(20190620),고점가격(3380); var : HH(0),LL(0),HL(0),newHigh(false),Tcond(false); if sdate == 저점날짜 and sdate != sdate[1] Then LL = 저점가격; if sdate == 고점날짜 and sdate != sdate[1] Then { HH = 고점가격; HL = L; newHigh = true; } if sdate >= 고점날짜 and sdate >= 저점날짜 and HH > 0 and LL > 0 Then Tcond = true; if tcond == true then { if C <= HH*0.85 Then newhigh = false; if newhigh == true and H > HH Then { HH = H; HL = L; if HL[1] <= HH[1]*0.95 and HL[1] > HH[1]*0.90 Then buy("b",OnClose,def,100); } if L < HL Then HL = L; } SetStopLoss(6,PercentStop); SetStopProfittarget(5,PercentStop); 즐거운 하루되세요
프로필 이미지
스누피독
2019-06-20
317
글번호 129621
시스템
답변완료

수고 많으십니다.

기존글을 검색해봐도 같은 내용은 찾지 못하여 부탁 합니다. 1.항생시작 10시15분을 기준으로 분봉 틱봉에서 "첫봉의 고저가폭"을 위로5개 아래로 5개정도의 수평선을 표시 하고 싶습니다. 2.10시15분 이전의 캔들 즉 마즈막봉의(예스차트에서는 04시봉) 고저가폭도 위와같이 동일하게 표시하고 싶습니다. ** 2번은 봉수를 변수처리 할수 있도록 해주시면 감사 하겠습니다. 더운날씨에 수고가 많으신데 미안 합니다.
프로필 이미지
사냥꾼
2019-06-20
320
글번호 129620
지표
답변완료

문의드립니다.

안녕하세요 수고가 많으십니다. 한가지 문의드릴까합니다. 참조항목에 data(2) ~ data(5)까지 4개를 넣었는데, 이 네개의 값에 따라 plot을 표시를 다르게 하려고 합니다. 4가지 값중 3개가 0보다 크면 빨간색으로 표시하려하고 반대로 3개가 0보다 작으면 파란색으로 표시하려 합니다. 표시값은 data(6)의 값으로 하고 위의 조건에 따른 색상 넣는 수식 부탁드립니다. 감사합니다.
프로필 이미지
쿠루드
2019-06-20
322
글번호 129619
지표
답변완료

수식 부탁드려요

청산 수식에서 아래 수식은 매수진입한 놈이 즉시익절1 수치값에 도달시 바로 청산 만약 진입봉이 M1봉만큼 지나고 전봉이 양봉일때 청산양봉틱수만큼 올랐을때 청산 입니다. if MarketPosition == 1 then { ExitLong("즉시익절1",AtLimit,EntryPrice+PriceScale*즉시익절1); if BarsSinceEntry >= M1 and c[1]>c[2] Then ExitLong("봉완성익절1",AtLimit,C+PriceScale*청산양봉틱수1); 첫번째 식은 봉중에라도 수익도달시 즉시 청산 이고 두번씩 식은 이익청산일때도 있고 손실청산일때도 있습니다.(봉완성 청산) 위식은 괜챤구요... 아래식을 도와주시면 감사하겠습니다. 아래식은 봉이 즉시손절1 값에 도달시 손절 청산이구요...(봉중간에 청산) 그아래식은 봉완성시점에 "봉완성손절1"값이 도달시 청산 (봉완성시 청산) 입니다. ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*즉시손절1); if c <= EntryPrice-PriceScale*봉완성손절1 Then ExitLong("봉완성손절1"); } 제가 원하는 사항은 진입후 30틱이상의 손실이 발생한시점부터는 저점대비 15틱 상승시 약손실 청산하려고 하는것입니다. 예를 들면 진입후 -30틱후 -15틱으로 반등시 청산 진입후 -35틱후 -20틱으로 반등시 청산 진입후 -50틱후 -35틱으로 반승시 청산 진입후 얼마나 떨어지더라도 저점대비 15틱 상승시 청산하는 식을 부탁드리겠습니다. 물론 30틱 및 15틱은 각각의 변수로 지정할겁니다. ( 추후에 최적화 예정 ) 그리고 궁금한점은 트레일링 스탑으로 식을 만들면 최적화 검증할때 오류가 발생한다고 합니다. 위식도 혹시 외곡된 결과값이 나올수 있나요? 만약 나온다면 최대한 안나오게 하는 식으로 부탁드리겠습니다. 참고로 해외선물 오일입니다.
프로필 이미지
영태통닭
2019-06-20
319
글번호 129618
시스템
답변완료

수식

1) if MarketPosition == 1 then sell("bs",atlimit,EntryPrice+3); if MarketPosition == -1 Then Buy("sb",atlimit,EntryPrice-5); 매도후 3포 익절,매수후 5포 익절 수식에 3포,5포 숫자를 외부로 빼서 자유롭게 입력하는 수식 2) 주간장 오전9시부터 오후 3시 사이에만 신호가 발생하는 수식 3) 야간장 오후6시부터 익일 오전 5시 사이에만 신호가 발생하는 수식
프로필 이미지
회원
2019-06-20
319
글번호 129614
시스템

강태공3 님에 의해서 삭제되었습니다.

프로필 이미지
강태공3
2019-06-20
0
글번호 129612
종목검색
답변완료

질문 드립니다.

안녕하세요 수식 요청은 아니구요. 혹시 Data2 ~ 에서 코스피200 미결제 약정을 참조데이터로 넣고싶은데 제가 못찾는건지 돋보기 참조영역엔 없던데 있는게 맞나요...?
프로필 이미지
aw11
2019-06-20
345
글번호 129611
시스템
답변완료

수식부탁드립니다

현재진행봉기준 2봉전의 고가와 1봉전의 종가를 이은선 (빨강) 현재진행봉기준 2봉전의 저가와 1봉전의 시가를 이은선 (파랑) 표시되게 부탁드립니다. 봉이 진행되면 앞에 선은 없어지고 다시 새로 생성되게 부탁드립니다.
프로필 이미지
팬텀
2019-06-20
320
글번호 129608
지표
답변완료

분의드립니다

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; TL_Delete(TL1); TL_Delete(TL2); If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { 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]); TL2 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]-PriceScale*26,sDate[eBar],sTime[eBar],고점[1,1]-PriceScale*26); TL_SetExtRight(Tl2,true); TL_SetColor(Tl2,GREEN); TL_SetSize(TL2,2); PlaySound("C:예스트레이더dataSoundalert.wav"); TL_SetColor(TL1,BLACK); TL_SetSize(TL1,0); 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; TL_Delete(TL1); TL_Delete(TL2); If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { 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]); TL2 = TL_New(sDate[eBar+1],sTime[eBar+1],저점[1,1]+PriceScale*26,sDate[eBar],sTime[eBar],저점[1,1]+PriceScale*26); TL_SetExtRight(Tl2,true); TL_SetColor(Tl2,YELLOW); TL_SetSize(TL2,2); PlaySound("C:예스트레이더dataSoundalert.wav"); TL_SetColor(TL1,BLACK); TL_SetSize(TL1,0); 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); 수평선을 전봉종가에나오게 하고십습니다 ~~미리감사드립니다
프로필 이미지
유선
2019-06-20
311
글번호 129606
지표