커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4786
글번호 230811
동동이아빠 님에 의해서 삭제되었습니다.
2015-08-08
10
글번호 89310
답변완료
문의 드립니다.
이동 평균선 상승시 레드 하락시 블루로 표현 하고 싶습니다.
5 20 30 60 120 다섯개 표현 부탁 드립니다.
날짜는 바꿀수 있게 부탁 드립니다. 수고하세요
2015-08-08
105
글번호 89309
답변완료
수식 부탁합니다
파라볼릭과 ADX +DI, -DI를 갖고 지표 부탁합니다
+DI > -DI 일때 매수, 반대로 -DI가 크면 매도
파라볼릭과 DI가 동일할 때만 즉 매수, 또는 매도로 동일할 때만 파라볼릭이
나타나도록 해주세요. 파라볼릭은 매수인데, DI가 매도이면 나타나지 않고
둘다 같을때만 파라볼릭이 매수 또는 매도로 나타나도록 부탁합니다
특히 ADX 값이 30 이상일 경우는 파라볼릭 색상을 검정으로 표시해주세요
2015-08-08
118
글번호 89308
답변완료
수식관련 질문입니다.
전일의 시가와 당일의 시가의 차이를
오늘챠트의 시가를 기준으로 위 아래로 표시하고자 합니다.
다른 증권사에서 사용하던 방식이 익숙해서
여기선 수식을 만드는 방법도, 또 챠트에 적용시키는 방법도 모르고 있습니다.
한번만 자세하게 알려주시면 차근차근 적용해 보려 합니다.
※ 참고로 예전에 하던방법을 올리면 이해하시기 편할듯하여 그렇게 설명하겠습니다.
질문1. 조건식 예제)
전일의 시가 : predayopen()
당일의 시가 : dayopen()
시가 차이 : A=abs(predayopen()-dayopen()) <--- 양수값을 구하기 위해서 함수사용.
오늘챠트에 표현하기
1.dayopen()+A 2.dayopen()+A*2 3.dayopen()+A*3
4.dayopen()-A 5.dayopen()-A*2 6.dayopen()-A*3 ------- 첨부파일 1 참조.
질문2.
macd골드와 데드를 이용한 시스템 신호를 챠트에 적용시키기.
변수 12.26.9로 기본으로 만들어서 챠트에 적용시키고자 하는데
챠트 왼편 시스템파트에서 macd를 적용, 변수 조정하는 방법을 알려주시면 감사하겠습니다.
신호는 같은 macd를 이용하여 두가지 변수를 만들어 넣을 예정입니다.
첨부화면에 보시면 두가지 신호를 넣은 그림도 있으니
이해에 도움되실듯 합니다.
바쁘시겠지만 빠른 시일내에 답변 부탁드리고
가능하다면 원격으로 한번만 세팅 해주시면 나머지는 같은 방법으로 하겠습니다.
아마 시간절약도 ...^^
무더운 날씨가 수고하세요~
010-4566-2920 입니다.
2015-08-10
139
글번호 89307
답변완료
수식 수정 부탁드립니다
수식 부탁드립니다
아래조건이면 완전 역배열에 5선에 데드크로스또는 5일선 아래 음선에 매도신호가 나와야 되는데, 수식을 실행하면 완전역배열이 아닌 구간에서도 신호가 나옵니다..
수정 부탁드립니다. (검정=5, 빨강=20, 녹색=60, 파랑점선=120, 핑크=240)
if stime >= 090200 and stime < 150000 and MarketPosition() ==0 AND
var1 < var2 and var2<var3 and var3<var4 and var4<var5
And C<C[4] And C<O
and var1<var1[3]
and c<var3
And (CrossDOWN(Close,Var1)) or (Open <= Var1)
and Var3 <Var3 [55]
and o < dayopen
then
SELL("2<6S");
2015-08-07
127
글번호 89306
답변완료
종목검색식 문의드립니다.
전일동시간대비 누적거래량이 100%이상인 종목검색식입니다.
이것을 금일 첫봉(분봉)만 비교하고싶은데 수정부탁드립니다.
추가로 첫봉이 양봉(2%)인 경우입니다.
감사합니다.
input : Per(100);
var : cnt(0),PreV(0);
PreV = 0;
for cnt = 1 to 500 {
if sdate[cnt] < sdate and stime[cnt] <= stime then{
PreV = DayVolume[cnt];
cnt = 1000;
}
}
if PreV > 0 and DayVolume >= PreV*(per/100) then
find(DayVolume/PreV*100);
2015-08-07
132
글번호 89305
답변완료
지표식문의입니다.
전일거래량대비 당일거래비율은 그려지는데 추가로 전일 동시간대 거래비률이 100%인 지표도 그려넣으려는데 도와주시기바랍니다.감사합니다.
##input : Per(100);
var : cnt(0),PreV(0);
PreV = 0;
for cnt = 1 to 500 {
if sdate[cnt] < sdate and stime[cnt] <= stime then{
PreV = DayVolume[cnt];
cnt = 1000;
}
}
##if PreV > 0 and DayVolume >= PreV*(per/100) then
plot1(DayVolume/PreV*100);
plot2(?????); <=====전일거래량대비 100%지표 그리기...
2015-08-07
145
글번호 89303
답변완료
글번호 43485 번 재질문 (12-1호)
아래의 함수에 조건을 추가하고싶습니다.
1계약거래에서 2연패발생시와 3연패 발생시에는, 각 3번째 4번째거래는 2계약매매하고 싶습니다.
var : entry(0),NP(0),NP1(0),NP2(0);
var : ho(0),OL(0),HL(0);
var : maho(0),maOL(0),maHL(0);
var : cnt(0),sumho(0),sumOL(0),sumHL(0);
var : EntryCnt(0),cond1(false);
var : V1(0),V2(0),V3(0),V4(0),V5(0),V6(0),V7(0),V8(0),V9(0),V10(0);
NP = NetProfit;
if bdate != bdate[1] Then{
entry = 0;
NP1 = NP[1];
NP2 = NP1[1];
Cond1 = true;
if NP1 > NP2 Then
cond1 = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
ho = Dayhigh-Dayopen;
OL = DayOpen-DayLow;
HL = DayHigh-DayLow;
sumho = 0;
sumOL = 0;
sumHL = 0;
for cnt = 1 to 10{
sumho = sumho + (dayhigh(cnt)-dayopen(cnt));
sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt));
sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt));
}
maho = sumho/10;
maOL = sumOL/10;
maHL = sumHL/10;
V1 = dayopen(0)+maho;
V2 = DayOpen(0)-maOL;
V3 = DayOpen(0)+maHL;
V4 = DayOpen(0)-maHL;
V5 = NthMaxList(1,V1,V2,V3,V4);
V6 = NthMaxList(2,V1,V2,V3,V4);
V9 = NthMaxList(3,V1,V2,V3,V4);
V10 = NthMaxList(4,V1,V2,V3,V4);
V7 = (V5+V10)/2;
V8 = (V6+V9)/2;
if MarketPosition == 0 and entry == 0 and cond1 == true Then{
if V7 > V8 Then
sell("s1",AtStop,V7-0.02);
if V7 < V8 Then
sell("s2",Atlimit,V8-0.02);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9-0.03);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9-0.03);
ExitShort("sl2",AtStop,V6);
}
var : TF(0);
var : Xtime(0), Etime(false),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 060000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/2;
var2 = (HV1+LV1)/2;
var3 = (HV2+LV2)/2;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
SetStopLoss(0.8,PercentStop);
SetStopProfittarget(3,PercentStop);
SetStopInactivity(3,23,PercentStop);
2015-08-07
142
글번호 89300
답변완료
글번호 43488번 재질문 (11-1호)
아래의 함수에 조건을 추가하고싶습니다.
1계약거래에서 2연패발생시와 3연패 발생시에는, 각 3번째 4번째거래는 2계약매매하고 싶습니다.
var : entry1(0);
var : ho1(0),OL1(0),HL1(0);
var : maho1(0),maOL1(0),maHL1(0);
var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0);
var : EntryCnt1(0);
var : V1(0),V2(0),V3(0),V4(0),V5(0);
var : V6(0),V7(0),V8(0),V9(0),V10(0);
if bdate != bdate[1] Then
entry1 = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry1 = entry1+1;
ho1 = Dayhigh-Dayopen;
OL1 = DayOpen-DayLow;
HL1 = DayHigh-DayLow;
sumho1 = 0;
sumOL1 = 0;
sumHL1 = 0;
for cnt1 = 1 to 10{
sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1));
sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1));
sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1));
}
maho1 = sumho1/10;
maOL1 = sumOL1/10;
maHL1 = sumHL1/10;
V1 = dayopen(0)+maho1;
V2 = DayOpen(0)-maOL1;
V3 = DayOpen(0)+maHL1;
V4 = DayOpen(0)-maHL1;
V5 = NthMaxList(1,V1,V2,V3,V4);
V6 = NthMaxList(2,V1,V2,V3,V4);
V9 = NthMaxList(3,V1,V2,V3,V4);
V10 = NthMaxList(4,V1,V2,V3,V4);
V7 = (V5+V10)/2;
V8 = (V6+V9)/2;
if MarketPosition == 0 and entry1 == 0 Then{
if V7 > V8 Then
sell("s1",AtStop,V7-0.02);
if V7 < V8 Then
sell("s2",Atlimit,V8-0.02);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9-0.03);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9-0.03);
ExitShort("sl2",AtStop,V6);
}
var : TF(0);
var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 050000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/2;
var2 = (HV1+LV1)/2;
var3 = (HV2+LV2)/2;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
SetStopLoss(0.8,PercentStop);
SetStopProfittarget(3,PercentStop);
SetStopInactivity(3,23,PercentStop);
2015-08-07
122
글번호 89299