커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2022-05-15
68
글번호 158873
시스템
답변완료

수식 수정부탁드립니다.

안녕하십니까 아래수식 잘 사용중입니다. 조건을 추가하고 싶어 글남깁니다. -------------------------------------------- var : mav(0); mav = ma(C,5); if Bdate != Bdate[1] Then { Condition1 = False; var1 = 0; Var2 = 0; } var1 = var1+v; Var2 = Var2+1; Var3 = var1/Var2; if C < DayOpen and mav < mav[1] Then Condition1 = true; if Condition1 == true and CrossUp(c,DayOpen) Then Buy(); if MarketPosition == 1 Then { # if CrossDown(C,DayOpen) Then # ExitLong(); # if v >= Var3[1]*5 then # ExitLong(); } SetStopProfittarget(2.3,PercentStop); SetStopLoss(1.8,PercentStop); SetStopEndofday(151500); ㅇ현재 매수 조건 1. 개장 후 시가 형성 후 현재 가격이 시가 아래로 떨어지고 2. 5일 이동평균 하락(분봉에 적용) 위 조건이 만족된 후 3. 현재 가격이 당일 시가를 돌파 할 경우 매수 ㅇ 수정요청 매수 조건 1. 개장 후 시가 형성 후 현재 가격이 시가 아래로 떨어지고 2. 5일 이동평균 하락(분봉에 적용) 위 조건이 만족된 후 3. 현재 가격이 당일 시가를 돌파 AND 4. MACD 오실레이터 양의 값 AND 5. 20일 가격이동평균 상승 중 AND 6. 현재가격이 볼린저밴드 상단을 돌파 하지 않았다면 바로매수 7. 현재 가격이 볼린저밴드 상단을 돌파 하였다면, 현재가격이 5일 가격이동평균선 하향돌파 하면 매수 잘부탁 드립니다. 감사합니다.
프로필 이미지
대한이
2022-05-15
1005
글번호 158872
시스템
답변완료

수식에대한 질문입니다

서머타임에 따른 매매 허용 시간에 대한 질문의 답변을 이렇게 주셨었는데요 var : ST(0),ET(0),Tcond(False); if Bdate != Bdate[1] Then { if stime >= 80000 Then { ST = 223000; ET = 053000; } else { ST = 213000; ET = 043000; } } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then Tcond = true; if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < ET) Then Tcond = False; if Tcond == true Then { 진입식 } 여기서 궁금한 단락이 이것입니다 (sdate != sdate[1] and stime >= ST) (sdate != sdate[1] and stime >= ET) 이 식이 왜 있는것인지 이해하기가 어렵습니다. 자정을 넘긴시점(00시00분)에서 stime값이 ST값보다 크거나 같은 상황이 있을리 없지 않습니까? ET의 경우에도 마찬가지구요. 시뮬레이션에 물려봐도 두가지 경우가 true을 띄는 경우가 없던데 이 식은 왜 들어가있는것인지요?
프로필 이미지
부동여산
2022-05-15
932
글번호 158871
시스템
답변완료

해외선물 (당일마감 문의)크루드오일 시스템 매매 중입니다.

해외선물 크루드오일 시스템 매매 중입니다. 당일 매매(오버나잇 금지) 조건식으로 알려주신대로 이렇게 운영 중인데 맞는지요? 매일 오전 06:10 에 당일 자동마감됩니다. 섬머타임 관련없이 연중 이 조건식으로 시스템운영이 가능한지요? 원하는 크루드오일 시스템 운영시간 *모두 한국시간 실시간 기준으로 요망 *시작: 매일 아침 장시작 직후 ---> 1분 59초 후 *종료: 매일 아침 장종료 직전 ---> 2분 00초 전 조건식과 그 결과물(첨부)은 아래와 같읍니다. ################################################################### input : StartTime(070159),EndTime(055800); var : Tcond(false); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { 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; IF Endtime <= starttime Then { SetStopEndofday(0); } } ################################################################### if Tcond == true Then { If ((sTime >= 070159) or (sTime < 055800)) and 매도조건식 ### <----- 매도조건식 Then Sell ("sell-stocro-01"); If ((sTime >= 070159) or (sTime < 055800)) and 매수조건식 ### <----- 매수조건식 Then Buy ("buy-stocro-01"); } ################################################################### ^^항상 감사합니다.
프로필 이미지
우후훗
2022-05-15
1100
글번호 158870
시스템
답변완료

data2에 관한 문의

input: period(20), n(2); value1 = BollBandUp(period,n) ; Value2 = BollBandDown(period,n); Value3 = ma(c,60); if CrossUp(Value2,Value3) and Value3[1] < Value3 Then Buy("ll"); if CrossDown(Value1,Value3) Then Sell("ss"); 예를 들면 이 전략을 data2에 적용하려면 data2(CrossUp(Value2,Value3) and Value3[1] < Value3 ) 이런식으로는 안되는건가요? // 위 식으로 data2에서 "ll"이 발생하고 "ss"가 발생하기 사이에 data1에서 신호가 발생하게 만들고 싶은데 방법이 있을까요? 다시 말해 긴 시간프레임의 진입신호가 짧은시간프레임의 진입 조건이 되도록 하고 싶습니다 // data1 이 3분봉 data2 가 15분봉일 경우 data2의 조건이 c>ma(c,50) 같은 지속형 조건이 아닌 crossup이라던지 c>o라던지 어떤 한 순간만 만족하는 조건일 경우 data2의 봉이 완성되는 순간 data1에서의 요구조건과 일치하는 경우에만 신호가 발생하나요? 즉 신호가 아무리 많이 발생할 수 있다고 해도 15분에 한번이 최대인가요? // data2(open) < data2(close) 와 data2(o<c) / data2(o<c)[1] 과 data2(o[1]<c[1]) 이런것들은 뭐가 맞는 표현식인가요?
프로필 이미지
초심자의행운
2022-05-15
1133
글번호 158869
시스템
답변완료

종가파라볼릭 일정폭에 알람소리

선물 거래시, 하락 종가파라볼릭이 발생하여 반등없이 계속 하락할때, 하락종가파라볼릭 최고꼭지점에서 -1p하락하면 알람 울리고 더 하락하면 -1.5p에서,또 더 하락하면 -2p에서,세 군데 알람 울리게 해주시고, 반대로 상승종가파라볼릭이 발생하여 계속 상승할때는,상승종가파라볼릭 최저꼭지점에서 +1p +1.5p +2p 세군데 도달시 알람 울리게 해주세요. 감사합니다.
프로필 이미지
고성
2022-05-14
747
글번호 158868
지표
답변완료

부탁드립니다

$,안녕하세요 아래식에서 사각박스가 완성된후 박스의 중심선을 최근2개박스(양,음관계없이)만 Y축까지 첨부그림처럼 우측추세선 그리기 하고 싶습니다, 도움 부탁드립니다. input : n(0),굵R(0),굵b(0); var : T(0),box(0); if C > O Then T = 1; Else if C < O Then T = -1; Else T = 0; if T == 1 Then { if T != T[1] Then { var1 = sDate; Var2 = sTime; Var3 = max(h,l); Var4 = max(h,l); Var5 = 0; } Var5 = Var5+1; if max(h,l ) > Var3 Then Var3 = max(h,l); if min(h,l ) < Var4 Then Var4 = min(h,l); if var5 == n Then { box = Box_New(var1,Var2,Var3,sDate,sTime,Var4); Box_SetColor(box,MAGENTA); TL_SetSize(box,굵R); } if var5 > n Then { Box_SetBegin(box,var1,Var2,Var3); Box_SetEnd(box,sDate,sTime,Var4); } } if T == -1 Then { if T != T[1] Then { var1 = sDate; Var2 = sTime; Var3 = max(h,l); Var4 = max(h,l); Var5 = 0; } Var5 = Var5+1; if max(h,l ) > Var3 Then Var3 = max(h,l); if min(h,l ) < Var4 Then Var4 = min(h,l); if var5 == n Then { box = Box_New(var1,Var2,Var3,sDate,sTime,Var4); Box_SetColor(box,BLUE); TL_SetSize(box,굵b); } if var5 > n Then { Box_SetBegin(box,var1,Var2,Var3); Box_SetEnd(box,sDate,sTime,Var4); } }
프로필 이미지
크라켄
2022-05-16
762
글번호 158867
지표
답변완료

안녕하세요 두 가지 문의 드리고 싶습니다.

전략 두 가지 부탁드립니다. 1.Envelope(5%) -종가 < 21EMA -종가 > 200일 sma -종가 >= 1000원 -5일 평균 거래량 > 25만주 인 경우 이후 진입 신호가 나오는 경우 진입 진입 신호 -21일 EMA 5거래일 연속 상승 and 종가 > 21EMA인 경우 종가에 매수 -수량 : 총 자산의 1%(원)/{종가 - (당일 저가-1틱)} 청산 신호 -Stop loss : 매수 당일의 저가 - 1틱 -이익 청산 : Upper envelope - 1틱 -Time stop : 매수 후 7거래일 이후 2. Bollinger bands -종가 > 200일 sma -종가 >= 1000원 -5일 평균 거래량 > 25만주 -21일 SMA 5거래일 연속 상승 and %b <= 20 and MFI >= 50 인 경우 이후 진입 신호가 나오는 경우 진입 진입신호 -종가 > 전일 고가인 경우 매수 -수량 : 총 자산의 1%(원)/{종가 - (당일 저가-1틱)} 청산 신호 -Stop loss : 매수 당일의 저가 - 1틱 -이익 청산 : 중간선 - 1틱 -Time stop : 매수 후 7거래일 이후 감사합니다.
프로필 이미지
sw98
2022-05-14
789
글번호 158866
시스템
답변완료

수식 부탁드립니다

수고하십니다. 아래 식에서 1]첨부 그림 처럼 같은 종류의 다음 번 신호가 나올 때까지 신호봉의 고가/저가 기준 우측 연장 일자 라인을 그리고 싶습니다. 2] data2 차트에 적용하려면 어떻게 수정을 해야하는지요...? 늘 감사 드립니다.. 수고하세요.. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 변환 문의 > 안녕하세요 예스스탁입니다. input : SFactor(6.138),SPd(10),lenColoured(36),lenSlow(178),hideSuperTrend(true); var : src(0),len(0),ma_coloured(0),ma_slow(0),clrdirection(0); src = close; len = lenColoured; ma_coloured = wma(2 * wma(src, len / 3) - wma(src, len), round(sqrt(len),0)); ma_slow = Ema(src,lenslow); if ma_coloured > ma_coloured[13] then clrdirection = 1; else if ma_coloured < ma_coloured[13] then clrdirection = -1; else clrdirection = clrdirection; var : hl2(0),ATRV(0),SUp(0),SDn(0),STrendUp(0),STrendDown(0); var : STrend(0),stbuy(0),stsell(0),long(False),short(False); var : LongLineMarker(0),ShortLineMarker(0),tx(0); hl2 = (H+L)/2; ATRV = ATR(SPd); SUp = hl2-(SFactor*atrv); SDn = hl2+(SFactor*atrv); if C[1] > STrendUp[1] Then STrendUp = max(SUp,iff(isnan(STrendUp[1])==False,STrendUp[1],0)); else STrendUp = SUp; if close[1] < STrendDown[1] then STrendDown = min(SDn,iff(isnan(STrendDown[1]) == False,STrendDown[1],0)); else STrendDown = SDn; if close > IFf(IsNan(STrendDown[1]) == False, STrendDown[1],0) then STrend = 1; else if close< IFf(IsNan(STrendUp[1]) == False, STrendUp[1],0) then STrend = -1; else STrend = IFf(IsNan(STrend[1]) == False, STrend[1],1); if clrdirection == 1 and STrend==1 then stbuy = stbuy +1; else stbuy = 0; if clrdirection ==-1 and STrend==-1 then stsell = stsell+1 ; else stsell = 0; If stbuy == 1 then long = true; else long = False; if stSell == 1 then short = true; else short = False ; if long then { LongLineMarker = low; tx = Text_New(sDate,sTime,LongLineMarker,"▲"); Text_SetColor(tx,Green); Text_SetStyle(tx,2,0); } Else LongLineMarker = Nan; if short then { ShortLineMarker = High; tx = Text_New(sDate,sTime,ShortLineMarker,"▼"); Text_SetColor(tx,Red); Text_SetStyle(tx,2,1); } Else ShortLineMarker = Nan; 즐거운 하루되세요
프로필 이미지
오이도인
2022-05-16
969
글번호 158865
지표