커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4726
글번호 230811
답변완료
추적후이익실현
# 추적청산
input : AtrMult(12), AtrPeriod(14);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+1);
PosLow = Lowest(L,BarsSinceEntry+1);
If MarketPosition == 1 Then
sell("ATR1", AtStop, PosHigh - ATRVal);
If MarketPosition == -1 Then
buy("ATR2", AtStop, PosLow + ATRVal);
위수식후 최대수익대비하락이익실하면 다음추적신호안됨니다
나올수있게 수식부탁합니다.
예. 6p이후3p 하락하면 이익실현하고 다음추적신호가나오게 부탁합니다.
2015-11-19
146
글번호 92562
dandy 님에 의해서 삭제되었습니다.
2015-11-19
0
글번호 92559
답변완료
부탁드림니다
data2 > 0 and data3 < 0 파랑 막대기
data2 < 0 and data3 > 0 빨간 막대기
지표로 쓰고 싶습니다,
2015-11-19
156
글번호 92553
답변완료
문의 드립니다.
안녕하세요.
일전에 당일 거래로만 계산한 OBV 10, 20 이평선을 부탁 드렸습니다.
알려주신 수식이 계산한 내용과 달라서 찬찬히 살펴보고 수정을 했습니다.
당일 2번 째 봉부터 계산을 하기 때문에 idx를 -1를 줘서 1부터 시작하게 했구요.
OBVv = OBVv + Volume;
OBV가 계속 누적이 되길래 OBVv = OBVv[1] + Volume; 이렇게 수정했습니다.
문제는 10개의 봉이 진행하고 11번 째 봉에서 부터는 맨 앞의 obv를 탈락시키고 이평값으로 나누어야 하는데 수식을 잘 모르겠습니다.
수식 살펴보시고 수정 부탁 드립니다.
input : P1(10),P2(20);
var : OBVV(0),idx(0),sum(0),mav1(0),mav2(0);
If date != date[1] Then{
OBVV = 0;
sum = 0;
idx = 0;
}
idx = idx+1;
if date == date[1] Then{
If Close[0] > Close[1] Then
OBVv = OBVv + Volume;
If Close[0] < Close[1] Then
OBVv = OBVv - Volume;
}
sum = sum+OBVv;
if idx < P1 Then
mav1 = sum/idx;
Else
mav1 = AccumN(Obvv,P1)/P1;
if idx < P2 Then
mav2 = sum/idx;
Else
mav2 = AccumN(Obvv,P2)/P2;
plot1(OBVv);
plot2(mav1);
plot3(mav2);
==============================================
input : P1(10),P2(20);
var : OBVV(0),idx(0),sum(0),mav1(0),mav2(0);
If date != date[1] Then{
OBVV = 0;
sum = 0;
idx = -1;
}
idx = idx+1;
if date == date[1] Then{
If Close[0] > Close[1] Then
OBVv = OBVv[1] + Volume;
If Close[0] < Close[1] Then
OBVv = OBVv[1] - Volume;
}
sum = sum+OBVv;
if idx < P1 Then
mav1 = obvv/idx;
Else
mav1 = AccumN(Obvv,P1)/P1;
if idx < P2 Then
mav2 = obvv/idx;
Else
mav2 = AccumN(Obvv,P2)/P2;
plot1(OBVv,"OBV");
plot2(mav1,"10이평");
plot3(mav2);
3527 3527 1 3527.00
2930 6457 2 3228.50
1879 8336 3 2778.67
2274 10610 4 2652.50
-1205 9405 5 1881.00
0 9405 6 1567.50
1121 10526 7 1503.71
-1451 9075 8 1134.38
-913 8162 9 906.89
443 8605 10 860.50
834 5912 10 591.20
-886 2096 10 209.60
588 805 10 80.50
------------------------------------------
OBV 10봉전까지 당일 OBV 10 이평
누적OBV
2015-11-19
192
글번호 92552
답변완료
문의드려요
1. N일전에 상한가를 한번이라도 터치한 적이 있는 종목을 찾고, 각 종목의 N일전의 1분봉 차트를 얻고 싶습니다. 가능할까요?
2. N일전에 14시에서 15시 사이에 상한가를 한번이라도 터치한 적이 있는 종목을 찾고, 각 종목의 N일전의 1분봉 차트를 얻고 싶습니다.
매번 감사드립니다.
2015-11-19
183
글번호 92549
답변완료
문의
아래수식 문제점이 먼가요?
sto 지표주기 100,100,40 이 매수일때 sto 지표주기 10,5 에서 매수진입 매도청산
sto 지표주기 100,100,40 이 매도일때 sto 지표주기 10,5 에서 매도진입 매수청산
sto 지표주기 10,5 에서 진입보유시 지표주기 100,100,40 신호바뀔시 무조건청산
하려고 하는데 신호가 안나오내요???
input:b_time1(000000),e_time1(240000),목표청산1(3), stoK_p11(100),stoK_p12(100),stoK_p13(40),sto1(10),sto2(5),
ma_p11(35),ma_p12(15),ma_p13(25),ma_p14(300),ma_p15(50),ma_p16(30),ma_p17(55);
Var:stoK(0),stoD(0),TRIXv(0),TRIXsig(0),stokk(0);
stokk = StochasticsK(sto1,sto2);
If b_time1 <= Time and Time <= e_time1 Then
{
stoK = StochasticsK(stoK_p11,stoK_p12);
stoD = StochasticsD(stoK_p11,stoK_p12,stoK_p13);
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매수" or EntryName(1) == "매수2" or EntryName(1) == "매수3") and
MarketPosition == 0) Then
if countif(stokk>stokk[1],2) == 1 and stokk[1] < 10 Then
buy("b매수");
if countif(stokk<stokk[1],2) == 1 and stokk[1] > 90 Then
exitlong("b매도");
# Buy("매수",AtMarket);
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매도" or EntryName(1) == "매도2" or EntryName(1) == "매도3") and
MarketPosition == 0) Then
if countif(stokk<stokk[1],2) == 1 and stokk[1] > 90 Then
exitlong("s매도");
if countif(stokk>stokk[1],2) == 1 and stokk[1] < 10 Then
buy("s매수");
# Sell("매도",AtMarket);
}
SetStopProfittarget(목표청산1);
}
2015-11-19
168
글번호 92545
답변완료
문의드립니다.
지금까지 친절하게 답변해주신 식을 바탕으로 질문 드립니다.
N일전의 14시 50분의 종가가 N+1일 전의 종가보다 15퍼센트 상승했으면서 상한가가 아닌 종목을, N일전의 종가의 거래량과 함께 찾고 싶습니다. 상한가폭이 30퍼센트로 확대된 20150615부터 찾으려고 합니다. 다음의 식이 맞는지 궁금합니다. 감사합니다.
input : N(2);
var : cnt(0);
var : 상한가(0),uplimit(0),cnt(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
Array : V1[20](0),V2[20](0);
Array : upv[100](0),DD[100](0);
if date != date[1] Then{
V1[0] = 0;
V2[0] = 0;
for cnt = 1 to 19{
V1[cnt] = V1[cnt-1][1];
V2[cnt] = V2[cnt-1][1];
}
}
if stime == 144500 Then
V1[0] = C;
if stime == 150000 Then
V2[0] = m;
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
upv[0] = 상한가;
if date != date[1] Then{
DD[0] = sdate;
for cnt = 1 to 300{
upv[cnt] = upv[cnt-1][1];
DD[cnt] = DD[cnt-1];
}
}
if V1[N] > 0 and upLimit[n] > 0 and V1[N] >= DayClose(N+1)*1.15 and V1[N]<upLimit[n]
and dd[n] >=20150615 then
find(V2[N]);
2015-11-19
200
글번호 92542
답변완료
문의
인디게이트로 실시간으로 시스탬신호발생시 발생한 위치를 엑셀 셀 위치에 실시간으로 신호가 발생한 위치를 실시간으로 표시할수있는지요 수식좀 부탁드립니다
2015-11-19
161
글번호 92541
답변완료
일정시간 경과 후
아래에 관련 된 수식과 함수에 대하여 도움주시면 감사 하겠습니다.
가. S & P 500 지수선물에서
!. 영업일시작(현지시각 17:00:00) 후 첫번째 진입 신호 이후 부터 발생 되는
반대방향의 진입신호는 일정시간(분) 경과후 발생 하도록 하기 위한 수식
2. 일봉차트상의 직전영업일 종가의 표시(현지시각 16:00:00)
분봉차트상의 직전영업일 종가의 표시(현지시각 16:00:00)
틱 차트상의 직전영업일 종가의 표시(현지시각 16:00:00)
나. 일봉차트의 시스템성능보고서상에는 체결시각의 표시가 없는데 일봉차트에서 체결시각을 알 수있는 방안이 있나요?
다. NO.45073 에 추가질문 있습니다. 답변 부탁 합니다.
2015-11-19
159
글번호 92540