커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4670
글번호 230811
답변완료
부탁 드립니다.
항상 정확한 답변으로 도움 주셔서 감사 드립니다.
plot11로 그려지는 "수평1"선이
가격 차트에서 dayhigh위치에 그려지지 않고 있습니다.
해결 방법이 있겠는지요?
(또는 "종가+지정틱수" 위치)
수식)
Input: N1(240);
var : TL1(0);
var : S1(0),S2(0),T(0),TM(0);
var : TF1(0),cnt1(0);
var1 = dayhigh;
TL_Delete(TL1);
TL1 = TL_New(sdate[1],stime[1],var1,sdate,stime,var1);
TL_SetExtLeft(TL1,true);
//TL_Delete(TL1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);//8시에 해당하는 TimeToMinutes
T = 1;
}
if date != date[1] and Bdate == Bdate[1] Then{
S2 = 1440-S1;
T = 2;
}
if T == 1 then
TM = TimeToMinutes(stime)-S1;
if T == 2 Then
TM = TimeToMinutes(stime)+S2;
TF1 = TM%N1;
if Bdate != Bdate[1] Then
cnt1 = 0;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then{
cnt1 = cnt1+1;
}
if cnt1 == 1 Then
plot11(TL1,"수평1",blue,def,1);
if cnt1 == 2 Then
plot11(TL1,"수평1",magenta,def,1);
if cnt1 == 3 Then
plot11(TL1,"수평1",blue,def,1);
if cnt1 == 4 Then
plot11(TL1,"수평1",magenta,def,1);
if cnt1 == 5 Then
plot11(TL1,"수평1",blue,def,1);
if cnt1 == 6 Then
plot11(TL1,"수평1",magenta,def,1);
2016-02-24
171
글번호 95722
답변완료
부탁드립니다 ㅠ
얼른 배워서 귀찮게 자꾸 질문 드리지 않겠습니다. ㅜ
------------------------------------------------
참조데이터에 있는 'kp개인 순매수 금액' 같은 data2를 진입기준으로 삼고 싶습니다.
예를 들어 당일 '개인순매수금액'data의 30분봉 첫봉이 양봉이면 선물매수로 진입,
'개인순매수금액'data의 30분봉 첫봉이 음봉이면 선물매도로 진입..
요런거 가능 할 까요, 부탁드립니다.
-----------------------------------------------
아 그리고 이것은 다른 질문인데요 전에 알려주신걸로 공부해보고 있는데,
시초가 기준으로 n봉진입식입니다
input : dix(4);
# Entry
//n번째 봉에서 현재가가 시초가보다 크면 매수, 작으면 매도
if dayindex == dix Then {
if C > dayOpen(0) && bids > asks then
buy();
if C < dayOpen(0) && bids < asks Then
sell();
}
그런데, 만약 n번째 봉이 시초가와 같으면 진입이 아예 안되더군요,
그래서 n번째 봉이 시초가와 같으면 다음번 봉으로 판단해서 진입한다 를 넣으려면 어떻게 하나요?( 그 다음봉도 시초가와 같으면 다다음봉으로 연장되는거 맞겠죠?)
-----------------------------------------------------------
항상 노고에 감사드립니다. 복 많이 받으세요.
2016-02-23
123
글번호 95721
답변완료
문의드립니다
17시 부터 18시 까지 2회 매매제한
18시 부터 19시 까지 2회 매매제한
기존 시스템에 위와같은 조건을추가하고 싶습니다
2016-02-23
103
글번호 95718
답변완료
문의드립니다
안녕하세요~
해외선물 데이시스템을 만들고 있는데
진입 시작시간 090000으로 하고 포지션있을시 강제 청산시간을 050000으로 하여 만들었어요
그런데 청산은 다음날 새벽5시에 잘 청산되는데
문제는 진입이 밤 12시 이후로 발생하지 않습니다
이 문제 해결방안을 알려주세요~
2016-02-23
104
글번호 95717
답변완료
수식변환 부탁드립니다..
메타4 수식인데 예스로 변환 부탁드립니다. 아래 답변해 주신것중에 비슷한 내용이 있긴한데
지식이 없다 보니까 어렵네요. 부탁드립니다.
아래 답변해주신 수식도 올립니다.
var : LoL(0),NewH(0),box1(false),ii(0),TOP(0),UND(0);
LoL=iff(L==LOWEST(L,5),L,iff(L[1]==LOWEST(L,5),L[1],
IFF(L[2]==LOWEST(L,5),L[2],iff(L[3]==LOWEST(L,5),L[3],
iff(L[4]==LOWEST(L,5),L[4],0)))));
if H>HIGHEST(H,5)[1] Then{
NewH = H;
ii = 0;
}
box1=HIGHEST(H,3) < HIGHEST(H,4);
ii = ii +1;
if ii == 4 AND box1==true Then
TOP = NewH;
if ii == 4 AND box1==true Then
UND = Lol;
plot1(TOP);
plot2(UND);
변환해주실 수식
LowL:=If(Low=LLV(Low,5),Low,If(Ref(Low,1)=LLV(Low,5),Ref(Low,1), If(Ref(Low,2)=LLV(Low,5),Ref(Low,2),If(Ref(Low,3)=LLV(Low,5),Ref(Low,3), If(Ref(Low,4)=LLV(Low,5),Ref(Low,4),0)))));
NewH:=ValueWhen(1,High>Ref(HHV(High,5),1),High);
box1:=HHV(High,3)<HHV(High,4);
box2:=ValueWhen(1,BarsSince(High>Ref(HHV(High,5),1))=3 AND box1=true,NewH);
box3:=ValueWhen(1,BarsSince(High>Ref(HHV(High,5),1))=3 AND box1=true,LowL);
TopBox:=box2;
BottomBox:=box3;
TopBox;
BottomBox;
Ht:=If(Cross(HHV(H,4)=Ref(H,3),.9)=1,Ref(H,3),PREV);
Top:=If(Ht>Ref(Ht,1),Ht,PREV);
Lt:=If(Cross(HHV(H,4)=Ref(H,3),.9)=1,L,PREV);
Bot:=If(Lt<Ref(Lt,1),Lt,PREV);
Top;
Bot
2016-02-23
152
글번호 95716
답변완료
이동평균 등락비교
오늘도 기초적인 질문 드립니다.
주가지표 중에 이동평균 등락비교라는 것이 있는데 이것은 어떤 경우에 쓸 수 있나요?
첫번째 조건은 기본 설정값으로 본다면 '0전 5일 이평 < 10전 20일 이평'인데, 이것이 무엇을 의미하는 지, 어떤 상황에서 사용할 수 있는지 이해가 안됩니다.
마찬가지로 두번째 조건 또한 이해가 안되네요.
가능하시다면 실제 상황으로 예를 좀 들어주시면 감사하겠습니다.
2016-02-23
117
글번호 95714
답변완료
수식 문의 드립니다.
매수: 20개 봉중이전 최저점대비 10% 상승시 매수
매도:20 개 봉중 이전 최고점대비 10% 하락시 청산
매수점 을 하락시 0.01 point 아래에서 청산 (옵션식)
2016-02-23
112
글번호 95713
스팀 님에 의해서 삭제되었습니다.
2016-02-23
37
글번호 95712
답변완료
문의드립니다.
과장님 ..
오늘 만들어주신 검색식과 어제만들어주신 추세선과 차이가 나는듯합니다.
해서 원하는 종목이 검색이 안되네요.
시가가 1순위에 상하 3.5% 근접한 종목 검색식으로 변경했는데 검토부탁드립니다.
기간은 120봉이고 그림의 종목은 칩스앤미디어입니다.
그리고 어제 만들어주신 추세식중 지정된 봉수내에 최고가(h)일때부터 계산되도록
수정 부탁드립니다.
감사합니다.
### 추세식(3순위는 제외했습니다)---선굵기 변경은 적용이 않되네요~
input : N(60),구간수(12),굵기(3);
var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0);
Array : RR[12](0),VV[12](0);
Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0);
Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0);
var : TL1(0),TL2(0),TL3(0);
var : Tx1(0),Tx2(0),Tx3(0);
#구간산정
#1일전~~N일전까지의 최고가와 최저가
HH = dayhigh(1);
LL = daylow(1);
for cnt = 1 to N{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if daylow(cnt) < LL Then
LL = daylow(cnt);
}
#차이값의 1/12값
diff = (HH-LL)/구간수;
#각 구간값 저장
for cnt = 0 to 구간수{
RR[cnt] = HH-diff*cnt;
}
#1일전부터 N일전까지의 중간값이 포함된 구간을 찾고
#그 구간과 동일한 번호의 VV배열방에 거래량 저장
for cnt = 0 to 11{
VV[cnt] = 0;
for count = 1 to N{
mid = (dayhigh(count)+daylow(count))/2;
if RR[cnt] >= mid and mid > RR[cnt+1] Then
VV[cnt] = VV[cnt]+DayVolume(count);
}
}
For cnt1 = 0 to 11
{
tempmax = -99999999;
For cnt2 = 0 to 11
{
if ( VV[cnt2] > tempmax ) then
{
tempmax = VV[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
NTHidx[cnt1] = tempIndex;
VV[tempIndex] = -99999999;
}
if date != date[1] and DataCompress <= 2 Then{
TL_Delete(TL1);
TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]);
TL_SetExtRight(TL1,true);
TL_SetExtLeft(TL1,true);
TL_SetColor(TL1,RED);
TL_SetSize(TL1,굵기);
TL_Delete(TL2);
TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]);
TL_SetExtRight(TL2,true);
TL_SetExtLeft(TL2,true);
TL_SetColor(TL2,blue);
TL_SetSize(TL2,굵기);
# TL_Delete(TL3);
# TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]);
# TL_SetExtRight(TL3,true);
# TL_SetExtLeft(TL3,true);
# TL_SetColor(TL3,GREEN);
# TL_SetSize(TL3,굵기);
}
if DataCompress >= 3 then{
TL_Delete(TL1);
TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,RED);
TL_Delete(TL2);
TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,blue);
# TL_Delete(TL3);
# TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]);
# TL_SetExtRight(TL3,true);
# TL_SetColor(TL3,GREEN);
}
Text_Delete(tx1);
Text_Delete(tx2);
# Text_Delete(tx3);
tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위");
tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위");
# tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위");
Text_SetStyle(tx1,2,0);
Text_SetStyle(tx2,2,0);
# Text_SetStyle(tx3,2,0);
### 검색식
input : N(120),구간수(12),per(2.5),per1(10);
var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0);
Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0);
var : TL1(0),TL2(0),TL3(0);
var : Tx1(0),Tx2(0),Tx3(0);
Array : RR[12](0),VV[12](0);
Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0);
#구간산정
#1일전~~N일전까지의 최고가와 최저가
HH = dayhigh(1);
LL = daylow(1);
for cnt = 1 to N{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if daylow(cnt) < LL Then
LL = daylow(cnt);
}
#차이값의 1/12값
diff = (HH-LL)/구간수;
#각 구간값 저장
for cnt = 0 to 구간수{
RR[cnt] = HH-diff*cnt;
}
#1일전부터 N일전까지의 중간값이 포함된 구간을 찾고
#그 구간과 동일한 번호의 VV배열방에 거래량 저장
for cnt = 0 to 11{
VV[cnt] = 0;
for count = 1 to N{
mid = (dayhigh(count)+daylow(count))/2;
if RR[cnt] >= mid and mid > RR[cnt+1] Then
VV[cnt] = VV[cnt]+DayVolume(count);
}
}
For cnt1 = 0 to 11
{
tempmax = -99999999;
For cnt2 = 0 to 11
{
if ( VV[cnt2] > tempmax ) then
{
tempmax = VV[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
NTHidx[cnt1] = tempIndex;
VV[tempIndex] = -99999999;
}
if o <= RR[NTHidx[0]]*(1+Per/100) and o >= RR[NTHidx[0]]*(1-Per/100) Then
find(1);
2016-02-23
214
글번호 95709