커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1620
글번호 230811
답변완료
추세선 위로 이동
input : Period(10),선두께(1);
Var:상승색(red), 하락색(blue);
input : 바닥상1(2),바닥하1(0),바닥상2(2),바닥하2(0),봉상1(0),봉하1(1),틱1(0),틱2(1);
Var:j(0),T(0),txx(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),TL9(0),idx(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
Plot1(0);
r[0] = 0;
r[1] = 2;
r[2] = 3.;
r[3] = -1;
r[4] = -2.;
r[5] = 1;
r[6] = 0.5;
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
if hival[0] <= hival[1]+PriceScale* 봉상1 and hival[0] >= hival[1]-PriceScale*봉하1 Then
{
Txx = Text_New(sDate,sTime,value11+PriceScale*2,"●");
Condition99 = true;
Text_SetColor(Txx,Blue);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,10);
}
Txx = Text_New(date11,time11,Value11+PriceScale*1,"●");
Condition99 = true;
Text_SetColor(Txx,Cyan);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,35);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
Condition1 = False;
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 and
LoVal[1] <= Loval[2]+PriceScale*바닥상2 and LoVal[1] >= Loval[2]-PriceScale*바닥하2 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Magenta);
TL_SetSize(TL9,0.5);
Tx =Text_New(sDate,sTime,value11-PriceScale*3,"●");
Condition99 = true;
Text_SetColor(Tx,Magenta);
Text_SetStyle(Tx,2,2);
Text_SetSize(tx,25);
}
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Red);
TL_SetSize(TL9,0.5);
Tx = Text_New(sDate,sTime,value11-PriceScale*3,"●");
Condition99 = true;
Text_SetColor(Tx,Red);
Text_SetStyle(Tx,2,2);
Text_SetSize(tx,25);
}
if Condition99 == true and Loval[0] >= Loval[1]-PriceScale*틱1 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
}
}
TL_SetSize(TL1,선두께);
차트와 안 겹치게, 추세선을 위로 5틱 올려주세요. 감사합니다.
2022-11-23
1231
글번호 164046
답변완료
수식부탁합니다
가급적이면 외부변수를 써 주시면 감사하겠습니다
1.20일 이평에 걸치는 20일 이평보다 큰 양봉에 매수
20일 이평붕괴시 청산
단,20일 이평에 걸리는 첫봉을 기준으로 5분동안 2번만 반복하라
2.시장가 진입,청산 함수가 있나요?
3.특정상황에서 매수진입금지 시킬수 있는 함수가 있나요?
4."60일선과120일선이 역배열된후 30캔들 이내"라는 수식을 알려주세요
5."5일,20일정배열이 2번째라면"라는 수식 부탁합니다
6."5일,20일정배열 이후 역배열이라면" 수식 부탁합니다
감사합니다.^^ 꾸벅
2022-11-23
903
글번호 164045
답변완료
지표문의에요.
혹시 26일 이후의 날짜에 수직선을 차트에 표시해주는 지표수식이 있을까요?
예를들어 오늘이 11월 1일이면 11월 26일의 날짜에 차트에 수직선을 표시해 주는 거에요.
일목균형표의 선행지표를 쓰기때문에 앞으로 26일 이후가 언제쯤인지 알고싶은데
차트에서 바로바로 확인할수가 없어서 혹시 가능한지 여쭤보고 싶어요.
도구의 수직선은 제가 앞으로 26일 이후가 언제인지 계산해서 수직선을 그어야 하는데
그게 너무 불편해요..ㅜ
이게 안된다면 앞으로 26일 이후를 쉽게 확인가능한 아무지표라도 만들어 주실수 있나요?
2022-11-23
716
글번호 164044
회원 님에 의해서 삭제되었습니다.
2022-11-23
36
글번호 164043
답변완료
틱봉갯수
감사합니다.
아래 수식은
전일 5분주기 봉발생갯수 중의 최고갯수를 넘어서는
당일 현재봉갯수에서 종가선을 표시한 것입니다.
이것을 다음과 같이 변환하여 주시기 바랍니다.
1. 전일 동시간대비 봉발생갯수의 최고갯수를 넘어서는 당일 동시간대 현재봉갯수에 종가선 표시
2. 전전일 동시간대비 봉발생갯수의 최고갯수를 넘어서는 당일 동시간대 현재봉갯수에 종가선 표시
input : ntime(5);
var : S1(0),D1(0),TM(0),TF(0),B(0);
var : idx(0),idx1(0),idx2(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
var1 = 0;
value1 = 0;
value11 = value1[1];
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
B = B+1;
idx = 0;
idx1 = idx[1];
idx2 = idx1[1];
}
idx = idx+1;
if idx > value1 Then
value1 = idx;
if value11 > 0 and CrossUp(idx,value11) Then
var1 = C;
if var1 > 0 Then
Plot1(var1);
Else
NoPlot(1);
}
2022-11-23
498
글번호 164042
회원 님에 의해서 삭제되었습니다.
2022-11-23
50
글번호 164041
답변완료
진입되지 않는날 진입관련문의
안녕하세요
제가 작성한수식에서 진입이안되는 날이있다면
기존수식에서 매수매도 로직이만족못했다는 의미로
생각되는데 이럴경우 새로운 로직추가로
진입하는날을 늘리고 싶습니다
이경우 기존진입로직과 구분하거나
충돌되지 않도록 하는 방법이있을까요?
시스템식이 아니더라도 가능한방법이있으면
알려주세요
2022-11-23
633
글번호 164040
답변완료
문의드립니다.
Input : shortPeriod(12), longPeriod(26), Period(14);
Var : MACDV1(0),MACDV2(0), RSIV(0);
MACDV1 = data2(MACD(shortPeriod, longPeriod));
RSIV= data2(RSI(Period));
If CrossUP(MACDV1,0) Then
{
Buy("b");
}
If data2 (CrossDown(RSIV, data2(70))) Then
{
ExitLong("EL");
}
이렇게 했는데 차트상 data2에서 MACD 상향 돌파때 매수는 잘 해주는데, RSI는 크게 올라간다음 70 이하고 떨어질 때는 매도 하고, 조금 올라갔다가 70이하고 떨어질 때는 매도 안하고 넘어가는데 왜그럴까요?
혹시 참고차트를 써서 그렇다고 하면 이를 해결할 방법은 없을까요?
추가 질문.
다시 확인해보니 전략창에서 data2 의 그래프는 RSI가 과매수로 그래프가 나오는데, 핸드폰으로 차트를 확인해보니, RSI가 70에 근접은 하지만 과매수로 뚫고 나오지는 못하네요.
이건 어떤 이유일까요?
2022-11-23
802
글번호 164039
답변완료
피라미딩 전략별 진입횟수2
답변 수식으로
- 피라미딩 : 다른 진입 신호만 허용 체크
- 손절 적용
- d2 (0.5), d3(0.5), d4(0.5) 적용
위 조건을 주고 시뮬레이션 한 결과가 첨부파일입니다.
a는 손절 후 진입이 없어야 하는데 3번을 진입하고 있습니다.
b는 손절 후 2번까지 진입해야는데 3번을 진입하고 있습니다.
진입 제한이 제어되지 않고 있습니다.
살펴주십시요.
************************************************************************
안녕하세요
예스스탁입니다.
input : d2(1500);
input : d3(3000);
input : d4(2000);
var : cnta(0),cntb(0),cntc(0);
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "a" Then
cnta = cnta+1;
if LatestEntryName(0) == "b" Then
cntb = cntb+1;
if LatestEntryName(0) == "c" Then
cntc = cntc+1;
}
}
Else
{
cnta = 0;
cntb = 0;
cntc = 0;
}
if data2(c>LowD(0)+d2) and cnta < 1 Then
Buy("a");
if data3(c>LowD(0)+d3) and cnta < 2 Then
Buy("b");
if data4(c>LowD(0)+d4) and cnta < 3 Then
Buy("c");
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 문의
> 아래 수식은
1. 다른 진입신호만 허용으로 운용하는 피라미딩 수식입니다.
2. a,b,c 순서 상관없이 진입합니다.
3 .데이트레이딩 입니다.
그런데
a 진입 후 손절이나 트레일링스탑 후 다시 a가 들어갈 수 있는 수식입니다.
b 진입 후 손절이나 트레일링스탑 후 다시 b가 들어갈 수 있는 수식입니다.
c 진입 후 손절이나 트레일링스탑 후 다시 c가 들어갈 수 있는 수식입니다.
요청내용
a 이름으로 진입하면 2번째 진입은 없습니다.(a는 1번까지 진입 허용)
b 이름으로 진입하면 3번째 진입은 없습니다.(b는 2번까지 진입 허용)
c 이름으로 진입하면 4번째 진입은 없습니다.(c는 3번까지 진입 허용)
위 요청내용을 만족하는 수식 추가바랍니다.
***************************************************************************
input : d2(1500);
input : d3(3000);
input : d4(2000);
if data2(c>LowD(0)+d2) Then
Buy("a");
if data3(c>LowD(0)+d3) Then
Buy("b");
if data4(c>LowD(0)+d4) Then
Buy("c");
2023-06-22
851
글번호 164038