커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표값 문의 드립니다

해외 선물에서 문의드립니다 크루드오일 같은 경우는 ,우리나라 시장과는 거래시간이 다른데요,,, 지표값의 전일 고가,저가,시가,종가를 나타내려면 어떻게 해야 하나요? 전일이란 개념이 우리나라 시간으로 맞춰서 본다고 가정하면, 아침 7시에 시작해서 다음날 아침 6시 정도에 끝나는 것 같던데, 이런 경우에는 어떻게 해야하는지 알려주시면 감사하겠습니다,,
프로필 이미지
클레멘타인
2017-07-03
167
글번호 110964
지표
답변완료

질문드립니다.

var : WH(0),WL(0),Dcnt(0); #영업일 기준으로 한주의 시작 if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{ WH = H;#주간 최고가를 저장할 변수(초기값 해당봉고가) WL = L;#주간 최저가를 저장할 변수(초기값 해당봉저가) Dcnt = 0; #주간 날짜수를 저장할 변수(초기값0) } #영업일이 변경되면 1씩 증가 if bdate != bdate[1] Then Dcnt = Dcnt+1; #WH에 저장된 값보다 큰 고가가 발생하면 WH에 값을 현재봉 고가로 변경 if H > WH Then WH = H; #WL에 저장된 값보다 작은 저가가 발생하면 WL에 값을 현재봉 저가로 변경 if L < WL Then WL = L; #주간 첫날이면 if Dcnt == 1 then{ var1 = max(WH,dayhigh(1)); var2 = 10^(((log10(max(WH,dayhigh(1)))-log10(min(WL,daylow(1))))*-0.236)+log10(max(WH,dayhigh(1)))); var3 = 10^(((log10(max(WH,dayhigh(1)))-log10(min(WL,daylow(1))))*-0.382)+log10(max(WH,dayhigh(1)))); var4 = 10^(((log10(max(WH,dayhigh(1)))-log10(min(WL,daylow(1))))*-0.500)+log10(max(WH,dayhigh(1)))); var5 = 10^(((log10(max(WH,dayhigh(1)))-log10(min(WL,daylow(1))))*-0.618)+log10(max(WH,dayhigh(1)))); var6 = 10^(((log10(max(WH,dayhigh(1)))-log10(min(WL,daylow(1))))*-0.764)+log10(max(WH,dayhigh(1)))); var7 = min(WL,daylow(1)); } else{#두번째 날부터 var1 = WH; var2 = 10^(((log10(WH)-log10(WL))*-0.236)+log10(WH)); var3 = 10^(((log10(WH)-log10(WL))*-0.382)+log10(WH)); var4 = 10^(((log10(WH)-log10(WL))*-0.500)+log10(WH)); var5 = 10^(((log10(WH)-log10(WL))*-0.618)+log10(WH)); var6 = 10^(((log10(WH)-log10(WL))*-0.764)+log10(WH)); var7 = WL; } If DayOpen > Close Then Sell(); if MarketPosition == -1 then{ if countif(CrossDown(c,var3),BarsSinceEntry) >= 1 and crossup(C,var3) Then ExitShort(); if countif(CrossDown(c,var4),BarsSinceEntry) >= 1 and crossup(C,var4) Then ExitShort(); if countif(CrossDown(c,var5),BarsSinceEntry) >= 1 and crossup(C,var5) Then ExitShort(); if CrossDown(c,var6) Then ExitShort(); if stime == 050000 or (stime > 050000 and stime< 050000) then{ exitlong(); exitshort();} SetStopLoss(12*PriceScale); } 올려주신 수식인데요. 당일청산 넣고 했습니다. 근데 사진을 보시면 청산과 진입이 동시에 되고있습니다. barssinceEntry로 경과봉수를 count하지만 crossdown과 crossup이 같이 일어날 수 없고 동시에 신호가 나오면 신호가 나오는즉슨 팔 수 밖에 없지않나요? 실제로 봉갯수를 보면 0개에 진입과 청산이 되고있음을 볼 수 있습니다. 2. 매도시그널이 12틱에 온전히 안되는 이유가 무엇인지요? 3. 사진과 같이 종가가 var선 어디서 시작할지 모르는데 저렇게 쭉 나열해놓으면 종가가 어디에 위치하든 위치하는 시점부터 (위에선을 배제한체) 라인을 구분하여 진입하여 청산하는건가요? 거기서 에러가뜨면 동시 진입, 청산이 이루어지지 않을까 싶은데요.
프로필 이미지
stockric
2017-07-03
196
글번호 110963
지표
답변완료

문의드립니다.

오전 8시 시작..새벽4시30분 거래완전종료 1시간 30분에 안에 있는 캔들중에 고가돌파할때 거래량 전거래량보다200프로 넘을때를 확인하고 전캔들보다 낮을때 매수.. 1시간 30분에 안에 있는 캔들중에 저가돌파할때 거래량 전거래량보다200프로 넘을때를 확인하고 전캔들보다 높을때 매도. 부탁드립니다.수고하세요.
프로필 이미지
아침한때비51
2017-07-03
129
글번호 110962
시스템
답변완료

부탁드립니다.

53888번의 답변수식에 대한 추가 질문 입니다. 현재시점에서 100봉간 최고가와 최저가를 기준으로 과거 100봉전 부터 현재까지 수평으로 그린 아래수식을 예를 들어 과거 260봉전에서 과거100봉전 사이의 (160봉간의 최고가와 최저가를 기준) 수평선을 그사이에 해당하는 과거 160봉간에 긋고 십습니다. 53888답변수식) input : N(100); var : a5(0),b5(0),k5(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0); a5 = highest(H,N); b5 = lowest(L,N); k5 = a5-b5; TL_Delete(TL1); TL1 = TL_New(sdate[n-1],stime[n-1],a5,sdate,stime,a5); TL_SetColor(TL1,RED); TL_Delete(TL2); TL2 = TL_New(sdate[n-1],stime[n-1],(k5*0.882+b5),sdate,stime,(k5*0.882+b5)); TL_SetColor(TL2,RED); TL_Delete(TL3); TL3 = TL_New(sdate[n-1],stime[n-1],(k5*0.764+b5),sdate,stime,(k5*0.764+b5)); TL_SetColor(TL3,YELLOW); TL_Delete(TL4); TL4 = TL_New(sdate[n-1],stime[n-1],(k5*0.618+b5),sdate,stime,(k5*0.618+b5)); TL_SetColor(TL4,BLUE); TL_Delete(TL5); TL5 = TL_New(sdate[n-1],stime[n-1],(k5*0.5+b5),sdate,stime,(k5*0.5+b5)); TL_SetColor(TL5,MAGENTA); TL_Delete(TL6); TL6 = TL_New(sdate[n-1],stime[n-1],(k5*0.382+b5),sdate,stime,(k5*0.382+b5)); TL_SetColor(TL6,GREEN); TL_Delete(TL7); TL7 = TL_New(sdate[n-1],stime[n-1],(k5*0.236+b5),sdate,stime,(k5*0.236+b5)); TL_SetColor(TL7,WHITE); TL_Delete(TL8); TL8 = TL_New(sdate[n-1],stime[n-1],(k5*0.118+b5),sdate,stime,(k5*0.118+b5)); TL_SetColor(TL8,BLACK); TL_Delete(TL9); TL9 = TL_New(sdate[n-1],stime[n-1],b5,sdate,stime,b5); TL_SetColor(TL9,black); 작성에 참고가 될만한 수식) input : n1(10),n2(10); var : HH(0),LL(0),CC(0),Pivot(0),Tcond(false),cnt(0),TL(0); HH = H[n1]; LL = L[n1]; for cnt = n1 to (n1+n2)-1{ if H[cnt] > HH Then HH = H[cnt]; if L[cnt] < LL Then LL = L[cnt]; }
프로필 이미지
yes
2017-07-03
142
글번호 110961
지표
답변완료

수식 부탁드립니다

1. 아침 9시 오전장 시작후 첫봉 고가를 표시한다 아침 9시 오전장 시작후 첫봉 저가를 표시한다 아침 9시 오전장 시작후 첫봉 고저 상방 대칭선을 표시한다 아침 9시 오전장 시작후 첫봉 고저 하방 대칭선을 표시한다 아침 9시 오전장 시작후 첫봉 다음 두번째 봉 부터는 고가,저가,상방 대칭,하방 대칭을 표시하지 않는다 2. 아침 9시 오전장 시작후 첫봉 고가를 표시한다 아침 9시 오전장 시작후 첫봉 저가를 표시한다 아침 9시 오전장 시작후 첫봉 고저 상방 대칭선을 표시한다 아침 9시 오전장 시작후 첫봉 고저 하방 대칭선을 표시한다 아침 9시 오전장 시작후 첫봉,두번째 봉만 고가,저가,상방 대칭,하방 대칭을 표시하고 세번째 봉 부터는 고가,저가,상방 대칭,하방 대칭을 표시하지 않는다 3. 아침 9시 오전장 시작후 첫봉 고가를 표시한다 아침 9시 오전장 시작후 첫봉 저가를 표시한다 아침 9시 오전장 시작후 첫봉이 양봉일 경우 고저 상방 대칭선을 표시한다 아침 9시 오전장 시작후 첫봉이 음봉일 경우 고저 하방 대칭선을 표시한다 아침 9시 오전장 시작후 첫봉 다음 두번째 봉 부터는 고가,저가,상방 대칭,하방 대칭을 표시하지 않는다 아침 9시 오전장 시작후 첫봉 다음 두번째 봉 부터는 고가,저가,상방 대칭,하방 대칭을 표시하지 않는다 감사합니다
프로필 이미지
회원
2017-07-04
146
글번호 110960
지표
답변완료

문의드립니다.

5일선이 120선 위에 있고 알에스아이가 50상향돌파 매도 매도이후 30틱 마이너스일때마다 매도.. 5일선이 120선 하향돌파 청산.
프로필 이미지
아침한때비51
2017-07-03
127
글번호 110959
시스템
답변완료

기초적인 질문이지만 부탁드립니다.

안녕하세요. 2가지 질문입니다. 한가지는 input: surport1(0), resist1(0); 이렇게 지지선(surport가격)과 저항선(resist가격)을 직접입력해서 지지선 돌파 또는 저항선 되돌림시 진입하려고 합니다. 문제는 미국채선물이라면 가격이 123'34.5 이런식으로 가는데 가격입력을 어떻게 해야 되는가 하는 것이구요. 되돌림은 어떻게 수식을 짜는지도 궁금합니다. 두번째는, 2계약(또는 그 이상 다수계약)을 같은 조건(기본손절조건도 -7틱으로)으로 동시 진입한후, 각각 다른 조건으로 분할 청산할때 어떻게 해야 하는지에 관한 것입니다. 예를 들어 1계약은 진입후에 3틱이상의 수익이 나면 바로 청산 나머지 계약은 진입후에 진입가와 종가의 50%를 손절가로 갱신 이렇게요. 꼭 부탁드립니다.
프로필 이미지
마인드마스터
2017-07-03
135
글번호 110958
시스템
답변완료

53904 재질문 입니다

Re : Re : 재질문53904 첨부한 이미지 화일은 "선"이 아니라 말씀하신 대로 "일자" 그래프를 적용한 것입니다. 확인 부탁드릴꼐요 ^^ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 재질문 > 안녕하세요 예스스탁입니다. 지표속성에서 그래프 모양을 일자그래프로 지정하고 적용하시면 됩니다. 일반 선그래프는 이전출력지점과 현재 출력지점사이에 사선이 생기게 됩니다. 특정구간에만 출력되는 지표는 일정구간만 출력되게 하는 수식내용과 함게 점그래프나 일자그래프와 같이 이전출력지점과 연결이 되지 않는 종류로 지정해 주셔야 합니다. 즐거운 하루되세요 > 스로우 님이 쓴 글입니다. > 제목 : 재질문 > 답변 감사드립니다. 그런데 오류가 있네요. 도움 부탁드립니다. 답변주신대로 아래와 같이 코딩해서 적용했더니 원하는 시간대부터 선이 표시되지 않네요. 첨부한 그림 참조하시면 됩니다. <<적용한 프로그램>> if Bdate != Bdate[1] Then Condition1 = false; if stime >= 234500 Then Condition1 = true; if sdate >= 20170630 and Condition1 == true then{ #출력문 plot1(45.41); } ==============이전에 드렸던 요구사항과 예스,스탁 답변입니다 <<요구사항>> 일정시간 이후부터만 출력선(plot)을 그리게 하고 싶습니다 예를 들어 1) 당일 23시30분 이후부터 선을 그리기 2) 7월1일 23시30분 이후부터 선을 그리기 ########################## <<답변내용>> 2-1 if Bdate != Bdate[1] Then Condition1 = false; if stime >= 233000 Then Condition1 = true; if Condition1 == true then{ #출력문 plot1(~~~~); } 2-2 if Bdate != Bdate[1] Then Condition1 = false; if stime >= 233000 Then Condition1 = true; if sdate >= 20170701 and Condition1 == true then{ #출력문 plot1(~~~~); } ################### 도움 부탁드릴께요 ^^
프로필 이미지
스로우
2017-07-03
139
글번호 110952
지표
답변완료

재문의드립니다.

input : P(14),Per(100); var : Tcond(false); if stime == 070000 or (stime > 070000 and stime[1] < 070000) Then Tcond = true; if stime == 050000 or (stime > 050000 and stime[1] < 050000) Then{ Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } var1 = RSI(P); if Tcond == true then{ if crossup(var1,70) and V >= V[1]*(1+Per/100) Then buy("b"); if MarketPosition == 1 Then exitlong("bx",AtStop,daylow[BarsSinceEntry]-PriceScale*5); if CrossDown(var1,30) and V >= V[1]*(1+Per/100) Then sell("s"); if MarketPosition == -1 Then ExitShort("sx",AtStop,DayHigh[BarsSinceEntry]+PriceScale*5); } 여기에서 하루시간내에 10틱 익절 4번 하면 거래 완전종료를 넣어주세요. 그럼 부탁드리겠습니다. 수고하세요.
프로필 이미지
아침한때비51
2017-07-03
127
글번호 110947
시스템