커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 문의드립니다.

macd를 이용한 매도 수식을 작성하고 있습니다. 그림은 macd(300,600), tem120, sto(12,26,9)를 해외선물(골드)에 적용한 내용이고, 분홍색 점은 macd osc가 양수인 경우, 검은수평선은 macd osc가 음수인경우를 표시했습니다. 매도진입 조건은 다음과 같습니다. 1. 아랫꼬리 없은 음봉 2. 봉 전체가 tema선 아래 있음 3. stoK<stood 4. macd osc가 음수 5-1. 매도 진입 직전 macd osc 양수인 기간이 10봉 이상이거나 -2. 매도 진입 직전 macd osc 양수인 기간 및 전전 macd osc 양수인 기간의 합이 20봉 이상 and 직전 macd osc 음봉인 기간이 10봉 이내 and 그 기간 동안 봉전체가 tema선보다 아래 존재 -3. 매도 진입 직전 macd osc 양수인 기간이 10봉 이내이고, MACD매도전봉과 MACD매수정봉 사이 기간이 50봉 이상인 경우 // 5-3은 수식 작성을 못했습니다. 아래식처럼 작성을 했고 생각대로라면 5-2번으로 해서 매도진입봉에서 신호가 나와야할 것 같은데 진입이 안되네요.. 수정 부탁드립니다. 감사합니다. var: macd매수봉(0),macd매수전봉(0),macd매도봉(0),macd매도전봉(0),Entry(0); MACDv = MACD(300, 600); MACDsig = ema(MACDv,9); If crossup(macdv,macdsig) then { macd매수전봉 = macd매수봉; macd매수봉 = index; } If CrossDown(macdv,macdsig) then { macd매도전봉 = macd매도봉; macd매도봉 = index; } if ((macd매도봉 - macd매수봉 >10) or // ((macd매도봉 - macd매수봉 ) +(macd매도전봉 - macd매수전봉 )>10 and (macd매수봉 - macd매도전봉 ) < 10 and AccumN(iff(H<=tema,1,0),index-macd매수전봉 ) )) and 아랫꼬리없는 음봉 and tema선 아래 음봉 and stoK<stoD then { sell("매도"): }
프로필 이미지
깜피
2017-12-10
262
글번호 114868
시스템
답변완료

2차파동

아래는 bestkim님의 문의에서 따온 코드입니다. 프로그램이 일목요연해서 사용하고 있습니다. 다만 한 가지 덧 붙이고 싶은 것이 있습니다. 이 코드에서 나오는 파동의 고저를 이용하여 2차로 다시 고저를 찾아서 추세선을 긋는 2차파동선을 그리는 코드를 부탁드립니다. 그림을 첨부합니다. 그림에서 붉은 추세선이 2차 파동이고 제가 수작업으로 그려넣은 것인데 이것을 자동으로 그리는 코드를 부탁합니다. (참고로 검은 파동선은 아래 코드로 만들어진 것입니다.) 2차 파동을 자세히 보시면 붉은 선이 안보이는 부분, 즉 검은선과 일치하는 부분이 있습니다. 이 경우는 1차 파동이 바로 2차 파동이 되는 경우로 정의해야 할 것 같습니다. 그리고 한 가지 표현 방식의 문제인데... 1차 파동과 2차 파동을 각각 표시하거나 표시하지 않는 옵션을 넣어 주시면 감사하겠습니다. 1차와 2차를 같이 보거나 1차만 보거나 2차만 보거나 할 수 있는 기능 말입니다. #bestkim Input:length(5),종가사용여부(0),파동선두께(1),수치표시(0); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); PlaySound("F:₩예스트레이더소리₩띠웅.wav"); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,black); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,black); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); PlaySound("F:₩예스트레이더소리₩띠웅.wav"); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,black); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,black); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
회원
2017-12-10
376
글번호 114867
지표
답변완료

수식 요청 드립니다.

안녕하세요. 수식 요청 드립니다. 1. 연결선물 당일청산 시스템에서 당일 시가 위 매수, 당일시가 아래 매도 진입 후 기준으로 -> 당일시가위 매수 진입 후 -> 1차 시가 위로 0.3P이상 상승 후 -> 2차 시가 아래로 0.4P이상 하락한 후 3차 시가위 상승 돌파봉 발생하는 경우 청산 -> 당일시가아래 매도 진입 후 -> 1차 시가 아래로 0.3P이상 하락 후 -> 2차 시가 위로 0.4P이상 상승한 후 3차 시가아래 하락 돌파봉 발생하는 경우 청산 2. 연결선물 당일청산 시스템에서 매수, 매도 진입 후 기준으로 -> 매수 진입 후 -> 1차 시가 위로 0.3P이상 상승 후 -> 2차 시가 아래로 0.4P이상 하락한 후 3차 시가위 상승 돌파봉 발생하는 경우 청산 -> 매도 진입 후 -> 1차 시가 아래로 0.3P이상 하락 후 -> 2차 시가 위로 0.4P이상 상승한 후 3차 시가아래 하락 돌파봉 발생하는 경우 청산 시스템 요청 드립니다. 감사합니다.
프로필 이미지
dandy
2017-12-10
225
글번호 114866
시스템
답변완료

시스템 부탁 드려요

5 이평선이 20 이평 이하일때, 현재봉의 거래량과 바로앞 봉의 거래량의 합이 3번째이전 10개합계 거래량보다 10배이상이고 현재봉과 이전5개 봉의 합이 5봉이전(-6번째)거래량부터 20개봉(현재봉기준 -25번째)의 합계보다 5배클때 -> 매수 . 5 이평선이 20 이평 이상일때, 현재봉의 거래량과 바로앞 봉의 거래량의 합이 3번째이전10개합계 거래량보다 10배이상이고, 현재봉과 이전5개 봉의 합이 5봉이전(-6번째)거래량부터 20개봉(현재봉기준 -25번째)의 합계보다 5배 클때 -> 매도 . 공식 부탁 드려요
프로필 이미지
쫄리면캇
2017-12-10
282
글번호 114865
시스템
답변완료

ma 값이 계산안됩니다

//Input : DayPeriod1(5), DayPeriod2(10), DayPeriod3(20), DayPeriod4(31), DayPeriod5(60); var : Sma1(0),Sma2(0),Sma3(0),Sma4(0),Sma5(0); var : Sma6(0),Sma7(0),Sma8(0),Sma9(0),Sma10(0); var : Sma11(0); var : i650(650),i1000(1000),i1300(1300),i2000(2000),i2600(2600),i3000(3000); var : i4000(4000),i5000(5000),i6000(6000),i7000(7000),i7800(7800); if Index==0 Then{ ClearDebug; if(BarInterval==3)Then{ i650 = 650; i1000 = 1000; i1300 = 1300; i2000 = 2000; i2600 = 2600; i3000 = 3000; i4000 = 4000; i5000 = 5000; i6000 = 6000; i7000 = 7000; i7800 = 7800; } if(BarInterval==5)Then{ i650 = 390; i1000 = 600; i1300 = 780; i2000 = 1200; i2600 = 1560; i3000 = 1800; i4000 = 2400; i5000 = 3000; i6000 = 3600; i7000 = 4200; i7800 = 4680; } if(BarInterval==15)Then{ i650 = 130; i1000 = 200; i1300 = 260; i2000 = 400; i2600 = 520; i3000 = 600; i4000 = 800; i5000 = 1000; i6000 = 1200; i7000 = 1400; i7800 = 1560; } //MessageLog("barin %.f",BarInterval); } /* Sma1 = ma(C,Period1); Sma2 = ma(C,Period2); Sma3 = ma(C,Period3); Sma4 = ma(C,Period4); Sma5 = ma(C,Period5); Sma6 = ma(C,Period6); Sma7 = ma(C,Period7); Sma8 = ma(C,Period8); Sma9 = ma(C,Period9); Sma10 = ma(C,Period10); Sma11 = ma(C,Period11); */ Sma1 = ma(C,i650); Sma2 = ma(C,i1000); Sma3 = ma(C,i1300); Sma4 = ma(C,i2000); Sma5 = ma(C,i2600); Sma6 = ma(C,i3000); Sma7 = ma(C,i4000); Sma8 = ma(C,i5000); Sma9 = ma(C,i6000); Sma10 = ma(C,i7000); Sma11 = ma(C,i7800); MessageLog("i1300 %.f %.f %.f",i7000,sma10,ma(C,i7000)); Plot1(Sma1); Plot2(Sma2); Plot3(Sma3); Plot4(Sma4); Plot5(Sma5); Plot6(Sma6); Plot7(Sma7); Plot8(Sma8); Plot9(Sma9); Plot10(Sma10); Plot11(Sma11); 분봉에 따라 ma 값을 변하게 하고싶습니다 즉 5분봉일때 10분봉일 때 5분봉일때 100ma를 10분봉일때 50ma 로 지표를 나타내고싶어서 위와 같이만들었는데 제대로 작동하지 않는군요 그래서 프린트해봤더니 이상합니다 ma(c,1300) 은 정확히 값을 출력하는데 ma(c,i1300) 은 값이 안나옵니다 이게 왜 이런지 궁금합니다. i1300의 값이 정확히 바뀌는걸 분봉마다 debug 통해확인하는뎅도 ma(c,1300)으로 값을 직접 넣은것과 ma(c,i1300) 처럼 변수로 하는것의 값이 너무 다릅니다 왜그런가요?
프로필 이미지
여유로운투자
2017-12-10
256
글번호 114864
지표
답변완료

거래량

안녕하세요. 주식에서 장시작후 분봉에서 최대거래량 자리의 고가 저가라인 수식부탁합니다. 매일 장시작후 거래량이니 첫봉이 첫번째 일것이고 그뒤로 거래량이 첫봉보다 많으면 고가저가라인이 변하게 되겟지요. 수고하십시요.
프로필 이미지
바닥차기
2017-12-10
252
글번호 114863
지표
답변완료

수식부탁드립니다

1. 최근 20캔들에서 고가와 저가의 폭이 가장 큰 음봉 고가(A)를 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 음봉 저가(B)를 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 음봉 시가(C)를 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 음봉 종가(D)를 표시한다 A와 B의 상방 대칭을 표시한다 A와 B의 하방 대칭을 표시한다 C와 D의 상방 대칭을 표시한다 C와 D의 하방 대칭을 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 양봉 고가(E)를 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 양봉 저가(F)를 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 양봉 시가(G)를 표시한다 최근 20캔들에서 고가와 저가의 폭이 가장 큰 양봉 종가(H)를 표시한다 E와 F의 상방 대칭을 표시한다 E와 F의 하방 대칭을 표시한다 G와 H의 상방 대칭을 표시한다 G와 H의 하방 대칭을 표시한다 2. A와 B의 하방 대칭을 아래에서 위로 터치할 때 매수 E와 F의 상방 대칭을 위에서 아래로 터치할 때 매도 3. A와 B의 하방 대칭을 아래에서 위로 돌파할 때 매수 E와 F의 상방 대칭을 위에서 아래로 돌파할 때 매도 4. A와 B의 하방 대칭을 위에서 아래로 터치할 때 매수 E와 F의 상방 대칭을 아래에서 위로 터치할 때 매도 손실이 발생할 경우 당일 매매 종료 감사합니다
프로필 이미지
회원
2017-12-10
256
글번호 114862
지표
답변완료

조건검새식 문의드립니다

조건값에 대한 검색식을 만들고 싶습니다.다음값으로 조건식좀 부탁드립니다 1) 60일 거래량 단순이동평균이 50만이상 , 60일종가 단순이동평균이 15 이상 , 상승장악형인 차트(관통형,망치형,십자형을 입력해도 무방) 20일 종가 단순이동평균이 50일 종가 단순이동평균보다 높다 , 종가가 5일전 종가에 1.15를 곱한 값보다 작다 2) 20일 거래량 단순이동평균이 100만이상 , 60일종가 단순이동평균이 5 이상 , 20일종가 단순이동평균이 50일 종가 단순이동평균보다 높다 50일종가 단순이동평균이 200일 종가 단순이동평균보다 높다 , 50일 종가 단순이동평균이 10일 전 50일 종가 단순이동평균보다 높다 최근 200일 종가 단순이동평균이 20일 전보다 높다 , 종가가 5일전 종가보다 낮다 , 7일전 종가가 20일전 종가보다 높다 종가가 20일 종가 단순이동평균보다 낮거나 같다 , 종가가 50일 종가 단순이동평균보다 높거나 같다 시가가 종가보다 낮거나 같다 , 슬로캐스틱%k(5,3)가 슬로캐스틱 %d보다 크다 3) 60일 거래량 단순이동평균 50만이상 , 60일 종가 단순이동평균 10이상 , 50일 종가 단순이동평균이 20일 종가 단순이동평균보다 낮다 평균방향운동지수인 adx선(14)이 20일 전의 일일 adx선(14)에 0.41을 곱한 값보다 작다 4)60일 거래량 단순이동평균 50만이상 , 60일종가 단순이동평균 10이상 어제 저가가 20일전 저가보다 낮다 , 어제 저가가 3일전 저가보다 낮다 일일 macd 히스토그램(12,26,9)이 15일전 일일 macd 히스토그램(12,26,9)보다 크다 일일 cci(20)가 15일 전 일일 cci(20)보다 크다 ,일일 rsi(5)가 15일전 일일 rsi(5)보다 크다 50일 종가 단순이동평균이 200일 종가 단순이동평균보다 높다 , 시가가 종가보다 낮다 5) 52주 신고점 , 20일 거래량 단순이동평균 50만이상 60일 종가 단순이동평균 10이상 , 종가가 오늘부터 과거 260일동안의 저가에 3을 곱한 값보다 낮거나 같다 일일 obv가 60일 전의 일일 obv보다 크다 6) 20일 거래량 단순이동평균 50만이상 , 60일 종가 단순이동평균 10이상 50일 종가 단순이동평균이 20일 종가 단순이동평균보다 높다 , 50일 종가 단순이동평균이 40일 전의 50일 종가 단순이동평균보다 낮다 오늘부터 이전 30일동안의 최대거래범위가 오늘부터 이전 15일 동안의 최대 거래범위보다 크다 오늘부터 이전 15일동안의 최대거래범위가 오늘부터 이전 5일 동안의 최대 거래범위보다 크다 일일 obv가 40일 전 일일 obv보다 크다 일일 macd 히스토그램(12,26,9)이 40일전 일일 macd 히스토그램(12,26,9)보다 크다 50일 종가 단순이동평균이 200일 종가 단순이동평균보다 낮다 해당 조건의 검색식 부탁드립니다. 만들수 없는조건은 빼고 해주셔도 무방합니다
프로필 이미지
고고롱
2017-12-09
288
글번호 114861
검색
답변완료

행복; 검색식 작성 바랍니다

한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 검색식 관련입니다 참조데이타(data2)에 주가 차트를 설정한 후 참조데이타(data2)의 봉 위에 검색식을 표시하기 위해 << 아래 >>와 같이 검색식을 작성하였습니다 ===========<< 아래 >>==================================== input : N(5), 고점위몇틱(4); if Data2 ( C > Open and ( C >= C[1]*(1+N/100) or H >= L*(1+N/100) ) ) Then Plot1( Data2( High )+PriceScale*고점위몇틱,"상승갭",GREEN); else NoPlot( 1 ) ; ========================================================== 그러나 참조데이타(data2)에 검색식이 표시되지 않고 주종목 차트에 검색식이 표시됩니다 그 검색식을 드래그하여 참조데이타(data2)로 끌어와 붙이려고 해도 안됩니다 일반적으로 지표식은 되는데, 검색식을 원래 참조데이타(data2)에 표시할 수 없는 것인가요? 어떻게 해야하나요? 수고하십시요^^
프로필 이미지
행복한가방
2017-12-09
242
글번호 114860
검색