커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6194
글번호 230811
답변완료
문의 드립니다.
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
190
글번호 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
175
글번호 114213
답변완료
부탁드려요
틱차트에서 전봉의 종가를 차트에 표시하게 하고 싶습니다.
감사합니다..
2017-11-15
184
글번호 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
211
글번호 114200
답변완료
문의드립니다.
안녕하세요.
혹시 포지션 청산이후 신규진입을 특정시간 이후에 신호나오게 가능할까요?
예> 포지션 청산후 30분이 지난 시점부터 진입신호 발생
포지션 청산후 10개봉이 완성된 이후 부터 진입신호 발생
항상 친절한 답변 감사합니다. 즐거운 하루 되세요~
2017-11-15
152
글번호 114199
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
1) 해외선물 틱차트(500틱)에서 시작시간(08시)부터 현재시간(16시) 까지의
최고가와 최저가를 돌파시 매수, 매도포진션 진입하는 시스템식 부탁드립니다.
2) 해외선물 틱차트(500틱)에서 시작시간(08시)부터 이전틱 까지의
최고가와 최저가를 돌파시 매수, 매도 포진션 진입하는 시스템식 부탁드립니다.
(최고가와 최저가 수시로 변경되므로 시스템 진입신호가 자주 나오겠지만
그것에 상관없이 수식만 부탁드립니다.)
3) 해외선물 틱차트(500틱)에서 현재가가 150일이평 상승 돌파 매수 진입 이후
현재가가 30일 이평을 하향 돌파하여 매수청산 이후
현재가가 다시 30일 이평을 재상승 돌파하여 매수 진입시
이전 포지션(현재가가 150일 이평 상승돌파 매수진입) 진입이후
최고가를 돌파하는 경우에만 재진입하는 시스템식 부탁드립니다.
(단, 현재가가 150일 이평을 하향 돌파하지 않음,
만약 현재가가 150일 이평을 하향 돌파 했다면 진입조건 체크하지 않아도 됨)
시스템식 부탁드립니다.
감사합니다.
2017-11-15
182
글번호 114198
답변완료
지표식 부탁드립니다.
항상 도움 주셔서 감사합니다.
해외선물에서 하루의 변동폭을 지표로 나타내고 싶습니다.
예를 들어 금일 오일의 고가가 52.57 저가가 52.15 이라고 가정할 경우
오늘 현재 오일의 변동폭은 42틱 정도 움직였습니다.
1) 이 42틱을 실시간으로 계산해서 지표로 나타내고 싶습니다.
2) 그리고 현재까지의 변동폭 42틱과 오일의 하루 변동폭 150틱이라고 가정할 경우
남은 변동폭[108틱]을 숫자로도 화면에 표시하고 싶습니다.
그러면 하루의 변동폭을 계산하지 않고도 쉽게 눈으로 하루의 변동폭을
알수 있지 않을까해서 부탁드리는 겁니다.
아래 이미지를 첨부 합니다.
참고 하시기 바랍니다.
2017-11-15
226
글번호 114197
bestkim 님에 의해서 삭제되었습니다.
2017-11-14
1
글번호 114196
답변완료
수식 요청 드립니다.
안녕하세요.
아래 요청한 수식 내용은 기존의 진입수식으로 매수 매도 진입하고,
당일 시가기준 1.2P 이상 상승돌파 조건 또는 하락돌파 조건 완성봉이 장시작 후
5분 까지 발생한 경우 적용되는 청산식 입니다.
진입수식 진입 후, 조건돌파 완성봉이 장시작 후 5분 까지 발생한 경우 적용되는 청산식,
5분 이후에 조건 완성봉이 발생한 경우에는 적용 제외 청산식으로 수정요청 드립니다.
감사합니다.
//---------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
var1 = ma(C,5);
var2 = ma(C,20);
if stime < 90500 Then{
if MarketPosition <= 0 Then
buy("b",AtStop,dayopen+1.5);
if MarketPosition >= 0 Then
sell("s",AtStop,dayopen-1.5);
}
if MarketPosition == 1 Then{
ExitLong("bx1",AtStop,dayhigh*0.7);
if var1 < var2 Then
exitlong("bx2");
}
if MarketPosition == -1 Then{
ExitShort("sx1",AtStop,DayLow*1.3);
if var1 > var2 Then
ExitShort("sx2");
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식 요청 드립니다.
> 수식 요청 드립니다.
연결선물 당일청산 시스템에서 장시작 후 5분 까지 당일 시가기준 1.2P 이상
상승 또는 하락한 조건이 달성한 경우 진입에 대한 청산식 입니다.
(진입 후 조건달성, 진입 전 조건달성 모두 적용되는 청산식 입니다.)
매수진입 후 - 5이평이 20이평 하향 돌파한시 청산, 당일 고가 대비 30% 하락시 청산
매도진입 후 - 5이평이 20이평 상향 돌파한시 청산, 당일 저가 대비 30% 상승시 청산
감사 합니다.
2017-11-14
175
글번호 114195