커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6540
글번호 230811
답변완료
수식부탁드립니다
수고하십니다 ^^
If 매수조건 == true then
Buy("매수", AtLimit, C);
If 청산조건 == true then
ExitLong("매수청산", AtStop, C);
위와 같은 수식에서
매수신호로 진입하여 연속 3번 익절하면 4번째 매수신호는 건너띄고(4번째 청산신호까지)
5번째 매수신호부터 진입하여 또 다시 3번 익절을 반복하게 하려고 합니다.
만일, 중간에 매도신호가 나오면 곧바로 매도진입(4번째 신호 포함) 하구요.
매도진입하면 매도수익 카운트시작
또는
4번째신호는 미진입하고 4번째신호발생봉으로부터 10봉 이후
발생 신호부터 진입을 허용
감사합니다 ^^
2015-09-21
154
글번호 90524
답변완료
질문...
건의사항입니다
현재 예스트레이더는 참조종목의 기본종목으로 하면
종목별 개인별 순매수량,외국인 순매수량은 참조종목이 있는데
기관들은 세분화되어있습니다. 기관계를 알기위해선 세분화된 참조종목들을 다 넣어야하는데
너무 차트가 많아지고 번거로운데 기관계를 따로 참조종목으로 만들어 주실수는 없는지요?
2015-09-20
159
글번호 90523
답변완료
부탁드립니다
투자 주체별 옵션 수급에서..
개인:(콜매수금액 - 풋매수금액)*10,0000 / (등가양합)*50
기관:
외인;
동일하게 3개 수식을 부탁 드립니다
감사합니다 구벅
※ 콜,풋 모두 금액은 단위가 억 입니다..
이를테면 50억(콜)30억(풋) 이라면 ( 50 - 30 ) * 10000 으로 합니다
2015-09-20
166
글번호 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
183
글번호 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
200
글번호 90520
답변완료
타주기 사용 방법
// 60분봉 20일선
AvgValue = Data2(ma(C,20));
추차트는 3분봉이고 보조차트가 60분봉 일때
60분봉의 20일선 이평을 이용하고 싶은데 문법 오류가 납니다.
참고로 AvgValue는 변수 지정이 되어 있어 문제없습니다.
2015-09-20
167
글번호 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
1616
글번호 90518
답변완료
부탁드립니다
주야간복합챠트에서 야간장 시가 고기.저가,.종가 수식선과(시가.고가.저가.종가
)글씨가 챠트상에 나타나게 부탁드립니다
2015-09-19
179
글번호 90517
답변완료
부탁드립니다.
1. 아래 지표가 영업일 변경시간을 기준으로 당일데이터로만 계산되었는데 당일데이터로 계산되지 않도록 부탁드립니다.
2. 아래 지표를 캔들위에 끌어올려 "양쪽에 표시"로 넣어서 상단밴드2 와 하단밴드2 에 캔들이 부디칠때 소리가 나게 하고싶습니다.
소리는 두가지로 제가 넣을 수 있도록 우선 기본 소리로 부탁드립니다.
3. 아래 두개의밴드 상하단밴드와 상단하단밴드2 의 값을 알고싶습니다.
감사합니다.
var : R1(0),R2(0);
var : S1(0),S2(0);
var : sumi(0),sumC(0),sumH(0),sumL(0);
if Bdate != Bdate[1] Then{
sumi = 0;
sumH = 0;
sumL = 0;
sumC = 0;
}
sumi = sumi+1;
sumH = sumH+H;
sumL = sumL+L;
sumC = sumC+C;
var1 = sumH/sumI;
var2 = sumL/sumI;
var3 = sumC/sumI;
R1 = var1 + 0.25*(dayhigh(1)-daylow(1));
S1 = var2 - 0.25*(dayhigh(1)-daylow(1));
R2 = var1 + 0.5*(dayhigh(1)-daylow(1));
S2 = var2 - 0.5*(dayhigh(1)-daylow(1));
plot1(var1,"H 당일중심가");
plot2(var2,"L 당일중심가");
plot3(var3,"C 당일중심가");
Plot4(R1, "상단밴드");
Plot5(S1, "하단밴드");
Plot6(R2, "상단밴드2");
Plot7(S2, "하단밴드2");
2015-09-21
179
글번호 90516