커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3295
글번호 230811
답변완료
수정부탁드립니다.
안녕하세요? 아래와같은 답변 감사히 잘받았습니다.
매매횟수가 적용이안되서 죄송하지만 한번더 검토 부탁드리겠습니다.
횟수에 1회~5회까지 다양하게 적용해봤는데 훨씬많이 나오는 증상입니다.
부탁드리겠습니다. 감사합니다.
안녕하세요
예스스탁입니다.
Input : 단기(5), 장기(20), profit_pt(0.5), loss_pt(0.5), 장종료청산(151000),진입횟수(3);
Variable : ent_position(0),entry(0);
if MarketPosition == 0 Then{
var1 = 0;
ent_position = 0;
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition != MarketPosition[1] and TotalTrades > TotalTrades[1]) then
entry = entry+1;
//If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) or ( C[1]<O[1] and H[1]==O[1] and C>O ) Then {
If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) and ent_position == 0 and entry < 진입횟수 Then {
Buy("매수",AtMarket);
Var1 = NextBarOpen;
ent_position = 1;
}
//If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) or ( C[1]>O[1] and L[1]==O[1] and C<O ) Then {
If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) and ent_position == 0 and entry < 진입횟수 Then {
Sell("매도",AtMarket);
Var1 = NextBarOpen;
ent_position = -1;
}
if PositionProfit >= profit_pt and ent_position<>0 Then{
if ent_position == 1 and C<O Then {
ExitLong("매수청산");
}
if ent_position == -1 and C>O Then {
ExitLong("매도청산");
}
}
SetStopLoss(loss_pt,PointStop);
SetStopEndofday(장종료청산);
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> 안녕하세요?
아래의 수식에서 하루매매횟를 외부변수로 넣고싶습니다.
부탁드립니다.
감사합니다.
Input : 단기(5), 장기(20), profit_pt(0.5), loss_pt(0.5), 장종료청산(151000);
Variable : ent_position(0);
if MarketPosition == 0 Then{
var1 = 0;
ent_position = 0;
}
//If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) or ( C[1]<O[1] and H[1]==O[1] and C>O ) Then {
If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) and ent_position == 0 Then {
Buy("매수",AtMarket);
Var1 = NextBarOpen;
ent_position = 1;
}
//If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) or ( C[1]>O[1] and L[1]==O[1] and C<O ) Then {
If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) and ent_position == 0 Then {
Sell("매도",AtMarket);
Var1 = NextBarOpen;
ent_position = -1;
}
if PositionProfit >= profit_pt and ent_position<>0 Then{
if ent_position == 1 and C<O Then {
ExitLong("매수청산");
}
if ent_position == -1 and C>O Then {
ExitLong("매도청산");
}
}
SetStopLoss(loss_pt,PointStop);
SetStopEndofday(장종료청산);
2020-07-13
1661
글번호 140636
해피오 님에 의해서 삭제되었습니다.
2020-07-13
448
글번호 140624
답변완료
예스랭귀지 오류
예전 편집기로 작성했던 일부 지표를 F4로 검증한 후에 종료하면
그 지표를 더이상 사용할 수 없네요;;
차트에서도 불러올 수 없고 편집기에서도 열리지 않습니다
'파일을 읽을수 없습니다' 라는 오류창이 뜨네요
2020-07-13
2048
글번호 140608
답변완료
수식부탁합니다
아래 두가지 지표식을 하나로 구성해 Gold cross와 Dead Cross 종목검색식 부탁합니다
두가지 지표식에서 공통적으로 plot2 가지고 검색식 부탁합니다
2번지표식 plot2가 1번지표식 plot2를 상승해서 돌파하면 Gold cross
2번지표식 plot2가 1번지표식 plot2를 하락 돌파하면 Dead cross
* 1번지표식
Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0);
Array:len[6](0),VBE_up[6](0),VBE_dn[6](0),
up_chg[6](0),dn_chg[6](0),up_cor[6](0),dn_cor[6](0),
fcstVBE_up[6](0),fcstVBE_dn[6](0);
len[0] = 21;
len[1] = 17;
len[2] = 13;
len[3] = 9;
len[4] = 5;
len[5] = 2;
chng_rt = (C/C[1]-1); //가격 변동률
ma_val = ma(chng_rt,len[0]); //가격변동률의 평균
std_val = Std(chng_rt,len[0]); //가격변동률의 표준편차
dn_rng = ma_val - (std_val * 2);
up_rng = ma_val + (std_val * 2);
rawVBE_up = C * (1 + up_rng); //원시VBE
rawVBE_dn = C * (1 + dn_rng);
for j = 0 to 5 {
VBE_up[j] = wma(rawVBE_up,len[j]); //원시VBE를 가중이평으로 평활화
VBE_dn[j] = wma(rawVBE_dn,len[j]);
if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; //VBE의 변동률
if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1];
}
fcstVBE_up[0] = VBE_up[0];
fcstVBE_dn[0] = VBE_dn[0];
for j = 1 to 5 {
up_cor[j] = Correlation(up_chg[0], up_chg[j],63); //21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도
dn_cor[j] = Correlation(dn_chg[0], dn_chg[j],63);
fcstVBE_up[j] = fcstVBE_up[j-1] * (1+(up_chg[j]*up_cor[j])); //이전값에 상관도와 변동률을 곱해서 계산
fcstVBE_dn[j] = fcstVBE_dn[j-1] * (1+(dn_chg[j]*dn_cor[j]));
}
plot1(fcstVBE_up[0],"상-5",RED); //5봉 뒤로 이동
plot2(fcstVBE_dn[0],"하-5",Black); //5봉 뒤로 이동
if LastBarOnChart then { //마지막봉에서 아래 5봉만 추가로 출력
plot3(fcstVBE_up[5],"상0",RED);
plot4(fcstVBE_up[4],"상-1",RED); //1봉 뒤로 이동
plot5(fcstVBE_up[3],"상-2",RED); //2봉 뒤로 이동
plot6(fcstVBE_up[2],"상-3",RED); //3봉 뒤로 이동
plot7(fcstVBE_up[1],"상-4",RED); //4봉 뒤로 이동
plot8(fcstVBE_dn[5],"하0",BLUE);
plot9(fcstVBE_dn[4],"하-1",BLUE); //1봉 뒤로 이동
plot10(fcstVBE_dn[3],"하-2",BLUE); //2봉 뒤로 이동
plot11(fcstVBE_dn[2],"하-3",BLUE); //3봉 뒤로 이동
plot12(fcstVBE_dn[1],"하-4",BLUE); //4봉 뒤로 이동
}
* 2번지표식
input:N(9),multi(2),Period(63);
Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0);
Array:len[11](0),VBE_up[11](0),VBE_dn[11](0),
up_chg[11](0),dn_chg[11](0),up_cor[11](0),dn_cor[11](0),
fcstVBE_up[11](0),fcstVBE_dn[11](0);
len[0] = 2;
len[1] = 5;
len[2] = 9;
len[3] = 13;
len[4] = 17;
len[5] = 21;
len[6] = 25;
len[7] = 29;
len[8] = 33;
len[9] = 37;
len[10] = 41;
chng_rt = (C/C[1]-1); // 가격 변동률
ma_val = ma(chng_rt,len[N]); // 가격변동률의 평균
std_val = Std(chng_rt,len[N]); // 가격변동률의 표준편차
dn_rng = ma_val - (std_val * multi);
up_rng = ma_val + (std_val * multi);
rawVBE_up = C * (1 + up_rng); // 원시VBE
rawVBE_dn = C * (1 + dn_rng);
for j = 0 to N {
VBE_up[j] = wma(rawVBE_up,len[j]); // 원시VBE를 가중이평으로 평활화
VBE_dn[j] = wma(rawVBE_dn,len[j]);
if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; // VBE의 변동률
if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1];
}
fcstVBE_up[N] = VBE_up[N];
fcstVBE_dn[N] = VBE_dn[N];
for j = N - 1 downto 0 {
up_cor[j] = Correlation(up_chg[N], up_chg[j],Period); // 21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도
dn_cor[j] = Correlation(dn_chg[N], dn_chg[j],Period);
fcstVBE_up[j] = fcstVBE_up[j+1] * (1+(up_chg[j]*up_cor[j])); // 이전값에 상관도와 변동률을 곱해서 계산
fcstVBE_dn[j] = fcstVBE_dn[j+1] * (1+(dn_chg[j]*dn_cor[j]));
}
Var:Size(4);
plot1(fcstVBE_up[N],"상-N",RED,DEF,Size-1); // N봉 뒤로 이동
plot2(fcstVBE_dn[N],"하-N",BLUE,DEF,Size-1); // N봉 뒤로 이동
FixPlotShift(1,-N);
FixPlotShift(2,-N);
if LastBarOnChart then { // 마지막봉에서 아래 N봉만 추가로 출력
plot3(fcstVBE_up[0],"상0",RED,DEF,Size);
if N > 1 then plot4(fcstVBE_up[1],"상-1",RED,DEF,Size); // 1봉 뒤로 이동
if N > 2 then plot5(fcstVBE_up[2],"상-2",RED,DEF,Size); // 2봉 뒤로 이동
if N > 3 then plot6(fcstVBE_up[3],"상-3",RED,DEF,Size); // 3봉 뒤로 이동
if N > 4 then plot7(fcstVBE_up[4],"상-4",RED,DEF,Size); // 4봉 뒤로 이동
if N > 5 then plot8(fcstVBE_up[5],"상-5",RED,DEF,Size); // 5봉 뒤로 이동
if N > 6 then plot9(fcstVBE_up[6],"상-6",RED,DEF,Size); // 6봉 뒤로 이동
if N > 7 then plot10(fcstVBE_up[7],"상-7",RED,DEF,Size); // 7봉 뒤로 이동
if N > 8 then plot11(fcstVBE_up[8],"상-8",RED,DEF,Size); // 8봉 뒤로 이동
plot12(fcstVBE_dn[0],"하0",BLUE,DEF,Size);
if N > 1 then plot13(fcstVBE_dn[1],"하-1",BLUE,DEF,Size); // 1봉 뒤로 이동
if N > 2 then plot14(fcstVBE_dn[2],"하-2",BLUE,DEF,Size); // 2봉 뒤로 이동
if N > 3 then plot15(fcstVBE_dn[3],"하-3",BLUE,DEF,Size); // 3봉 뒤로 이동
if N > 4 then plot16(fcstVBE_dn[4],"하-4",BLUE,DEF,Size); // 4봉 뒤로 이동
if N > 5 then plot17(fcstVBE_dn[5],"하-5",BLUE,DEF,Size); // 5봉 뒤로 이동
if N > 6 then plot18(fcstVBE_dn[6],"하-6",BLUE,DEF,Size); // 6봉 뒤로 이동
if N > 7 then plot19(fcstVBE_dn[7],"하-7",BLUE,DEF,Size); // 7봉 뒤로 이동
if N > 8 then plot20(fcstVBE_dn[8],"하-8",BLUE,DEF,Size); // 8봉 뒤로 이동
FixPlotShift(4,-1);
FixPlotShift(5,-2);
FixPlotShift(6,-3);
FixPlotShift(7,-4);
FixPlotShift(8,-5);
FixPlotShift(9,-6);
FixPlotShift(10,-7);
FixPlotShift(11,-8);
FixPlotShift(13,-1);
FixPlotShift(14,-2);
FixPlotShift(15,-3);
FixPlotShift(16,-4);
FixPlotShift(17,-5);
FixPlotShift(18,-6);
FixPlotShift(19,-7);
FixPlotShift(20,-8);
}
2020-07-13
2080
글번호 140607
답변완료
부탁 드립니다.
도움에 감사 드립니다.
미리 경배로 감사 인사 올립니다.
질문1)
아래 조건1,2)를 동시에 만족하는식
질문2)
아래 조건1,2)를 무시하고 false,true로 입력하여
var1값 전체가 나타 나는 식
(국내주식용으로 사용코자 합니다.)
조건1)
09:00 부터 09:02 까지 var1값을 삭제
조건2)
15:29:부터 15:30 까지 var1값을 삭제
var1=v;
plot1(var1);
2020-07-13
2051
글번호 140606
답변완료
지표
항상 감사합니다
제가 여기까지오다니
늘 쎔의 천재성과 성실하심에 감사감사^^
이번주는 이식때문에 고민 많이 할듯합니다
부탁드릴께요
막상 대입해보니 좀 다르게 나와서
다시부탁드립니다
1)이식을 월봉주봉일봉분봉에 각각 대입해보았고
2)월봉에 나타나는 가중치를
주봉 일봉 분봉에 대입했을때
3)주봉 일봉 분봉에
월봉을 나탸날때 식이 다른가요?
-----------------------------------------------
다시 질문 드립니다
1>월봉에 주봉 가중치
2>주봉에 일봉 가중치
3>일봉에 60분 가중치
큰챠트에 작은 챠트 가중치
4>주봉에 월봉가중치
5>일봉에 주봉월봉가중치
6>60분에 일주월가중치
지표로 부탁드립니다
____________________________
1>~3>큰거에 작은 것
4>~6>작은 것에 큰 것
식이 같다고 생각해서 대입해보았는데
지표값이 달라서 왜 다른지
아니면 제가 같고있는 식이랑 뭐가다른지
알고싶네요
------------------------------
시간이 많이 걸려서 부담이시면
샘플식
1>
4>
보내주시면 풀어볼께요
*제발 식이 동일 하길~~~~
Input : Length1(5),Length2(20);
Var : TLen1(0),TLen2(0);
var : Hma1(0),Hma2(0),Lma1(0),Lma2(0),HLma1(0),HLma2(0);
TLen1 = Ceiling((Length1 + 1) * .5);
TLen2 = Ceiling((Length2 + 1) * .5);
Hma1 = ma(ma(H, TLen1), TLen1);
Hma2 = ma(ma(H, TLen2), TLen2);
Lma1 = ma(ma(L, TLen1), TLen1);
Lma2 = ma(ma(L, TLen2), TLen2);
HLma1 = ma(ma((H+L)/2, TLen1), TLen1);
HLma2 = ma(ma((H+L)/2, TLen2), TLen2);
Plot1(Hma1, "고가삼각가중1");
Plot2(Hma2, "고가삼각가중2");
Plot3(Lma1, "저가삼각가중1");
Plot4(Lma2, "저가삼각가중2");
Plot5(HLma1, "중간삼각가중1");
Plot6(HLma2, "중간삼각가중2");
Plot7(Hma2+abs(Hma2-Lma2), "20고가+진동폭");
Plot8(Lma2-abs(Hma2-Lma2), "20저가-진동폭");
2020-07-13
2111
글번호 140605
답변완료
일목구름대 이동문의
수식1
a=(highest(high,shortPeriod)+lowest(low,shortPeriod)+highest(high,midPeriod)+lowest(low,midPeriod))/4;
a(k)
수식2
b=(highest(high,longPeriod)+lowest(low,longPeriod))/2;
b(k)
지표조건
shortperiod 9
midperiod 26
longperiod 52
k 25
사진처럼 기본일목구름은 그대로두고 현재봉앞으로 미리표현되는부분만 없애고 싶은데요. 위수식은 키움으로 구현한겁니다. 예스수식으로 부탁드립니다.
수평이동으로 할려니 현재구름대까지 옮겨져버려서....
2020-07-13
2551
글번호 140604
답변완료
질문입니다.
1.
-차트A를 띄운다
-차트B를 뛰운다
-차트A의 일정기간 청산손익이 0 이상일때만
(netprofit함수?) 차트B의 새로운 진입이 가능하다
이런 내용이 예스스팟으로 가능할까요 시스템 운용 스탑을 의도함
예스스팟 게시판이 아니니 가능 여부만 알려주셔도 감사하겠습니다.
2. 차트쉐어 설명을 보면 코스피 선물이 아닌 다른 종목도 시스템트레이딩을 할수 있다고 나와있는데 그렇다면 원달러 선물도 시스템이 가능한건가요
2020-07-13
2208
글번호 140603
답변완료
질문부탁드립니다
안녕하세요~~
아래수식의 청산방법을 2종류!로 부탁좀 드립니다
input : 단(50),중(150),장(1200),천(2000);
var : 단기(0),중기(0),구백(0),이천(0);
단기 = ma(c,단);
중기 = ma(c,중);
장기 = ma(c,장);
이천 = ma(c,천)
//////////////////////////////////////////////////////////////
if 중기 /장기 * 100 > 100.10 and
단기 > 중기[1300] and 이천 > 이천[200] Then buy("매수진");
if MarketPosition == 1 Then{
단기 < 중기[1300] and 이천 < 이천[200] Then exitlong("매수청산"); 을
매수신호(체결) 나온후~~~14봉이후부터 매수청산! 적용될수있도록 부탁
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if 중기 /장기 * 100 < 99.90 and
단기 < 중기[1300] and 이천 < 이천[200] Then Sell("매도진");
if MarketPosition == -1 Then{
단기 > 중기[1300] and 이천 > 이천[200] Then ExitShort("매도청산"); 을
매도신호(체결) 나온후~~~14봉이후부터 매도청산! 적용될수있도록 부탁
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
////////////////////////////////////////////////////////////////////
(2번째) 청산!질문
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if MarketPosition == 1 Then{
단기 < 중기[1300] and 이천 < 이천[200] Or
매수신호(체결) 나온후~~~1400봉이후까지 미청산때는
중기 /장기 * 100 > 99.50 Then exitlong("매수청");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if MarketPosition == -1 Then{
단기 > 중기[1300] and 이천 > 이천[200] Or
매도신호(체결) 나온후~~~1400봉이후까지 미청산때는
중기 /장기 * 100 < 100.50 Then exitlong("매도청산");
~~~부탁좀 드립니다~~
2020-07-13
2066
글번호 140601