커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

프로필 이미지
노아
2021-03-18
0
글번호 147202
시스템
답변완료

시스템 문의드립니다

안녕하세요 시스템 문의드리고 싶습니다! 번거롭게 해드려 죄송합니다ㅜ 5일, 10일, 20일 이평선이 역배열에서 2달안에 정배열로 바뀌고 종가가 5일선보다 높으면 익일 시가에 매수 5일선이 10일선보다 낮아지면 익일 시가에 매도 익절 30% 손절 10% 익절,손절을 변수로 설정하여 최적화를 하고 싶습니다 혹시 이런 시스템 작성이 가능할까요? 부탁드리겠습니다 감사합니다!
프로필 이미지
노아
2021-03-18
1309
글번호 147201
시스템
답변완료

매수매도 수식 재질문

"작성하신 수식이 지정한 날짜와 시간이후에 1회만 진입되게 작성이 되어 있습니다. 외부변수 N이 1이고 count < N으로 첫진입조건이 되어 있습니다. 지정한 날짜와 시간이후에 별도의 횟수제한이 없으시면 "b1"진입에 count < N 조건을 삭제하시면 되고 몇회로 제한하고자 하시면 N값을 늘리시면 됩니다." 이렇게 답변을 해주셨는데 count < N 조건을 삭제하고 돌렸더니 1차 2차 매수 진행 후에 매도신호가 나와 모두 매도가 되고 나면 다시 매수가 진행되긴 하지만 1차 2차부터 다시 매수하는게 아니라 3차부터 이어서 매수를 하더라구요. 저는 올매도 진행후에는 다시 1차매수로 돌아가게 하고 싶은데 어떻게 하면 될까요? 그리고 한가지 더 궁금한게 있는데, 코인별로 RSI하락에도 매수신호가 발생하는게 있고 발생하지 않는경우가 있는데 원인을 잘 모르겠습니다.(첨부파일 참조) Input : 투자금액(1000000),Period(14), N(1), LPercent(30), S7Percent(70), S8Percent(80), S9Percent(90),시작일(20210315),시작시간(090000); var : value(0), e(0),x(0),count(0),Vma(0), Tcond(false); var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false); var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false); Array : VV[5](0),XX[5](0); value = RSI(Period); vv[0] = floor((투자금액*0.1)/NextBarOpen); vv[1] = floor((투자금액*0.1)/NextBarOpen); vv[2] = floor((투자금액*0.1)/NextBarOpen); vv[3] = floor((투자금액*0.2)/NextBarOpen); vv[4] = floor((투자금액*0.2)/NextBarOpen); vv[5] = floor((투자금액*0.3)/NextBarOpen); if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then Tcond = true; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then count = count+1; if sdate >= 시작일 and stime >= 시작시간 Then Tcond = true; if Tcond == true then { #첫번째 매수 if (TotalTrades == 0 or MarketPosition == 0) then { if MarketPosition == 0 and count < N and CrossDown(value, LPercent) Then { buy("b1",onclose,def,vv[MaxEntries]); } } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { e = e +1; if e == 0 then XX[e] = CurrentContracts; Else XX[e] = CurrentContracts-CurrentContracts[1]; } #두번째 매수 If MarketPosition == 1 and e == 1 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b2",onclose,def,vv[MaxEntries]); } #세번재매수 If MarketPosition == 1 and e == 2 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b3",onclose,def,vv[MaxEntries]); } #네번재매수 If MarketPosition == 1 and e == 3 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b4",onclose,def,vv[MaxEntries]); } #다섯번재매수 If MarketPosition == 1 and e == 4 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b5",onclose,def,vv[MaxEntries]); } if condition1 == false and crossup(value,S7Percent) then { condition1 = true; exitlong("bx1",onclose,def,"",floor(maxcontracts*0.2),1); } if condition2 == true and crossup(value,S8Percent) then { condition2 = true; exitlong("bx2",onclose,def,"",floor(maxcontracts*0.4),1); } if condition3 == true and crossup(value,S9Percent) then { condition3 = true; exitlong("bx3"); } if crossdown(value,S7Percent) then exitlong("bx"); } else { condition1 = false; condition2 = false; condition3 = false; condition4 = false; } }
프로필 이미지
바나
2021-03-18
1290
글번호 147200
시스템
답변완료

시스템식 관련해서 궁금한게 있에 글을 남깁니다.

시스템식 관련하여 궁금한게 있어 글을 남깁니다. 제가 만든 시스템식 1과 2가 있으면 이 시스템식을 하나로 합치지 않고 각각 시스템식을 동시에 적용 시키는 방법이 있을까요? 예를들면, 5일 20일 골든크로스 매수 하는 시스템식을 적용중인데, 분봉 피보나치 0.618 매수하느 하는 시스템식을 동시에 적용 하고 싶으면 반드시 시스템식을 하나로 합쳐야 하나요???
프로필 이미지
맴맴잉
2021-03-18
979
글번호 147194
시스템

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

프로필 이미지
2wnwn
2021-03-18
6
글번호 147193
시스템
답변완료

수식어 부탁드립니다

input : StartTime(160000),EndTime(055000); var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0); var : Tcond(false); if sDate != sDate[1] then SetStopEndofday(Endtime); 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; SetStopEndofday(0); } 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 선행스팬1 = (전환선[25]+기준선[25])/2; 선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2; var1 = Disparity(60); if Tcond == true Then { if 전환선 > 기준선 and crossup(전환선,선행스팬1) and var1 >= 99 Then buy("b"); if MarketPosition == 1 then { if 전환선 < 기준선 and CrossDown(전환선,선행스팬2) and var1 >= 99 Then exitlong(); } if 전환선 < 기준선 and CrossDown(전환선,선행스팬1) and var1 <= 101 Then sell("s"); if MarketPosition == -1 then { if 전환선 > 기준선 and CrossUp(전환선,선행스팬2) and var1 <= 101 Then ExitShort(); } } --------------------------------------------- 위의 수식어를 대비했을때 1번은 한국투자증권의 결과값이고 2번은 브이아이금융투자의 결과값 입니다. 동일 수식어인데 성능보고서의 손익이 차이가 나는 이유가 뭘까요 ? 참고로 각각이 하단에 시간설정이 다르고 2번의 노란색은 매수신호후 청산시 손실로 나타납니다, 2번이 1번과 같은 결과값이 나올 수 있는 방법은 없을까요 ? 수고 하세요~
프로필 이미지
푸른
2021-03-18
934
글번호 147192
시스템
답변완료

재문의 드립니다

올려주신 수식이 매수기준가 매도기준가 진입 다 정확히 맞습니다 그런데 청산이 종가청산으로만 되어있어 보내주신 수식 맨밑에 if MarketPosition==1 and h==매도기준가 Then ExitLong("매수청산"); if MarketPosition==-1 and l==매수기준가 Then ExitShort("매도청산"); 요것만 추가를 했는데요 매도기준가 가격에 청산을 하고 싶은데, 봉이 완성된 가격에 체결이 되네요 atstop,atlimit 이리저리 해보았는데 다음봉에서 신호가 뜨네요. 진입가는 수식에 맞게 정확하게 진입이 되는데 청산은 자꾸 오차가 생겨서.. 청산을 매수기준가나 매도기준가에 터치하는 즉시 청산하는 방법이 있을런지요? 어제 유선전화로 친절히 설명해주셔서 다시한번 감사드립니다. ---------------------------------------------------------- 안녕하세요 예스스탁입니다. 매수기준가와 매도기준가 그리는 지표식도 같이 올려드립니다 1 input : 비율(5),진입횟수(1); var : 매수기준가(0),매도기준가(0); input : StartTime(70000),EndTime(065000); var : Tcond(false),entry(0); var : Year(0),V1(0),V2(0),V3(0),V4(0),Summer(False),ST(0),ET(0); if sDate != sDate[1] Then { SetStopEndofday(Endtime); //썸머타임체크 Year = Floor(sdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = StartTime; ET = EndTime; } Else { ST = StartTime+10000; ET = EndTime+10000; } } if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < ET) Then Tcond = False; if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { Tcond = true; SetStopEndofday(0); entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if NextBarStime >= ST and sTime < ST Then { var1 = Floor(NextBarOpen*(1-비율/100)*10)/10; Var2 = Ceiling(NextBarOpen*(1+비율/100)*10)/10; Buy("b1",AtLimit,var1); Sell("s1",AtLimit,var2); } else { if Tcond == true and entry < 진입횟수 Then { 매수기준가 = Floor(DayOpen*(1-비율/100)*10)/10; 매도기준가 = Ceiling(DayOpen*(1+비율/100)*10)/10; if MarketPosition <= 0 and L > 매수기준가 Then Buy("b",AtLimit,매수기준가); if MarketPosition >= 0 and H < 매도기준가 Then Sell("s",AtLimit,매도기준가); } }
프로필 이미지
후니러비
2021-03-18
1018
글번호 147191
시스템
답변완료

문의

아래의 식에서 TL3가 무엇을 말하는지 설명좀 부탁드립니다. 또한 지금의 지표에서 종가가 TL3를 돌파할때 매수시그널 나올수있도록 부탁합니다. 그리고 각선들의 두께를 좀 굵게 해주시면 고맙겠습니다. 그럼 오늘도 화이팅하셔요~ input : Left(5),right(5); var : T(0),TL(0),TL1(0),TL2(0),TL3(0); var : HD1(0),HT1(0),HH1(0); var : HD2(0),HT2(0),HH2(0); var : LD1(0),LT1(0),LL1(0); var : LD2(0),LT2(0),LL2(0); #고점발생 if SwingHigh(1,H,Left,right,left+right+1) != -1 Then { #현재 고점봉 날짜/시간/가격(추세선의 출력지점설정용도) HD1 = sdate[right]; HT1 = sTime[right]; HH1 = H[right]; #현재 고점발생후 최저가 초기값 LL1 = L; #직전 고점봉 날짜/시간/가격 HD2 = HD1[1]; HT2 = HT1[1]; HH2 = HH1[1]; #직전 고점이후 최저가 LL2 = LL1[1]; TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); if HD2 > 0 Then { #직전고점과 현재고점 연결 추세선 TL1 = TL_New(HD2,HT2,HH2,HD1,HT1,HH1); #하락이면 (위로 추가 추세선 출력) if HH1 < HH2 Then { #추세선과 각도의 상단 TL2 = TL_New(HD2,HT2,HH2+abs(HH1-LL1),HD1,HT1,HH1+abs(HH1-LL1)); #수평선 TL3 = TL_New(Hd2,HT2,HH1+abs(HH1-LL1),HD1,HT1,HH1+abs(HH1-LL1)); TL_SetColor(TL1,BLUE); TL_SetColor(TL2,BLACK); TL_SetColor(TL3,MAGENTA); TL_SetExtRight(TL3,true); } Else #상승이면(아래로 추가 추세선 출력) { #추세선과 각도의 하단 TL2 = TL_New(HD2,HT2,HH2-abs(HH1-LL1),HD1,HT1,HH1-abs(HH1-LL1)); #수평선 TL3 = TL_New(Hd2,HT2,HH1-abs(HH1-LL1),HD1,HT1,HH1-abs(HH1-LL1)); TL_SetColor(TL1,BLUE); TL_SetColor(TL2,BLACK); TL_SetColor(TL3,MAGENTA); TL_SetExtRight(TL3,true); } } } #고점 발생 후 최저가 if L < LL1 Then LL1 = L; 이 식에서 TL3가 무엇을 말하는지 설명좀 부탁드립니다. 또한 지금의 지표에서 종가가 TL3를 돌파할때 매수시그널 나올수있도록 부탁합니다.
프로필 이미지
엉덩공주
2021-03-18
1001
글번호 147190
시스템

이종희 님에 의해서 삭제되었습니다.

프로필 이미지
이종희
2021-03-18
50
글번호 147189
시스템