커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 문의

5분봉 기준으로 RSI 30에 최초 매수, RSI 20에 추가 매수, RSI 70에 전량 매도 하는 자동매매수식 작성 부탁드립니다.
프로필 이미지
골드13
2023-07-30
1331
글번호 171041
시스템
답변완료

수정부탁 합니다.

시스템 신호가 봉에서 좀 벌어 졌으면 좋은데 수정 가능 할까요? Var : value(0); value = 0; # 매수 / 매도청산 If CCI(9) > 0 Then value = 1; If MACD(12,26) > 0 Then value = value+1; If DIPlus(14) > DIMinus(14) Then value = value+1; If StochasticsK(12,5) > StochasticsD(12,5,5) Then value = value+1; # 매수/매도청산 If MarketPosition <= 0 And value >= 3 Then { Buy("매수"); } value = 0; # 매도/매수청산 If CCI(9) < 0 Then value = 1; If MACD(12,26) < 0 Then value = value+1; If DIPlus(14) < DIMinus(14) Then value = value+1; If StochasticsK(12,5) < StochasticsD(12,5,5) Then value = value+1; If MarketPosition >= 0 And value >= 3 Then { Sell("매도"); } if MarketPosition == 1 And H[2] == highest(H,5)[1] and H[2] > max(C[2],O[2]) and V[2] >= 5000 and C[0] < C[2] Then exitlong("매수분 올청산"); if MarketPosition == -1 And L[2] == Lowest(L,5)[1] and H[1] > max(C[1],O[1]) and V[1] >= 5000 and C[0] > C[1] Then ExitShort("매도분 올청산"); if MarketPosition <= 0 And L[1]==LOWEST(L,5) and C[1]<O[1] and C[1]>L[1] and O[0]>L[0] and C[1]==O[0] and L[1]==L[0] and C[0]>O[0] and v>2500 Then buy("집게발 매수"); if MarketPosition >= 0 And H[1]==highest(H,5) and C[1]>O[1] and C[1]<H[1] and O[0]<H[0] and C[1]==O[0] and H[1]==H[0] and C[0]<O[0] and v > 2500 Then sell("집게발 매도"); input : Period(6); Array : HD[10](0),HT[10](0),HV[10](0); //고점 날짜, 시간, 가격 저장할 배열 Array : LD[10](0),LT[10](0),LV[10](0); //저점 날짜, 시간, 가격 저장할 배열 var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0); var : ZigZagTL(0),HTL(0),LTL(0),HTX(0),LTX(0); HPrice = H; LPrice = L; if Index == 0 Then { //초기 최고값 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //초기 최저값 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; } Else { UpTrend = HPrice >= Highest(HPrice,Period)[1]; DownTrend = LPrice <= Lowest(LPrice,Period)[1]; //상승추세 전환 if trend <= 0 and UpTrend == true Then { //추세구분 1 trend = 1; if (MarketPosition == 0 ) or (MarketPosition == -1 and PositionProfit(0) >= 0) Then Buy("메수전황"); if MarketPosition == -1 and PositionProfit(0) < 0 Then ExitShort("수평매수"); //과거 고점의 날짜, 시간, 값을 다음 배열방으로 이동 For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } //0번방에 날짜, 시간, 가격 저장 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //직전 저점에서 현재 고점까지 연결선 출력 ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); //색상은 Red TL_SetColor(ZigZagTL,Yellow); //추세선 굵기는 1 TL_SetSize(ZigZagTL,0); HTL = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL_SetColor(HTL,Red); TL_SetSize(htl,2); HTX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0],2)); Text_SetStyle(HTX,2,1); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { //추세구분은 -1 trend = -1; if (MarketPosition == 0 ) or (MarketPosition == 1 and PositionProfit(0) >= 0) Then Sell("매도전황"); if MarketPosition == 1 and PositionProfit(0) < 0 Then ExitLong("수평매도"); //과거 저점의 날짜, 시간, 값을 다음 배열방으로 이동 For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } //0번방에 날짜, 시간, 가격 저장 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; //직전 고점에서 현재 저점까지 연결선 출력 ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); //색상은 Blue TL_SetColor(ZigZagTL,Yellow); //굴긱는 1 TL_SetSize(ZigZagTL,0); LTL = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(LTL,Blue); TL_SetSize(ltl,2); LTX = text_new(LD[0],LT[0],LV[0],NumToStr(LV[0],2)); Text_SetStyle(LTX,2,0); } Else { //상승구간 if trend == 1 Then { //고점이 갱신되면 if HPrice > HV[0] Then { //갱신된 봉의 날짜/시간/가격으로 변경 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //지그재그 추세선의 끝점을 현재봉으로 이동 TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); //고점 수평 추세선의 끝점을 현재봉으로 이동 TL_SetBegin(HTL,HD[0],HT[0],HV[0]); Text_SetString(HTX,NumToStr(HV[0],2)); Text_SetLocation(HTX,HD[0],HT[0],HV[0]); } } //하락구간 if trend == -1 Then { //저점이 갱신되면 if LPrice < LV[0] Then { //갱신된 봉의 날짜/시간/가격으로 변경 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; //지그재그 추세선의 끝점을 현재봉으로 이동 TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); //저점 수평 추세선의 끝점을 현재봉으로 이동 TL_SetBegin(LTL,LD[0],LT[0],LV[0]); Text_SetString(LTX,NumToStr(LV[0],2)); Text_SetLocation(LTX,LD[0],LT[0],LV[0]); } } TL_SetEnd(HTL,sDate,sTime,HV[0]); TL_SetEnd(LTL,sDate,sTime,LV[0]); } } SetStopLoss(PriceScale*20,PointStop); SetStopEndofday(153500);
프로필 이미지
시그너스
2023-07-30
1463
글번호 171040
시스템
답변완료

시스템이 시뮬레이션 차트에서는 작동하지 않습니다.

안녕하세요 항상 감사드립니다. 특정 지표를 사용하는 몇몇 전략들이 시뮬레이션 차트에서는 적용이 되지 않습니다.(손익 그래프가 나타나지 않음) 사용자 함수가 아닌, 시스템 식에서 해당 지표를 계산해서 사용하고 있습니다. for 문이 들어가긴 하는데, 어떻게 해야 시뮬레이션 차트에서도 해당 지표를 사용해서 손익 그래프가 잘 뜨게 할 수 있나요??
프로필 이미지
이만스닥
2023-07-29
1255
글번호 171039
시스템
답변완료

수식 문의드립니다.

종목검색식에서 5가지 수식을 포함하고 있을 경우에 Input : Var : 수식 A 수식 B 수식 C 수식 D 수식 E //전부 만족 시 IF A && B && C && D && E then Find(1); => 조건 수식이 3개 이상 만족하는 종목만 찾고 싶을 때 A+B+C+D+E >= 3 만족한 수식에 해당하는 종목만 검색하고 싶을 때 수식을 알고 싶습니다. 수식 3개&&4개&&5개를 만족하는 종목
프로필 이미지
꿀떡
2023-07-29
1082
글번호 171038
종목검색
답변완료

파생상품 개장시간 변경 관련 시스템 변경 문의

코스피200 선물 4분봉을 주차트로 하고, 보조로 kp200선물 외국인순매수 수량을 보조로 하는 시스템하나와, 코스피200 선물 4분봉을 주차트로 하고, 보조로 KP 개인 순매수금액을 보조로 하는 시스템을 운용중에 있습니다. 이 두 시스템은 모두 dayindex()==0 일때, 즉 첫봉에서 신호가 나오도록 설정되어있는데, 개장시간이 9시에서 8시45분으로 바뀌면서 기존처럼 9시 4분에 신호가 나오도록 할려면 어떻게 해야 되는지 잘 모르겠습니다. 분봉을 19분봉으로 바꾸거나, 1분봉을 주차트로 하면서 9시4분(stime==90400)에 신호가 나오도록 수정할려고 해봤더니, 기존에 4분봉에서 나오는 신호와 신호가 달라져서 이렇게 하면 안될것 같은데, 기존 9시 개장이고, 4분봉으로 운용할때와 똑같은 시점에 신호가 나오게 할려면 어떻게 해야되는지 알려주시면 감사하겠습니다.
프로필 이미지
원더뿌리
2023-07-29
1013
글번호 171037
시스템
답변완료

국내주식 매매 수식부탁드림니다. (하락시마다 분할 매수 수식 요청)

기존 매도 수식을 반영해서 매수 수식과 매도 수식을 알려주심 감사하겠습니다. 주식:삼성전자 차트:60분봉 매수 조건 하락할때 일정 분할 매수 전략 해당 조건에 추가매수 1회만 진행 (같은 조건에서 추가로 매수되지 않게 ) 예를 들어 매수가에 -2%하락시 20주 매수 후 상승후 또 -2%하락할때 추가로 매수되지 않게 1. 현재가가 이동평균선 600분봉(변수로 지정요청) 이하일때 10주 매수 2. 최초 매수가에서 -2% 하락할때 20주 매수 3. 최초 매수가에서 -4% 하락할때 30주 매수 4. 최초 매수가에서 -6% 하락할때 40주 매수 5. 최초 매수가에서 -8% 하락할때 50주 매수 6. 최초 매수가에서 -10% 하락할때 60주 매수 매도 조건 수익구간마다 일정청산 버전 .. 아래 수식 적용 if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { XV = CurrentContracts; cond = False; } if C >= AvgEntryPrice*(1+1.01) and sTime == 110000 Then { if XV >= 100 Then vol = Floor(XV*0.01); # 계약수가 100개 이상일때 1% 분할매도 else if XV < 100 and XV >= 50 Then vol = Floor(XV*0.02); # 계약수가 50개~100 일때 2% 분할매도 else if XV < 50 and XV >= 20 Then vol = Floor(XV*0.05); # 계약수가 20개~50 일때 5% 분할매도 else if XV < 20 and XV >= 10 Then vol = Floor(XV*0.10); # 계약수가 10개~20 일때 10% 분할매도 Else vol = Floor(XV*0.50); # 계약수가 10개이하 일때 50% 분할매도 ExitLong("bx",OnClose,Def,"",vol,2); } } Else cond = False;
프로필 이미지
이형지
2023-07-29
1148
글번호 171036
시스템
답변완료

수식 문의드립니다

10시 이후에 진입하려고 진입식을 작성했는데요 대부분 10시 이후 진입 하는데 가끔 첫봉에서 진입이 있네요 원인을 알고 싶습니다 if stime>=95959 then{ buy("매수",atstop,var1); sell("매도",atstop,var2);} 감사합니다
프로필 이미지
cinamon
2023-07-29
961
글번호 171035
시스템
답변완료

키움수식 변환 확인부탁드립니다

안녕하세요 항상감사합니다 키움수식을 예트수식으로 변환한것이 맞는것인지 확인부탁드립니다 C > highest(H(1),5) && C(1) <= highest(H(2),5) → C > highest(H,5)[1] && C(1) <= highest(H,5)[2] 1봉전종가가 2봉전기준 5봉간 최고가보다 작거나같다 라는 식이 C[1] <= highest(H,5)[2] 맞는것인지 확인부탁드립니다
프로필 이미지
seayun1
2023-07-29
1125
글번호 171034
지표
답변완료

문의드립니다

랭귀지로 최근 20일의 netprofit만 따로 계산해서 불러올수 있을까요 언제나 감사합니다.
프로필 이미지
시고르시고르
2023-07-29
1276
글번호 171033
시스템