커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8171
글번호 230811
답변완료
초보입니다
수고하십니다.
분봉차트에서
Raff Regression Channel 보조도구를 당일 실시간으로
첫봉 부터 현재봉 까지 구현되는 수식과
Raff Regression Channel 보조도구가
전일 시가부터 전일 종가 까지
구현되는 수식을 요청합니다.
2015-09-21
203
글번호 90526
답변완료
피봇관련 질문요
피봇에서요
피봇포인트, 1차지지, 1차저항 값이 나오잖아요
피봇포인트 값이 오일 일 경우 43.00
피봇포인트 값+10 = 43.10
수평선 나오게하는 수식은 없나요
2015-09-20
222
글번호 90525
답변완료
수식부탁드립니다
수고하십니다 ^^
If 매수조건 == true then
Buy("매수", AtLimit, C);
If 청산조건 == true then
ExitLong("매수청산", AtStop, C);
위와 같은 수식에서
매수신호로 진입하여 연속 3번 익절하면 4번째 매수신호는 건너띄고(4번째 청산신호까지)
5번째 매수신호부터 진입하여 또 다시 3번 익절을 반복하게 하려고 합니다.
만일, 중간에 매도신호가 나오면 곧바로 매도진입(4번째 신호 포함) 하구요.
매도진입하면 매도수익 카운트시작
또는
4번째신호는 미진입하고 4번째신호발생봉으로부터 10봉 이후
발생 신호부터 진입을 허용
감사합니다 ^^
2015-09-21
200
글번호 90524
답변완료
질문...
건의사항입니다
현재 예스트레이더는 참조종목의 기본종목으로 하면
종목별 개인별 순매수량,외국인 순매수량은 참조종목이 있는데
기관들은 세분화되어있습니다. 기관계를 알기위해선 세분화된 참조종목들을 다 넣어야하는데
너무 차트가 많아지고 번거로운데 기관계를 따로 참조종목으로 만들어 주실수는 없는지요?
2015-09-20
200
글번호 90523
답변완료
부탁드립니다
투자 주체별 옵션 수급에서..
개인:(콜매수금액 - 풋매수금액)*10,0000 / (등가양합)*50
기관:
외인;
동일하게 3개 수식을 부탁 드립니다
감사합니다 구벅
※ 콜,풋 모두 금액은 단위가 억 입니다..
이를테면 50억(콜)30억(풋) 이라면 ( 50 - 30 ) * 10000 으로 합니다
2015-09-20
220
글번호 90522
답변완료
SetStopProfittarget(stoptick1,PointStop) 에 대한 질문입니
아래와 같이 수익실현을 외부변수로 stoptick1(0.12)로 설정하도록 해놨습니다.
=========================================================================
Inputs : stoptick1(0.12) ,stoptick(0.3)
...............
...............
SetStopProfittarget(stoptick1,PointStop); //0.12틱(1계약시) 수익이면 실현
SetStopLoss(stoptick,pointstop) ; 0.3틱(1계약) 손실이면 손절
=====================================================================
질문드리겠습니다. 앞으로 2계약을 할려고 합니다.
1) 2계약으로 할때 "시스템 트레이딩 설정"(그림참조)의 동일수량(계약)진입의 거래수량만 1-->2로 설정하면 되는지요?(또 별도 시스템식을 만들어야하는지요?)
[SetStopProfittarget(stoptick1,PointStop]
1) 2계약 기준이면... 합쳐서( 1계약 : 0.06틱 + 1계약 : 0.16틱) 0.12틱이면 수익실현되는건지... 아니면 계약당(1계약 :0.12)기준으로 0.12틱이면 수익실현하는건지 궁금합니다.
만약 2계약합쳐서 0.12틱이면 수익실현되는것라면 계약당 0.12틱 수익실현할려면 (즉 2계약 : 0.24틱) 어떻게 시스템식을 만드는지 궁금합니다.
2) 시스템식에서 "진입"신호가 나왔는데... 진입을 못하고 수동으로 진입했을때는 시스템식 SetStopProfittarget(stoptick1,PointStop); //0.12틱 수익이면 실현
하는 부분에서 수동진입가격기준으로 0.12틱 수익이면 실현되는지요?
[SetStopLoss(stoptick,pointstop)]
1) 2계약 기준이면... 합쳐서( 1계약 : 0.15틱 + 1계약 : 0.15틱) 0.3틱이면 손절되는건지...
아니면 계약당(1계약 :0.3)기준으로 0.3틱이면 손절실현하는건지 궁금합니다.
만약 계약당 0.3 기준으로 손절실현한다면 2계약합쳐서 0.3틱 손실이면 손절해라 라는
시스템식을 어떻게 만드는지 궁금합니다.
---이상입니다.
운영자님 덕분에... 많은 도움을 받고 있습니다. 감사드리고요/// 추석연휴 잘 보내시길 바랍니다..수고하세요^^
2015-09-20
225
글번호 90521
답변완료
시스템식 부탁드림니다.
1,하기 rsi식을 신호시 시스템식으로 바꾼다.
(하단신호시 매수,청산이 되지않고 매수 신호시 추가, 고가선이 볼린저밴드(20,2)상단 골드시 올청산, 상단 신호시에 매도,청산이 되지않고 재 매도신호시 1개 추가,
저가선이 볼린저밴드(20,2)하단선을 데드시에 올청산 )
2,rsi 식을 macd(12,26)으로 바꾼다.
3,바꾼 macd식을 1번과 같이 만들어 주세요.부탁드림니다....
4,수식;
Input:Period(14),Rsi변동폭(5);
Var:j(0),상승(100),하락(-100),양방향(2),추세(0),
파동선(0),Rsi파동선(0),방향(0),RsiV(0),추세선(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),
Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0);
RsiV = RSI(Period);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
Rsi고Bar[j] = Rsi고Bar[j] + 1;
Rsi저Bar[j] = Rsi저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then
{
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
Else
Rsi고Bar[0] = Rsi고Bar[0] + 1;
If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then
{
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
Else
Rsi저Bar[0] = Rsi저Bar[0] + 1;
If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then
{
고[0] = H;
고Bar[0] = 0;
}
Else
고Bar[0] = 고Bar[0] + 1;
If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then
{
저[0] = L;
저Bar[0] = 0;
}
Else
저Bar[0] = 저Bar[0] + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If Rsi저[0][1] + Rsi변동폭 > RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승;
If Rsi고[0][1] - Rsi변동폭 < RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 방향[1] == 하락 && 방향 == 상승 Then
{
For j = 18 DownTo 1
{
Rsi저[j+1] = Rsi저[j];
Rsi저Bar[j+1] = Rsi저Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
고[0] = H;
고Bar[0] = 0;
}
Else If 방향[1] == 상승 && 방향 == 하락 Then
{
For j = 18 DownTo 1
{
Rsi고[j+1] = Rsi고[j];
Rsi고Bar[j+1] = Rsi고Bar[j];
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
저[0] = L;
저Bar[0] = 0;
}
Else If 방향[1] == 하락 && 방향 == 하락 Then
{
If Rsi고[1] < Rsi고[0] &&
Rsi고[0][1] - Rsi변동폭 <= RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 > RsiV Then
{
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
If 고[1] < 고[0] &&
고[0] > H Then
{
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
}
}
Else If 방향[1] == 상승 && 방향 == 상승 Then
{
If Rsi저[1] > Rsi저[0] &&
Rsi저[0][1] + Rsi변동폭 >= RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 < RsiV Then
{
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
If 저[1] > 저[0] &&
저[0] < L Then
{
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
}
}
#==========================================#
# 지표식 출력
#==========================================#
If Rsi파동선[1] != Rsi파동선 Then Plot1(파동선); //적당껏 수평이동
Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,고[0],저[0]));
iff( rsi파동선>Rsi파동선[1],magenta,blue);
#상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승
If 저[2] > 저[1] &&
Rsi저[2] < Rsi저[1] Then
{
추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2] + 저[2];
Plot2(추세선);
}
#하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락
if 고[2] < 고[1] &&
Rsi고[2] > Rsi고[1] Then
{
추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2];
Plot3(추세선);
}
2015-09-20
248
글번호 90520
답변완료
타주기 사용 방법
// 60분봉 20일선
AvgValue = Data2(ma(C,20));
추차트는 3분봉이고 보조차트가 60분봉 일때
60분봉의 20일선 이평을 이용하고 싶은데 문법 오류가 납니다.
참고로 AvgValue는 변수 지정이 되어 있어 문제없습니다.
2015-09-20
203
글번호 90519
답변완료
Then 이 걸리고 결과값이 같이 나와요
input : Period(20);
var : k2(0);
k2 = 100 - 100 / (1 + (AccumN(value2, Period) / AccumN(value3, Period)));
if K2 >= 90 Then
var1 = 90;
else K2 <= 10 Then
var1 = 10;
Else
var1 = k2;
plot1(var1);
else K2 <= 10 Then 에서 Then 이 걸린다네요
if K2 <= 10 Then 하니까 결과 값이 10으로 나오는데요
그러나 90 이상은 결과 값이 90 이상으로 표시가 되네요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 값이큰경우
> 안녕하세요
예스스탁입니다.
input : Period(20);
var : k2(0);
k2 = 100 - 100 / (1 + (AccumN(value2, Period) / AccumN(value3, Period)));
if K2 >= 1.5 Then
var1 = 1.5;
else K2 <= -1.5 Then
var1 = -1.5;
Else
var1 = k2;
plot1(var1);
즐거운 하루되세요
> 멋진승부 님이 쓴 글입니다.
> 제목 : 값이큰경우
> 수고하십니다
k2 = 100 - 100 / (1 + (AccumN(value2, Period) / AccumN(value3, Period)));
이 값이 너무 커서 지표로서는 편차가 커요
그래서 1.5 이상의 경우는 1.5로 하고
- 1.5 이하의 경우는 -1.5로 표시하고 싶고
나머지는 그대로 k2 값을 유지하는 방법을 알고 싶네요
감사합니다
2015-09-20
1663
글번호 90518