커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8158
글번호 230811
답변완료
수식 부탁드립니다.
1.전일봉 캔들 저가 고가를 기준으로 해서 당일분봉차트에 비율이 0, 0.236 , 0.382, 0.5
0.618, 0.764, 1, 1.236, 1.382, 1.5, 1.618, 1.764. 2.0 , 2.236, 2.382, -1.236, -1.382...
(위아래모두 피보나치확장비율이 표현되도록 부탁드립니다.)
2.전전일봉~전일봉캔들의 최고가 최저가를 기준으로한 1번의 지표수식 또한 부탁드립니다.
감사합니다.
2017-11-15
241
글번호 114223
답변완료
시스템식 여쭤봅니다.
안녕하세요?
개별 종목으로 매매 할꺼구요.
종가 직전 매수 그 다음날 매도 식을 만들고 싶습니다.
조건은
1봉전 대비 거래량 10%~40% 이고
오늘 일봉의 저가 고가 변동폭이 10% 미만 이고
금일 현재가가 1봉전 종가를 넘지 않았고
금일 저가가 1봉전 (시가+종가)/2 이하로 내려가지 않았을때
종가로 매수
( 종가매수가 어렵다면 15시19분쯤 매수;;)
매도는 +4% 이상이면 물량의 60%
+10% 나머지 전량매도
+4% 이상갔다가 다시 +1%로 떨어지면 전량 매도
손절은 1봉전(매수한날) 저가 이탈시 전량매도 입니다.
종목을 매수하고 물량이 있을때는 조건에 충족해도
중복 매수가 안됬으면 합니다.
감사합니다.
ps. 한번 만들어주셨는데.. 적용하니 예스랭귀지에서 틀린 문법이라고 오류가 엄청떴었습니다;
2017-11-15
232
글번호 114220
답변완료
해외선물(골드) 문의드립니다.
안녕하세요. 해외선물(골드) 문의드립니다.
예스글로벌을 이용중입니다.
1
아래와 같은 수식으로 차트에 적용하니 당일의 고저가를 계산하지 않고
전일봉을 계산하는것 같습니다. 만들고자 하는식은
첨부한 그림에서 빨간 사각형안의 글자처럼 당일봉에 현재까지의
고저가를 반영해서 그 진폭을 틱수로 표현하고자합니다.
2
그리고 이경우에 차트의 기준시간을 시장시간과 서울/도쿄로 할때
지표값이 영향을 받는지 궁금합니다.
감사합니다.
var : tx1(0),중심(0),폭(0);
중심 = (DayHigh-DayLow)/2+DayLow;
폭 = DayHigh-DayLow;
Plot1(중심);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,중심,NumToStr((폭*10),0));
2017-11-15
338
글번호 114219
답변완료
문의 드립니다.
안녕하세요. 입문한지 얼마안된 생초보입니다.
아래와 같이 수식을 작성해 주신것을 보다보니
Bdate,Sdate 는 어떤값인가요?.
따로 선언이 없는것을 보았을때 미리 예약된 값을 가진것 같은데
기본사용설명서로 공부하고 분석해보려니 막히는게 많네요
수고하세요.
공부하는데 도움될 팁 좀 부탁드립니다. ^^
input : 타분봉(60);
var : cnt(0),S1(0),D1(0),TM(0),TF(0);
Array : OO[50](0),HH[50](0),LL[50](0),CC[50](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
이하생략
2017-11-15
236
글번호 114217
답변완료
문의 드립니다.
Arrays : Period[2](0), Relative[2](0);
Vars : X(0);
Period[0] = 9;
For X = 0 To 1
{
Relative[X] = RSI(Period[X]);
MessageLog("0값 %.2f",Relative[0]);
MessageLog("1값 %.2f",Relative[1]);
MessageLog("X값 %.2f",Relative[X]);
If C < O Then Buy();
}
메세지로그를 찍어봤는데요.
결과값을 보시면,
처음 메세지는 Relative[0] 에는 52.17 값이 정상적으로 나왔구요.
두번째 메세지 Relative[1] 은 초기값이 0 이기 때문에
두번째 메세지도 정상으로 나왔습니다.
그래고 X값은 For문이 처음 0값이기 때문에
Relative[0] = 52.17
세번째도 정상이네요.
이제 문제는
For문의 X값이 0에서 1값으로 변했을때 입니다.
보시면 X값이 1로 변했을때
모든 수치가 52.17 로 나옵니다.
RSI(Period[X]) 에서 X 값이 1로 변하였으로
RSI(Period[1]) 인데
Period[1] 의 초기값은 0 이므로
RSI(Period[1]) 은 0이고
Relative[1] = RSI(Period[1]);
위 구문의 결과값도 0 인데
왜 메세지로그에서는 전부
52.17 로 찍혀서 나오는 것일까요?
52.17
0
0
이렇게 나오는게 정상이 아닌가요?
2017-11-15
242
글번호 114214
답변완료
문의드립니다.
도움주시는 덕분에 도전하면서 소액으로 매매도 해보고 있습니다. 매번 감사합니다.
1. 기타
종가가 볼린저밴드 상단 돌파시 매수
이평청산
위 전략을 쓰려고 할 때 진입 이후 볼린저밴드 재돌파시 매수 이렇게 하려면 다른 진입신호 허용인가요 모든 진입신호 허용인가요?
2. 시스템
이전에 답해주신 수식 n% 오를때마다 추가 진입인데요. n%오를 때마다 추가진입하는 거를 처음 진입수량의 50% 40% 30% 20% 10% 이렇게 나누어서 수정부탁드립니다.
Input : BBP(20), MultiD(1.8);
Input : EVP(20), Percent(2);
input : n(5);
var : MAv(0),BBup(0),BBdn(0);
var : center(0),UPline(0),DNline(0);
MAv = ma(C,BBP);
BBup = BollBandUp(BBP,MultiD);
BBdn = BollBandDown(BBP,MultiD);
center = ma(C, EVP);
UPline = EnvelopeUp(EVP, Percent);
Dnline = EnvelopeDown(EVP, Percent);
if bbup-bbdn > UPline-Dnline and CrossUp(c,bbup*(1+n/100)) Then
buy("b1");
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then
var1 = sdate;
if sdate > var1 then
buy("bb",AtStop,LatestEntryPrice(0)*(1+n/100));
if CrossDown(c,mav) Then
exitlong();
}
3. 시스템
2번 수식을 처음 진입수량의 50%- 25% - 12.5% 이런 식으로 절반씩 나눠 진입할 수 있게 코딩 부탁드립니다. 이건 모든 진입 신호 허용으로 하면 되나요?
4. 시스템
진입
엔벨로프폭보다 볼린저밴드 차가 크고
볼린저밴드 상단선 가격보다 현재 가격이 n% 이상 크다면 진입
추가진입
진입 상태에서 종가가 볼린저밴드 상단선을 추가 돌파(진입 신호와 다른 돌파)했을 경우 진입 수량의 50% 만큼 추가진입.
추가진입청산
종가가 볼린저밴드 상단선 표준편차(1.5)를 하향돌파하면 추가진입분 청산.
청산
종가가 볼린저밴드 중단선을 하향돌파하면 청산
비고
추가진입은 날짜마다 한번씩만 진입함. 이익이든 손실이든 한번씩만
2017-11-15
231
글번호 114213
답변완료
부탁드려요
틱차트에서 전봉의 종가를 차트에 표시하게 하고 싶습니다.
감사합니다..
2017-11-15
229
글번호 114206
답변완료
문의 드립니다.
Arrays : Period[2](0), Relative[2](0);
Vars : X(0);
Period[0] = 9;
For X = 0 To 1
{
Relative[X] = RSI(Period[X]);
If CrossDown(Relative[X], 30) Then
{
Print("C:₩a11.txt","%.2f, %.2f",Relative[0],Relative[1]);
Buy();
}
If CrossDown(Relative[X], 30) Then
{
Print("C:₩a11.txt","%.2f, %.2f",Relative[0],Relative[1]);
Buy();
}
}
For문에 대한 저의 이해가 부족해서인지
이해가 안되는 부분이 많은데요.
일단 수식을 보면 아시겠지만,
배열 Period[0] 변수에만 9값을 주었구요.
Period[1] 변수에는 값을 주지 않았으므로 0값인데
Print 함수로 출력을 해보니까
보시는바와 같이 데이터가 찍어져 나옵니다.
Relative[1] = RSI(Period[1])
여기서 Period[1]은 0값인데
Relative[1] 에 RSI 값이 저장되는게 말이 되는 건가요?
그리고 또 Print 함수로 찍어낸 수치를 보면
2017-11-03 9:01:00 27.66, 50.45
2017-11-03 9:01:00 27.66, 50.45
2017-11-03 9:01:00 27.66, 27.66
2017-11-03 9:01:00 27.66, 27.66
이렇게 봉 하나에
27.66, 50.45
가 되었다가
둘의 수치가 같아집니다.
27.66, 27.66
이 부분도 잘 이해가 안갑니다.
둘은 배열변수로 각각
Relative[0]
Relative[1]
의 값이 다른데
왜 둘의 값이
처음에는 달랐다가
똑같아 지는 것이죠?
2017-11-15
314
글번호 114200
답변완료
문의드립니다.
안녕하세요.
혹시 포지션 청산이후 신규진입을 특정시간 이후에 신호나오게 가능할까요?
예> 포지션 청산후 30분이 지난 시점부터 진입신호 발생
포지션 청산후 10개봉이 완성된 이후 부터 진입신호 발생
항상 친절한 답변 감사합니다. 즐거운 하루 되세요~
2017-11-15
194
글번호 114199