커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

안녕하세요 아래 수식은 매수 매수청산, 매도 매도청산이 별도로 있습니다 아래 수식을 하나로 통합하여 주세요 항상 감사합니다 --------매수 매수청산 input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000) ; var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime > 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; LL = L; } if stime >= 시작시간 then{ if L < LL Then LL = L; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then{ E1 = 1; H1 = H; i1 = index; V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; #저가가 시작봉종가보다 클때만 눌림체크 if L >= V1 and L <= H1-PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and L < V1 Then{ E1 = 0; LL = L; } if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{ buy("b1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; LL = L; } if L < LL Then LL = L; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{ E1 = 1; H1 = H; i1 = index; V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; #저가가 시작봉종가보다 클때만 눌림체크 if L >= V1 and L <= H1-PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and L < V1 Then{ E1 = 0; LL = L; } if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{ buy("b2"); } } if MarketPosition == 1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EH = H; E1 = 0; } if H > EH Then{ EH = H; E1 = 0; } if E1 == 0 and C <= EH-PriceScale*X1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{ exitlong("bx1"); E1 = 0; } } } if MarketPosition == 1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EH = H; E1 = 0; } if H > EH Then{ EH = H; E1 = 0; } if E1 == 0 and C <= EH-PriceScale*X2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{ exitlong("bx2"); E1 = 0; } } } } ------- 매도 매도청산 input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000) ; var : T1(0),entry(0),HH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime > 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = HH; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 and C[1] > HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H <= V1 and H >= H1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] > HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H <= V1 and H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx2"); E1 = 0; } } } }
프로필 이미지
남산
2017-11-23
189
글번호 114421
시스템
답변완료

수식 문의 드립니다.

예스랭귀지로 코드를 구현하려고 합니다. 신호발생 시간을 제한하고 싶은데, 예를들어 오전 9시02분부터 9시05분까지 신호를 제한하는 식을 알려주시면 고맙겠습니다. 감사합니다.
프로필 이미지
ywesry
2017-11-23
176
글번호 114420
시스템
답변완료

수식문의

수고하십니다. 09시이전포지션모두청산하고 그리고 09시이전에 매수면 매수 09시이후에 매도신호면 매도 나오는 수식 부탁합니다( 09시 이후에는무조건 매수도 신호가 나와야됨)
프로필 이미지
백진강
2017-11-23
196
글번호 114419
시스템
답변완료

수식변경

안녕하세요.늘 도움 감사드려요. 아래의 수식을 수평선으로 나오게 변경부탁드립니다. MA(가격, 기간2, 이평종류) (npredayclose(4)+npredayclose(+3)+npredayclose(2)+npredayclose(1))/4
프로필 이미지
알리섬
2017-11-23
216
글번호 114418
지표
답변완료

수식 문의드립니다.

16일에 작성해주신 청산식(일부수정)에 대해서 문의드립니다. if Then { Sell("S_t2"); S_H1=H[1];} if MarketPosition == -1 Then{ if CurrentContracts > CurrentContracts[1] then{ LL = L; LH = H; } if CurrentContracts == CurrentContracts[1] and L < LL Then{ LL = L; LH = H; if LH[1] >= LL[1]+PriceScale*10 Then{ SXprice = LH[1]; } If (Entryprice-L) >= PriceScale*20 and (EntryPrice - (Entryprice-L)/2) < SXPrice Then SXprice = (EntryPrice - (Entryprice-L)/2) ; } if H < LH Then{ LH = H; } if SXprice == 0 then { If LatestEntryName == "S_t1" Then ExitShort("T매도청산1",AtStop, S_H0+PriceScale); If LatestEntryName == "S_t2" Then ExitShort("T매도청산2",AtStop, S_H1+PriceScale); } if SXprice > 0 Then { if SXprice < EntryPrice Then ExitShort("Sx3",AtStop,SXPrice);//H+((H-Entryprice)/2));// Else { if LatestEntryName == "S_t1" Then ExitShort("T매도청산3",AtStop, S_H0+PriceScale); If LatestEntryName == "S_t2" Then ExitShort("T매도청산4",AtStop, S_H1+PriceScale); } } } Else SXprice = 0; 11.22 03:51:36에 저가 1279.5를 찍고 11.22 04:00:02에 1281.3까지 상승한 후에 11.22 04:43:49에 1279.5를 다시 하향 돌파 이 경우에 11.22 04:43:49 시점에서 익절가를 1281.3로 변경합니다. 가격이 무너져서 재차 상승할 경우 1281.3이 청산가격이 되는 형태이며 따라서 11.22 08:20:16에 청산됩니다. 청산 수식으로 검증하던 중 조금 안맞는 부분이 있는 것 같아서 검증 데이터를 첨부했는데, 확인 부탁드리겠습니다. 매수청산식과 매도 청산식이 로직이 동일한데 매도쪽이 더 잘 안맞는 것 같습니다. 너무 자주 질문을 올려서 죄송하고, 항상 감사드립니다.
프로필 이미지
깜피
2017-11-23
234
글번호 114417
시스템
답변완료

문의드립니다

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); 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]); PlaySound("C:예스트레이더dataSoundalert.wav"); TL_SetColor(TL1,BLACK); TL_SetSize(TL1,1); 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); 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]); PlaySound("C:예스트레이더dataSoundalert.wav"); TL_SetColor(TL1,BLACK); TL_SetSize(TL1,1); 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); 다시한번더문의드립니다 만들어주신수식감사드립니다 ~~이수식에서 지그재그선이고점봉을찍으면바로 찍은압전봉부터(1개전봉부터)수평선이나오게 ,반대로 저점봉을찍으면바로찍은봉 압전봉부터수평선이나오게 부탁드립니다 ~`고점수평선은레드색,저점수평선은불루색 ~~미리감사드립니다
프로필 이미지
유선
2017-11-23
210
글번호 114416
지표
답변완료

문의드립니다.

이평 1이 이평2위에 있고 알에스아이 70 하향돌파 매수 이평 1이 이평2아래에 있고 알에스아이 30 상향돌파 매도 당일 플러스 마이너스 수수료까지 다 합하여 수익 40핍이면 자동완전종료. 시간은 오후 9시부터시작하여 새벽4시45분까지 자동거래완전종료. 부탁드립니다. 그럼 수고하세요.
프로필 이미지
아침한때비51
2017-11-22
195
글번호 114415
시스템
답변완료

수식 요청 드립니다.

안녕하세요. 수식 요청 드립니다. 연결선물 당일청산 피라미딩 시스템에서 매수 매도 진입 후 당일 외국인선물 누적거래량 기준으로 -> 매수 진입 후 외국인선물 누적 순매수 최고 수량에서 30% 감소시 청산 (예 장시작 후 +3,000 계약 누적매수 수량 증가 후 +2,100 계약으로 30% 감소시 청산) -> 매도 진입 후 외국인선물 누적 순매도 최저 수량에서 30% 감소시 청산 (예 장시작 후 -3,000 계약 누적매도 수량 증가 후 -2,100 계약으로 30% 감소시 청산) 시스템 요청 드립니다. 감사합니다.
프로필 이미지
dandy
2017-11-22
174
글번호 114414
시스템
답변완료

재문의드립니다.

안녕하세요 예스스탁입니다. if stime < 140000 Then{ var1 = dayhigh; var2 = daylow; } if stime == 140000 or (stime > 140000 and stime[1] < 140000) Then Condition1 = true; if stime == 023000 or (stime > 023000 and stime[1] < 0230000) Then{ Condition1 = true; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if Condition1 == true then{ if CrossUp(c,var1) Then buy(); if CrossDown(c,var2) Then sell(); } 즐거운 하루되세요 > 아침한때비51 님이 쓴 글입니다. > 제목 : 문의드립니다. > 당일 오후2시 시작 새벽 2시30분 거래 완전종료. 당일 시가에서 오후2시까지 시세에서 고가돌파 매수. 저가돌파 매도 (시작가에서 오후2시 사이에 고가 저가를 말하는겁니다.) 부탁드리겠습니다. 대입해보니 틀린거같습니다. 당일 시가부터 오후 2시사이 캔들중에 고가 저가 가격을 말하는 겁니다. 저때 형성된 고가 저가 만을 돌파할때 매수 매도 해달란 뜻입니다. 그리고 매수가 되던 매도가 되던 하자마자 바로 청산하는거 같습니다. 새벽2시30분도 채되지도 않았는데말입니다.
프로필 이미지
아침한때비51
2017-11-22
193
글번호 114413
시스템