커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3457
글번호 230811
답변완료
수식 질문드립니다.
1분봉을 씁니다.
아래 식에서 FALSE 조건 추가하고 싶습니다.
전거래일 10시30분 부터 15시30분까지 = 전일 구간
AVERAGE(C2,전일구간) > 0 AND LOWEST(C2,전일구간) >-0.2
이 두조건을 넣고 싶습니다.
이 조건 만족시 당일 거래 금지시키려고합니다.
부탁드리겠습니다.
감사합니다. !!
-----------------------------------------------------
.
.
.
.
.
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
C2 = Data2(c);
# 매수/매도청산
if Tcond == true Then
{
If CROSSUP(C2,0)
Then
{
Buy();
}
.
.
.
.
2021-04-02
857
글번호 147628
답변완료
수식수정좀 부탁드립니다.
투자금액 천만원으로 가정했을때,
아래 매수조건을 바탕으로 분할매수하려고 합니다.
총 7번 매수이며, 비율은 (10%, 10%, 10%, 15%, 15%, 20%, 20%)으로 하며,
매도후엔 기존 매수가 어디까지 진행되었건 상관없이 올매도 하고 다시 첫번째 매수부터 재진행. 반복.
Input : 투자금액(10000000),RSIP(14), P1(5), P2(25), 시작일(20210401),시작시간(224500);
var : value(0),e(0),x(0),count(0),Vma(0), Tcond(false);
var : Rsiv(0);
var1 = ma(C,p1);
var2 = ma(C,p2);
var3 = sar(0.02,0.2);
Rsiv = RSI(RSIP);
if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then
Tcond = true;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
count = count+1;
if sdate >= 시작일 and stime >= 시작시간 Then
Tcond = true;
if Tcond == true then
{
if MarketPosition >= 0 and CrossUp(var1,var2)and Rsiv < 60 and C > var3 Then{
buy("b");
}
if MarketPosition >= 0 and Rsiv > 60 and C < var3 Then{
exitlong("s");
}
}
2021-04-02
983
글번호 147627
답변완료
수식문의드립니다
5분봉 12봉이내 신고가 돌파시 알람신호받고 싶습니다.
혹 키움처럼 차트에 기준선 설정가능하면 이것도 수식부탁드립니다.
수고하세요
2021-04-02
977
글번호 147626
답변완료
문의 드립니다.
주가가 상승이고 기준라인도 상승인데 캔들이 기준라인 아래에 위치하고
윗꼬리를 달면 짧은 하락라인이 게속 발생이 되면서 진행이 되고,
반대로 하락 시에는 기준라인 위에 캔들이 위치하고 아랫꼬리가
발생되면 반대라인이 계속 발생이 됩니다.
역매매가 이루어 지게 되는데, 수정부탁 드립니다.
input: period(30),봉수(2);
Var:선두께(3),상승색(BLACk), 하락색(GREEn),상승세로선색상(red),하락세로선색상(MAGENTA),세로선두께(2);
Var:j(0),T(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),idx(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/;
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](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 = 36 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
//ZZ[j+1] = ZZ[j];
}
LoVal[0] = l;
LoBar[0] = 0;
//ZZ[0] = l;
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,상승색);
Tx = Text_New(date11,time11,Value11,"▼");
#동그라미 색상, 빨강
Text_SetColor(Tx,LGREEn);
Text_SetStyle(Tx,2,1);
Text_SetSize(tx,12);
tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine);
Text_SetStyle(tx,2,1);
Text_SetColor(Tx,LGREEn);
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]);
}
// TL2[0] = TL_New(date21,time21,fr[0],date22,time22,fr[0]);
// TL_SetColor(TL2[0],white);
#TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]);
#TL_SetColor(TL2[1],RED);
#TL_SetStyle(TL2[1], 3);
#TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]);
#TL_SetColor(TL2[2],red);
#TL_SetSize(TL2[2],1);
#TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2));
#Text_SetColor(Tx2[2],BWHITE);
#Text_SetStyle(TX2[2],1,1);
#TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]);
#TL_SetColor(TL2[3],RED);
#TL_SetStyle(TL2[3], 3);
#TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]);
#TL_SetColor(TL2[4],red);
#TL_SetSize(TL2[4],1);
#TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2));
#Text_SetColor(Tx2[4],BWHITE);
#Text_SetStyle(TX2[4],1,0);
TL2[5] = TL_New(date21,time21,fr[5],date22,time22,fr[5]);
TL_SetColor(TL2[5],BLUe);
TL_SetSize(TL2[5],2);
// TL2[6] = TL_New(date21,time21,fr[6],date22,time22,fr[6]);
// TL_SetColor(TL2[6],MAGENTA);
idx = 0;
}
Else
{
If LoVal[0] > l Then
{
LoVal[0] = l;
LoBar[0] = 0;
//ZZ[0] = l;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
// Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" ");
#동그라미 색상, 빨강
// Text_SetColor(Tx,BLUE);
// Text_SetStyle(Tx,1,0);
TL_SetEnd(TL2[0],date22,time22,fr[0]);
TL_SetEnd(TL2[1],date22,time22,fr[1]);
TL_SetEnd(TL2[2],date22,time22,fr[2]);
Text_SetLocation(TX2[2],date22,time22,fr[2]);
TL_SetEnd(TL2[3],date22,time22,fr[3]);
TL_SetEnd(TL2[4],date22,time22,fr[4]);
Text_SetLocation(TX2[4],date22,time22,fr[4]);
TL_SetEnd(TL2[5],date22,time22,fr[5]);
TL_SetEnd(TL2[6],date22,time22,fr[6]);
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
idx = 0;
}
Else
TL_SetEnd(TL,sDate,sTime,C);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 36 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
//ZZ[j+1] = ZZ[j];
}
HiVal[0] = h;
HiBar[0] = 0;
//ZZ[0] = h;
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,하락색);
Tx1 = Text_New(date11,time11,Value11,"▲");
#동그라미 색상, 파랑
Text_SetColor(Tx1,MAGENTa);
Text_SetStyle(Tx1,2,5);
tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2));
Text_SetStyle(tx,2,0);
Text_SetColor(Tx,MAGENTa);
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]);
}
TL3[0] = TL_New(date31,time31,fr[0],date32,time32,fr[0]);
TL_SetColor(TL3[0],REd);
TL_SetSize(TL3[0],2);
#TL3[1] = TL_New(date31,time31,fr[1],date32,time32,fr[1]);
#TL_SetColor(TL3[1],BLUE);
#TL_SetStyle(TL3[1], 3);
#TL3[2] = TL_New(date31,time31,fr[2],date32,time32,fr[2]);
#TL_SetColor(TL3[2],BLUE);
#TL_SetSize(TL3[2],1);
#TX3[2] = Text_New(date32,time32,fr[2],NumToStr(fr[2],2));
#Text_SetColor(Tx3[2],BWHITE);
#Text_SetStyle(TX3[2],1,1);
#TL3[3] = TL_New(date31,time31,fr[3],date32,time32,fr[3]);
#TL_SetColor(TL3[3],BLUE);
#TL_SetStyle(TL3[3], 3);
#TL3[4] = TL_New(date31,time31,fr[4],date32,time32,fr[4]);
#TL_SetColor(TL3[4],BLUE);
#TL_SetSize(TL3[4],1);
#TX3[4] = Text_New(date32,time32,fr[4],NumToStr(fr[4],2));
#Text_SetColor(Tx3[4],BWHITE);
#Text_SetStyle(TX3[4],1,0);
// TL3[5] = TL_New(date31,time31,fr[5],date32,time32,fr[5]);
// TL_SetColor(TL3[5],white);
// TL3[6] = TL_New(date31,time31,fr[6],date32,time32,fr[6]);
// TL_SetColor(TL3[6],cyan);
idx = 0;
}
Else
{
If HiVal[0] < h Then
{
HiVal[0] = h;
HiBar[0] = 0;
//ZZ[0] = h;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
// Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" ");
#동그라미 색상, 빨강
// Text_SetColor(Tx,RED);
// Text_SetStyle(Tx,1,1);
TL_SetEnd(TL3[0],date32,time32,fr[0]);
TL_SetEnd(TL3[1],date32,time32,fr[1]);
TL_SetEnd(TL3[2],date32,time32,fr[2]);
Text_SetLocation(TX3[2],date32,time32,fr[2]);
TL_SetEnd(TL3[3],date32,time32,fr[3]);
TL_SetEnd(TL3[4],date32,time32,fr[4]);
Text_SetLocation(TX3[4],date32,time32,fr[4]);
TL_SetEnd(TL3[5],date32,time32,fr[5]);
TL_SetEnd(TL3[6],date32,time32,fr[6]);
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
idx = 0;
}
Else
TL_SetEnd(TL,sDate,sTime,C);
}
}
idx = idx+1;
TL_SetSize(tL,선두께);
TL_SetSize(tL1,선두께);
TL_SetEnd(TL,sDate,sTime,c);
if T == 1 Then
TL_SetColor(TL,상승색);
Else
TL_SetColor(TL,하락색);
var : VTL(0);
if idx == 봉수 Then
{
// TL_Delete(VTL);//최근것만 표시하고자 할경우 이 내용을 삭제하시면 됩니다.
// VTL = TL_New(sdate,stime,999999999,sDate,stime,0);
// TL_SetColor(VTL,iff(T == -1,상승세로선색상,하락세로선색상));
// TL_SetSize(VTL,세로선두께);
}
2021-04-02
914
글번호 147625
바다가좋아 님에 의해서 삭제되었습니다.
2021-04-02
1
글번호 147624
답변완료
틱검색
5분봉기준
2봉전(5분) 총틱수 대비 1봉전(5분) 총틱수가 절반이내의 종목을검색
부탁드립니다
틱수는 변수로 처리부탁합니다
2021-04-02
827
글번호 147623
답변완료
수식문의 드립니다
현재 macd 지표에서 0을 기준으로 라인이 교차
될때 배경색이 변화 되게 설정을 했는데요.
이상태에서 오후 2시에서 4시엔 배경색 색상이
않변하게 설정하고 싶은데 방법이 있는지 문의드립니다
수고하십시오
2021-04-02
871
글번호 147622
답변완료
함수 문의드립니다.
국내선물 거래하려고 합니다.
함수를 좀 부탁드립니다.
1. 오전 10시까지의 손실이 마이너스 1포인트를 넘지 않을 경우 기존 수식대로 거래가 이루어지도록 하고, 마이너스 1포인트를 넘을 경우 당일 거래를 쉬도록 하는 수식을 부탁드립니다.
2. 오전 10시까지의 손실이 마이너스 100만 원을 넘지 않을 경우 기존 수식대로 거래가 이루어지도록 하고, 마이너스 100만 원을 넘을 경우 당일 거래를 쉬도록 하는 수식을 부탁드립니다.
위 두 함수에서 손실Pt, 손실금액, 기준시각은 외부변수로 처리 부탁 드립니다.
항상 감사드립니다.
2021-04-05
760
글번호 147621
답변완료
문의드립니다.
문의드립니다.
1.
아래의 수식을 이용하여 특정 조건 만족 시 고가 저가 갱신하는 지표를
만들고 싶습니다.
예를 들어
condition1 = HH[2] < HH[1]
condition2 = LL[2] < LL[1]
1,2번 조건 만족 시 HH[1] LL[1] 값을 plot하는데
몇시간 뒤에 1,2번 조건을 새롭게 만족하면
그때 새로운 HH[1] LL[1]으로 plot 하는게 가능할까요?
2. 만약 1번이 구현 가능하다면 해외선물 기준이 아닌
국내 코스피200선물용으로도 수식 부탁드립니다.
------------------------------------------------------
input : ntime(120);
var : S1(0),D1(0),TM(0),TF(0);
var : HH(0),HH1(0),HH2(0),LL(0),LL1(0),LL2(0);
input : ntime(120);
var : S1(0),D1(0),TM(0),TF(0);
var : HH(0),HH1(0),HH2(0),LL(0),LL1(0),LL2(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
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
{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
HH2 = HH[2];
LL2 = LL[2];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
plot1(HH,"최근120분봉고가",WHITE);
plot2(LL,"최근120분봉저가",WHITE);
plot3(HH1,"직전120분봉고가",YELLOW);
plot4(LL1,"최근120분봉저가",YELLOW);
plot5(HH2,"전전120분봉고가",GREEN);
plot6(LL2,"전전120분봉저가",GREEN);
}
2021-04-02
701
글번호 147620