커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1691
글번호 230811
아트정 님에 의해서 삭제되었습니다.
2022-03-26
26
글번호 157495
답변완료
합성시스템 중 반대 신호 발생 시 수량 2배, 청산신호에서 진입 금지
안녕하세요.
항상 자세히 알려주셔서 감사드립니다.
두 가지 문의 드리고자 합니다.
1. 매수, 매도 각각 다른 식을 합성시스템을 통해 사용하고 있는데요,
청산 신호가 아닌 다른 식의 반대신호 발생 시 수량 2배로 매매할 수 있나요?
예를 들어, 매수식의 신호로 매수 포지션인 상황에서(청산신호는 발생하지 않은 상황)
매도식의 신호로 매도 신호가 발생하면 동일 수량이기 때문에 기존 매수가 청산됩니다.
청산되지 않고 매도식 신호 발생 시 수량을 2배로 하여
기존 매수 포지션에서 매도 포지션으로
변경될 수 있게끔 하고 싶습니다.
2. 손절청산 신호든 익절청산 신호든 해당 신호에서 매매 진입이 안 되도록 할 수 있나요?
감사합니다^^
2022-03-28
844
글번호 157494
답변완료
부탁드립니다
아래 종목검색 수식에서
halftrend 가 강세 up 인 종목만 검색하려하는데,
검색 결과치를 보면 ht 가 약세 down 인 종목이 같이 검색되어 나오는데
수식 수정 부탁드립니다,
================
input : amplitude(20);
var : trend(0),nextTrend(0),maxLowPrice(0),minHighPrice(0);
var : up(0),down(0);
var : highPrice(0),lowPrice(0),highma(0),lowma(0),ht(0),rsiv(0);
highPrice = Highest(H,amplitude);
lowPrice = Lowest(L,amplitude);
highma = ma(high, amplitude);
lowma = ma(low, amplitude);
if nextTrend == 1 Then
{
maxLowPrice = max(lowPrice, maxLowPrice);
if highma < maxLowPrice and close < iff(isnan(low[1])==true,low,Low[1]) Then
{
trend = 1;
nextTrend = 0;
minHighPrice = highPrice;
}
}
else
{
minHighPrice = min(highPrice, minHighPrice);
if lowma > minHighPrice and close > iff(isnan(high[1])==true,high,high[1]) Then
{
trend = 0;
nextTrend = 1;
maxLowPrice = lowPrice;
}
}
if trend == 0 Then
{
if IsNaN(trend[1]) == False and trend[1] != 0 Then
{
up = iff(IsNaN(down[1]) == true,down,down[1]);
}
else
{
up = iff(IsNan(up[1]) == true, maxLowPrice , max(maxLowPrice, up[1]));
}
}
else
{
if isnan(trend[1]) == False and trend[1] != 1 Then
{
down = iff(IsNan(up[1]) == true, up , up[1]);
}
else
{
down = iff(IsNan(down[1]) == true, minHighPrice ,min(minHighPrice, down[1]));
}
}
ht = iff(trend == 0 , up , down);
if ht == up Then
value1 = 1;
Else
value1 = 0;
Find(value1);
2022-03-25
1033
글번호 157493
답변완료
data manager 질문드려요
1년치 data manager에 있는 data2 data3 두개를
1분봉 종가 기준으로
두개 평균값을 구해야하는데
방법 없을까요?
물론 d3 =data2(c)+data3(c) 이런식으로 처리해서 쓰면 되겠지만
너무 복잡해지고 수정할게 천문학적으로 많아지고 ,
노가다가 극심해져서 그렇습니다.
원하는 그림은 csv로써 data manager에서 data2 로써 읽어들이는겁니다.
------------
안녕하세요
예스스탁입니다.
1
print는 전략실행차트에서만 동작합니다.
시뮬레이션 차트에서는 동작하지 않습니다.
print("data.txt","%.2f",(Data2(c)+data3(c))/2);
2
수식에서 데이타매니저로 직접 보낼방법이 없습니다.
데이타매니저에서 설정하셔야 합니다.
데이타매니저 사용법은 프로그램 사용법 도움말을 참고하시기 바랍니다.
혹은 설정이 잘 안되시면 02-3453-1060으로 전화주셔서
프로그램 담당자에게 문의하시기 바랍니다.
즐거운 하루되세요
> 캣피쉬 님이 쓴 글입니다.
> 제목 : 수식 질문드립니다.
> 참조 data2 , data3을
(data2+data3)/2 처리한후
txt 든 csv 든 보낸후, 종가만 나와도 상관없습니다.
다시 이걸 data manager 로 보낼 방법이 궁금합니다.
(data manager 에서 csv 읽는건 알고 있습니다)
print 하는 방법 있는거같던데, 구체적인 예시 부탁드립니다.
감사합니다.
2022-03-26
941
글번호 157492
답변완료
최근 CCI 신호시점의 H와 L의 값 얻기
최근 CCI 신호시점의 H와 L의 값을 얻고자 하는데-
관련 어떻게 수식을 만들어야 할까요?
var1 = CrossDown(CCI(Period),100);
var2 = CrossUp(CCI(Period),-100);
var3 = ?? // 최근 var1이 발생한 시점의 H 값
var4 = ?? // 최근 var2이 발생한 시점의 L 값
Plot1(var3,"H",red,def,1);
Plot2(var4,"L",blue,def,1);
2022-03-25
847
글번호 157489
답변완료
수식부탁드립니다
아래 수식은 C가 상승시 red color를 유지한채 굵기 변화만 나타내는 수식입니다
Plot1(C,"종가",red,DEF,IFF(C > C[1] ,2,0));
이수식을 base로 C > C[1]일때 red였다가 C = H가 되면 색이 white 가 되는 수식을 부탁드립니다
감사합니다
2022-03-25
986
글번호 157486
답변완료
수식부탁드리겠습니다
input : length(14);
var : vol(0),x1(0),cvol(0),avgv(0),tv(0);
var : h1(0),l1(0),ah(0),al(0),percent(0);
var : x2(0),bc(0),ac(0),cc(0);
var : h2(0),l2(0),vah(0),val(0),volprice(0);
var : ppclr(0),xp(0);
vol = volume;
x1 = vol[0]-vol/avg(vol[0],vol);
cvol = IFf(x1>0,x1,x1*(-1));
avgv = ma(cvol,length);
tv = (cvol/avgv);
h1 = Highest(tv,25);
l1 = Lowest(tv,25);
ah = ma(h1,200);
al = ma(l1,200);
percent = (tv-al)/(ah-al);
//Calcs for Signal Colors///
x2 = open-close/avg(open,close);
bc = vol*x2;
ac = vol*ma(x2,length);
cc = (bc/ac);
h2 = Highest(cc,25);
l2 = Lowest(cc,25);
vah = ma(h2,200);
val = ma(l2,200);
volprice = (cc-val)/(vah-val);
ppclr = iff(volprice>.9 , percent ,IFf(volprice<.1,percent , nan));
Xp = iff(percent>1,percent,Nan);
plot1(percent,"ve",GRAY);
plot2(Xp,"voe",GRAY);
plot3(ppclr,"oes",iff(volprice>0.5,RED,GREEN));
PlotBaseLine1(1);
PlotBaseLine2(0);
항상 답변감사합니다 위의 지표 수식변환 잘 받았습니다
나스닥 개장후 첫봉이 양봉이고 xp>0 이면 매수진입
나스닥 개장후 첫봉이 음봉이고 xp>0 이면 매도진입
청산은 -30틱
거래는 개장후 xp조건에 맞을경우 딱 1회만 하도록 하고싶습니다
첫봉이후에 xp가 계속 0이상이여도 거래는 첫번째 xp가 0 이상일때 1회만 하는수식 부탁드리겠습니다
2022-03-25
1091
글번호 157484
답변완료
문의
RISS에서 검색한 석사논문 결론부분입니다.
첨부파일의 마지막 구절
"손실과 수익의 크기를 비슷하게 설정하고"
이해가 잘 안되는데 쉬운 예를 들어주셨으면 합니다.
손절과 익절을 비슷하게 한다는 말인지요?
전체 리포트에서는 저 부분이 자세히 안나와서요.
2022-03-25
991
글번호 157482
답변완료
지표 (조건 변경) 작성 부탁드립니다.
담당자님, 안녕하세요.
작성해주신 지표를 잘 사용하고 있습니다.
거듭 감사드립니다.
담당자님께서 기존에 작성해 주신 지표를 제가 변형해서 작성해 보려고 시도했는데
잘 되지 않아 담당자님께 다시 부탁드립니다.
아래 수식을 변경된 조건으로 수정 부탁드립니다.
---------------------------------------------------------------------------------
(기존 수식조건)
40일간 각 일봉 시가, 종가(즉, 80개 가격(value)) 중에서 (시가, 종가 구분 없이)
가격(value)이 '(당일 시가 - y)~(당일 시가 + y)'의 범위 내에 있으면서
and 그 가격(value)이 산출된 일봉의 날짜가 당일(D) 부터 가까운 순서로
최근 일자의 5개 가격(value) 선정
* 기존 지표수식은 하단에 기재함
(변경된 수식조건)
여타 조건은 동일하며
가격(value)이 '(당일 시가 + ye - ys)~(당일 시가 + ye + ys)'
또는 '(당일 시가 - ye - ys)~(당일 시가 - ye + ys)' 의 범위 내에 있는 것으로 변경
cf. 예를들면, input을 ye(5), ys(2)로 설정할 경우 가격이 '(당일 시가 + 3)~(당일 시가 + 7)'
또는 '(당일 시가 - 7)~(당일 시가 - 3)' 의 범위 내에 있는 조건으로 적용되는 지표입니다.
---------------------------------------------------------------------------------
담당자님께서 작성해 주신 지표에서
diff[200](0), diff[ii] = abs(value[ii]-DayOpen(0)), diff[tempIndex] = 99999999;를 제외하고
if diff[cnt] < y를
if (DayOpen(0) + ye - ys<=value[ii] and value[ii] <= DayOpen(0) + ye + ys)
or (DayOpen(0) - ye - ys<=value[ii] and value[ii] <= DayOpen(0) - ye + ys)로 바꿔서
입력하거나 일부 조건을 바꿔서 계속 시도해 보았으나
오류만 발생하고 제대로 수정되지 않아 담당자님께 부탁드리게 되었습니다.
위의 변경된 조건으로 지표수식 수정 작성을 부탁드립니다.
항상 답변에 감사드리며 이번에도 미리 감사드립니다.
=======================================================================
기존 지표수식
(Q&A 76330번 담당자님 답변 내용)
안녕하세요
예스스탁입니다.
input : N(40),nth(5),y(5);
var : cnt(0),nthi(0);
Var : tempindex(0),NTHindex(0),ii(0);
Array : value[200](0),diff[200](0), NTHVALUE[10](0);
if Bdate != Bdate[1] Then
{
ii = 0;
For cnt = 1 to N
{
ii = ii+1;
value[ii] = DayOpen(cnt);
diff[ii] = abs(value[ii]-DayOpen(0));
ii = ii+1;
value[ii] = DayClose(cnt);
diff[ii] = abs(value[ii]-DayOpen(0));
}
For nthi = 1 to nth
{
tempIndex = -1;
For cnt = 1 to N*2
{
if diff[cnt] < y then
{
tempIndex = cnt;
cnt = N*2+1;
}
}
if tempIndex != -1 Then
{
NTHVALUE[nthi] = value[tempIndex];
diff[tempIndex] = 99999999;
}
Else
{
NTHVALUE[nthi] = Nan;
}
}
}
plot1(NTHVALUE[1]);
plot2(NTHVALUE[2]);
plot3(NTHVALUE[3]);
plot4(NTHVALUE[4]);
plot5(NTHVALUE[5]);
즐거운 하루되세요
==========================================================================
2022-03-25
945
글번호 157479