커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4398
글번호 230811
답변완료
연장선 추세삭제요청
안녕하세요.
귀사의 도움덕분에 항상 감사합니다. ^_^
1.추세선 수식
2.파라볼릭 수식은 오른쪽에서 왼쪽으로 표기(길이 조정가능)
추세선수식 따로/ 파라볼릭 수식 따로 적용하고자 합니다
분리가 되도록 수식 수정을 부탁 드립니다
좋은하루 되세요.
input : af(0.02), maxAF(0.2),추세선두께(1),추세선색1(YELLOW),추세선색2(CYAN),연장선두께(2),연장선색(blue);
input : 텍스트출력(1);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0);
var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0);
var : TL1(0),TL2(0),cnt(0),count(0);
var : TL3(0),TL4(0),TL5(0),TL6(0),tx1(0),tx2(0),tx11(0),tx22(0);
Var : TL11(0),TL22(0);
var1 = CSar(af,maxAF);
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
HH1 = HH[1];
HD1 = HD[1];
HT1 = HT[1];
if LL > 0 Then
{
TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
TL3 = TL_new(HD[1],HT[1],HH[1],sdate,stime,HH[1]);
TL4 = TL_new(HD[1],HT[1],(HH[1]+LL)/2,sdate,stime,(HH[1]+LL)/2);
TL5 = TL_new(HD[1],HT[1],LL,sdate,stime,LL);
TL6 = TL_new(HD[1],HT[1],HH[1]+(HH[1]-LL[1])/2,sdate,stime,HH[1]+(HH[1]-LL)/2);
//추세선 오른쪽 연장설정
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
TL_SetExtRight(TL6,true);
if 텍스트출력 == 1 then
{
Tx11 = Text_New(HD1,HT1,HH1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(HH1,2));
Text_SetStyle(tx11,2,1);
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
}
}
TL11 = TL_New(HD1,HT1,HH1,HD,HT,HH);
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
LL1 = LL[1];
LD1 = LD[1];
LT1 = LT[1];
if HH > 0 Then
{
TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
TL3 = TL_new(LD[1],LT[1],HH,sdate,stime,HH);
TL4 = TL_new(LD[1],LT[1],(HH+LL[1])/2,sdate,stime,(HH+LL[1])/2);
TL5 = TL_new(LD[1],LT[1],LL[1],sdate,stime,LL[1]);
TL6 = TL_new(LD[1],LT[1],LL[1]-(HH-LL[1])/2,sdate,stime,LL[1]-(HH-LL[1])/2);
//추세선 오른쪽 연장설정
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
TL_SetExtRight(TL6,true);
if 텍스트출력 == 1 then
{
Tx22 = Text_New(LD1,LT1,LL1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(LL1,2));
Text_SetStyle(tx22,2,0);
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
}
}
TL22 = TL_New(LD1,LT1,LL1,LD,LT,LL);
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
TL_SetEnd(TL1,HD,HT,HH);
TL_SetEnd(TL11,HD,HT,HH);
if 텍스트출력 == 1 then
{
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
}
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
TL_SetEnd(TL2,LD,LT,LL);
TL_SetEnd(TL22,LD,LT,LL);
if 텍스트출력 == 1 then
{
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
}
}
}
#추세선 두께, 색상
TL_SetSize(TL1,추세선두께);
TL_SetSize(TL11,추세선두께);
TL_SetSize(TL2,추세선두께);
TL_SetSize(TL22,추세선두께);
TL_SetColor(TL1,추세선색1);
TL_SetColor(TL11,추세선색1);
TL_SetColor(TL2,추세선색2);
TL_SetColor(TL22,추세선색2);
#연장선 두께, 색상
TL_SetSize(TL3,연장선두께);
TL_SetSize(TL4,연장선두께);
TL_SetSize(TL5,연장선두께);
TL_SetSize(TL6,연장선두께);
TL_SetColor(TL3,연장선색);
TL_SetColor(TL4,연장선색);
TL_SetColor(TL5,연장선색);
TL_SetColor(TL6,연장선색);
2018-06-18
222
글번호 119838
답변완료
함수요청
함수요청드립니다.
아래 함수를 항셍지수로 거래를 하고자 합니다.
다만 60분봉으로 거래시 진입기준 주문의 생성을 T장시간 중 12시(정오)까지만 하고 포지션이 오버되지 않게 청산은 T+1장 시가에는 강제청산하고자 합니다.
여기서 주문의 생성은 그렇지만 주문생성을 위한 데이터는 T장과 T+1장을 모두 적용하고자합니다.
즉 모든 시세데이터를 신호에 적용하되 실제 주문생성은 T장에서만 거래를 하고 싶습니다.
그런데 아래 수식에서 시간을 지정하여 거래시작과 거래종료로 진입이 발생하는 시간대를 지정해 오버나이트를 하지 않게 당일청산의 시간을 외부변수로 지정하고 싶은데 얼마로 해야 하는지요?
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2);
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 5));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL - TickSize);
2018-06-18
106
글번호 119834
답변완료
예스랭귀지로 검색하려고합니다
안녕하세요
예스랭귀지로 검색하려고하는데 생초보라
질문좀합니다.
1. 거래량이 v , 상승할때의 거래량이 upvol 하락할때는 downvol 인건 알고있습니다
궁금한건 랭귀지로 나만의 검색식을 만들려할때 upv, downvol을 활용하여
식을 만들수있나여?
2. 지표를 새로 만들려면 var1= 수식 으로 알고있습니다.
var1= upvol 아니면 daonvol 이렇게 만들수있나여?
아무튼 제 질문은 upvol, downvol 을 활용하여 검색,지표를 만들수있는지
알고싶습니다
제발 알려주세요
2018-06-18
119
글번호 119828
돌아온스머프 님에 의해서 삭제되었습니다.
2018-06-18
0
글번호 119822
수색대대 님에 의해서 삭제되었습니다.
2018-06-18
19
글번호 119821
답변완료
수식부탁드립니다---------------
var:opc(0),data2opc(0),data3opc(0),sbpbop(0),sscbop(0),hapsb(0),hapss(0);
var:pungsb(0),pungss(0);
opc= opend(0);
data2opc = data2(openD(0));
data3opc = data3(openD(0));
////시가
plot1(opc,"선물시가");
plot2(data2opc,"콜시가");
plot3(data3opc,"풋시가");
////현재가
plot4(c,"선물");
plot5(data2(c),"콜");
plot6(data3(c),"풋");
////선물매수풋매수
sbpbop=(c*250000)-(opc*250000)+((data3(c))*250000*2)-(data3opc*250000*2);
////선물매도콜매수
sscbop=(opc*250000)-(c*250000)+((data2(c))*250000*2)-(data2opc*250000*2);
plot7(sbpbop,"합성매수시가비");
plot8(sscbop,"합성매도시가비");
plotbaseline1(0);
//합성매수시가비,합성매도시가비가 장시작시 "0" 에서시작해야하는데
차트가그렇게안되네요 0에서시작하게부탁드립니다
(제가그림붙이기가잘안되서 저렇게됬네요 질문의차트는 처음 아래차트입니다)
2018-06-18
201
글번호 119804
답변완료
확인 질문
밑의 질문이 너무 길어질거 같아서 여기다 씁니다 어쩌면 먼저 물어봤어야할 것이었나 생각되네요
B = sum(if(C >= O*(1+A/100) or (C(1)*1.02<=H and C>=O) or (C(2)>O(2)*1.01 and C(1)>O(1)*1.01 and C>=O)
, V, if(C <= O*(1-A/100) or (C < O and C(1)*1.03 <= H) or (C(1)*0.99>=C and C < O)
or (C(1)*0.97>=L and C < O) or (H(1)*0.97 > C and O>C) , -V, 0)));
D = valuewhen(1, date == 날짜 and date(1) != 날짜, B(1));
B - D
여기서 B = sum(if(C >= O*(1+A/100) ~~~) B = SUM () 이 뜻이 거래량 차감합을 의미하는데
수식을 예스트레이더에 변형하면 SUM 이 없는 수식인데 어떻게 변형하는것이 맞나요?
2018-06-18
162
글번호 119803
답변완료
지표문의...
1.보조지표 말고 수식으로 만들어서 쓰려고하는 것이 있는데
envelope (30.5) 윗라인 (상한가?) , envelope (30.10) 윗라인 만 지표로 만들 수 있을까요??
둘이 동시에 나타내고 없을때 같이 없애고 싶어요
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2. 파일첨부의 사진처럼 선들의 밑에 색깔표시하는 방법은 없을까요?
밑의 지표가 위의 사진들이구요 과거에 질문했던 것인데 타증권사에서는 지표이름 앞에
일목균형표이름을 넣으면 됬는데 여기서는 어떻게 해야되는지 모르겟네요 한마디로 일목균형표 식의 색채우기입니다
input : AA(5),시작날짜(20180302),종료날짜(20180302);
var : BB(0),DD(0);
BB = BB+ iff(C >= O*(1+AA/100) or (C[1]*1.02<=H and C>=O) or (C[2]>O[2]*1.01 and C[1]>O[1]*1.01 and C>=O)
, V, iff(C <= O*(1-AA/100) or (C < O and C[1]*1.03 <= H) or (C[1]*0.99>=C and C < O)
or (C[1]*0.97>=L and C < O) or (H[1]*0.97 > C and O>C) , -V, 0));
if date == 시작날짜 and date[1] != 시작날짜 Then
DD = BB[1];
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
3. 위의 식에서 절반값을 나타내는 선도 만들고 싶네요 사진의 하늘색 선을 말하는 것인데
밑의 식 1번이 위의 것인데, 2번이 제가 나타내고 싶은 것입니다
1. B = sum(if(C >= O*(1+A/100) or (C(1)*1.02<=H and C>=O) or (C(2)>O(2)*1.01 and C(1)>O(1)*1.01 and C>=O)
, V, if(C <= O*(1-A/100) or (C < O and C(1)*1.03 <= H) or (C(1)*0.99>=C and C < O)
or (C(1)*0.97>=L and C < O) or (H(1)*0.97 > C and O>C) , -V, 0)));
D = valuewhen(1, date == 날짜 and date(1) != 날짜, B(1));
B - D
2. E = B -D;
F = highestsince(1, date == 날짜 and date(1) != 날짜, E);
F/2 ---> 이 선을 말하는 것입니다
2018-06-18
245
글번호 119802
답변완료
문의
#1
주식에 시스템을 적용한 상태에서(가령 005930 삼성전자)
종목코드를 다른 것으로 변경하면(가령 000020 동화약품)
삼성전자에 적용되던 것이 그대로 동화약품으로 적용되는 것입니까?
#2
이 경우 삼성전자에 매수진입한 잔고가 있는 경우
매수청산은 수동으로 해야 하는 것입니까?
#3
Buy("신호명", atlimit, 10000, 10) 으로 설정한 뒤에
1개만 매수체결되고 9개가 매수잔량으로 남은 경우
취소 또는 변경하려면 어떻게 해야 합니까??
#4
IOC 혹은 FOK 주문을 구현할수 있나요??
#5
매수진입하여 잔고가 있는 상태에서
정전이나 인터넷 단선으로 인해 YT를 다시 시작한 경우
매수한 잔고는 손매매로 매수한 것과 같이 취급되나요??
아니면 시스템 다시 적용하면 YT로 자동매도가 가능한가요??
(매수한 정보가 YT에 남아있는지 여부)
(잔고함수 작동하는지 여부)
2018-06-18
189
글번호 119801