커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

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
190
글번호 114416
지표
답변완료

문의드립니다.

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

수식 요청 드립니다.

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

질문드립니다.

이전의 질문과같이 진입제한이 되고있지않습니다. 이후의 청산식이 문제인걸까요? var : 매수시그널(false),매도시그널(false),BLcnt(0),SLcnt(0); if Bdate != Bdate[1] Then Lcnt = 0; if TotalTrades > TotalTrades[1] and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then BLcnt = BLcnt+1; if TotalTrades > TotalTrades[1] and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true Then SLcnt = SLcnt+1; 매수시그널 = false; if 매매조건1 then{ 매수시그널 = true; } if 매매조건2 then{ 매수시그널 = true; } if 매매조건3 then{ 매수시그널 = true; } if 매매조건4 then{ 매수시그널 = true; } if 매수시그널 and BLcnt < 2 then buy(); 매도시그널 = false; if 매매조건1 then{ 매도시그널 = true; } if 매매조건2 then{ 매도시그널 = true; } if 매매조건3 then{ 매도시그널 = true; } if 매매조건4 then{ 매도시그널 = true; } if 매도시그널 and SLcnt < 2 then sell(); SetStopLoss(~~~~); 올려주신 로직인데요. 이것이 적용하면 말을 듣지않습니다. 현재 로직의 경우 var : 매수시그널(false),매도시그널(false),BLcnt(0),SLcnt(0); if Bdate != Bdate[1] Then Lcnt = 0; if TotalTrades > TotalTrades[1] and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then BLcnt = BLcnt+1; if TotalTrades > TotalTrades[1] and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true Then SLcnt = SLcnt+1; 매수시그널 = false; if 매매조건1 then{ 매수시그널 = true; } if 매매조건2 then{ 매수시그널 = true; } if 매매조건3 then{ 매수시그널 = true; } if 매매조건4 then{ 매수시그널 = true; } If MarketPosition == 0 Then If 매수시그널 and BLcnt <2 Then Buy("매수"); If MarketPosition == 1 Then If 조건 Then //기본 청산 ExitLong("기본청산"); if MarketPosition == 1 then if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*12 Then exitlong("매수본전청산",AtStop,EntryPrice); // 본전청산 if MarketPosition ==1 Then #매수후 If highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*10 and #진입가 대비 10틱이상 상승후 CountIF(CrossUp(close,r1),30) and CrossDown(c+PriceScale*10,r1) Then #윗선 하향이탈하면 청산 exitlong("윗선청산"); If stime == 050000 or(stime > 050000 and stime[1] < 050000) then{ ExitLong("5시매수만료");} 매도시그널 = false; if 매매조건1 then{ 매도시그널 = true; } if 매매조건2 then{ 매도시그널 = true; } if 매매조건3 then{ 매도시그널 = true; } if 매매조건4 then{ 매도시그널 = true; } If MarketPosition == 0 Then If 매도시그널 and Lcnt2 <2 Then Sell("매도"); If MarketPosition == -1 Then If 조건 Then ExitShort("매도청산"); if MarketPosition == -1 Then if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*10 Then ExitShort("매도본전청산",AtStop,EntryPrice); if MarketPosition == -1 Then #매수후 if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*10 and #진입가 대비 20틱이상 하락후 CountIF(CrossDown(Close,s1),30)and CrossUp(Close-PriceScale*10,s1) Then #s1하향청산 ExitShort("하향청산"); If stime == 050000 or(stime > 050000 and stime[1] < 050000) then{ ExitShort("5시매도만료");} SetStopLoss(PriceScale*10,PointStop); 이것이 현 로직의 진입 청산인데요. 적용하면 밑의 청산로직때문인지 본 sell과buy의 2번 스탑로스후 진입제한이 걸리지않는다는것입니다..ㅠㅠ 무엇이 문제인지 도통 알 수가 없네요. 이렇게 짜니 5시 포지션청산도 작동이 안되네요.. 도와주세요!! 자력으로 타계가 힘든 포지션함수인듯합니다..
프로필 이미지
stockric
2017-11-23
163
글번호 114412
시스템
답변완료

식 부탁드립니다.

수고 많으십니다. 수식 요청드려요. 5일 이평이 10일 이평을 데드크로스 발생하고 데드 발생한 날로부터 최근 20일 이내 거래대금이 10억이상인 종목을 검색하고 싶습니다. 또한 데드 지점의 값을 알고 싶습니다. if CrossDown(Var1, Var2) and CountIF(M > 1000000000, iPeriod2) Then Value1 = (Var1 + Var2)/2; //교차시 값 지정 위와같이 수식 작성한 후 검색결과값을 보니 맞지가 않습니다. 부탁드립니다..
프로필 이미지
올페
2017-11-22
164
글번호 114411
종목검색
답변완료

일정 시점 분할 매수/매도(재질문)

고정자산 기준 진입 당일 2:30 기준자산 전체(3/3)의 1/3 매수 2:31 잔량(2/3)의 1/2 매수 2:32 잔량(1/3) 전부 매수 다음날 9:05 보유량 전체(3/3)의 1/3 매도 9:06 잔량(2/3)의 1/2 매도 9:07 잔량(1/3) 전부 매도 위의 시스템을 수식이나 설정으로 구현할 수 있을까요?
프로필 이미지
ajs
2017-11-22
163
글번호 114410
시스템
답변완료

수식 문의드립니다.

매수든 매도든 다수의 계약으로 한번에 진입한 이후, 청산을 여러가지 경우로 나누어 청산하는 전략을 세우려고 합니다. 예를 들어, 매수로 N계약만큼 진입 이후, 1. 체결된 계약(또는 남아 있는 계약)의 1/2은 0.5P(10틱)에서 청산 2. A라는 조건을 만족시 남아 있는 계약의 1/2은 청산 3. B라는 조건을 만족시 남아 있는 계약의 1/2은 청산 4. 체결된 계약(또는 남아 있는 계약 전부)에 대해서 B라는 조건을 만족시에는 모두 청산 위 1~4의 조건은 어떤 것이 먼저 만족할 지는 상황에 따라 다릅니다. 이와 같이 청산 전략을 세울경우 수식을 어떻게 만들어야 되나요? 부탁드립니다.
프로필 이미지
디벨로퍼
2017-11-22
153
글번호 114409
시스템
답변완료

래리 윌리엄스 돌파 전략식

당일 가격이 시가 기준으로 전일 (고가-저가)/2 만큼 위 혹은 아래로 돌파시 매수/매도 진입하여 장 종료시 청산하고 진입 후 시가 상향/하향 돌파시 손절하는 코드를 작성해보았습니다. 코드는 아래와 같습니다. Inputs: rt(0); var : ChUp(0), ChDn(0); ChUp = dayopen + ((dayhigh[1] - daylow[1]) * rt); ChDn = dayopen - ((dayhigh[1] - daylow[1]) * rt); If crossup (Close, ChUp) then buy(); { if crossdown (Close, dayopen) then exitlong(); } If crossdown (Close, ChDn) then Sell(); { if crossup (Close, dayopen) then exitshort(); } SetStopEndofday(); 그런데 검증을 하다보니 이상한게 발견되어서요...(첨부파일 참조) 분명히 해당일 시가 기준 가격이 전일 (고가-저가)/2 를 하향 돌파하지 않았는데 매도 진입이 들어간겁니다...해당 일자는 2007년 1월 12일입니다. 확인 부탁드립니다.
프로필 이미지
풍운객
2017-11-22
248
글번호 114408
시스템