커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1660
글번호 230811
답변완료
타주기 지표식
일봉의 일목균형표를 60분봉에 표시하는 지표식을 구합니다
추가로 60분봉의 일목균형표를 5분봉에 표시하는 지표식을 구합니다
감사합니다
2021-09-07
857
글번호 152068
답변완료
수식수정요청
안녕하세요
아래의 좌 우 수식에서 4개의 선을 다섯개의 선으로 수정부탁드립니다.
input : af(0.02), maxAF(0.2),추세선두께(1),추세선색1(YELLOW),추세선색2(CYAN),연장선두께(2),연장선색(gray);
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,연장선색);
2021-09-07
802
글번호 152067
답변완료
최근 55퍼센트 이상 상승한 종목의 눌림목 매매
5일이동평균선 매매
조건1: 10일 이내에 240일 신고가 발생한 종목
조건2: 현재가격이 240일 단순이동평균보다 큰 종목
조건3: 10일 이내에 240일 신고거래량 발생한 종목
조건4: 10일 이내에 최저가 대비 최고가 55% 이상 상승한 종목
조건5: 10일 이내에 시가대비 종가가 20% 이상 상승이 1회 이상인 종목
조건6: 현재기준 10~30일이전에 최저가 대비 최고가가 40%이상 발생한 적이 없음
큰 주가변동이 없다가 최근 10일 동안 급등한종목을 찾고 싶습니다. 10일 전 20일 동안은 큰변동성이 없으면 좋겠습니다. 이 변동성에 대한 값을 input으로 넣게 해주시면 감사하겠습니다. 아무래도 변동성을 알고 싶은거라 수익률 보다는 일일 수익률과 거래량의 표준편차 값으로 하는게 좋을것 같은데 어떻게 해야할지 잘 모르겠네요. 연락 주시면 감사하겠습니다.
조건7: 아래는 키움 5일선의 95%를 지표를 나타내는 수식입니다. 아래수식처럼 5일 종가 이동평균의 95%와 90%의 지표를 작성부탁드리며, 95%의 값 밑으로 내려갔다가 골든크로스하는 5분봉에 강조표시 해주시면 감사하겠습니다.
ma((npredayclose(4)+npredayclose(3)+npredayclose(2)+npredayclose(1)+dayclose())/5*0.95,5)
ma((npredayclose(4)+npredayclose(3)+npredayclose(2)+npredayclose(1)+dayclose())/5*0.90,5)
90%, 95%는 input으로 바꿀 수 있게 부탁드리며 90, 95를 기본값으로 부탁드립니다.
지표:
5분봉완성 기준으로 시스템매매 구축할 예정으로 5분봉 차트에 5일종가기준 이동평균의 95%의 값과 90%의 값이 차트에 나타날 수 있도록 부탁드립니다.
강조:
5분봉 종가가 5일이동평균(종가기준)의 95% 아래로 내려갔다가 다시 골든크로스 하는 종목 강조
첨부파일은 키움영웅문에서 아즈텍WB의 황금선색 선이 5일 종가 이동평균값을 5분봉 차트에 표시한 것입니다. 골든크로스 시점은 7월 29일 오전입니다.
2021-09-06
1868
글번호 152066
답변완료
수식 부탁드립니다
이격도
input : period3(60); #60일 이평선
조건
현재가격 'c'가 60일 이평선 이격도의 값 100보다 크다는 조건식 부탁드립니다
기존 수식에 위조건을 추가하고 싶습니다
2021-09-06
755
글번호 152065
답변완료
후행스팬 표시
안녕하세요 관리자님 우선 감사 드립니다.
제가 아래와 같이 후행스팬 처럼 종가선을 26일 전으로 표시하고 싶은데
26일 이후로 표시가 되서요 확인 부탁 드립니다.
늘 감사 합니다.
Rline = Close;
RRLine = Rline[26];
2021-09-06
706
글번호 152064
답변완료
키움검색식 변경부탁드립니다
안녕하세요
키움조건검색하고 맞지않아서 문의드립니다
첨부한그림의 조건입니다
조건자체가 맞지않는것인지 도저히 구현이 안됩니다
도움주시면 감사드리겠습니다
2021-09-06
834
글번호 152063
답변완료
수식수정좀부탁드립니다
아래지표중 일괄매도 변수조건조정좀할수잇게해주세요 지금진입조건이 엔벨로프20-3하단진입이고 일괄매도가20-3중앙선돌파시일괄매도로되잇잔아요 이일괄매도조건을예를들어 30-5상향선상향돌파시 일괄매도 이런식으로 조건수정좀하게해주세요
Input : Period(20), Percent(3);
input : M1(10000),M2(10000),M3(20000),M4(40000),M5(80000),M6(160000),M7(320000),M8(640000),M9(1280000),M10(2560000);
var : center(0),UPline(0),DNline(0);
center = ma(C, Period);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
if MarketPosition == 0 and CrossDown(C,DnLine) Then
Buy("b1",OnClose,DEF,M1/C);
if MarketPosition == 1 Then
{
if CurrentEntries == 1 Then
Buy("b2",AtLimit,AvgEntryPrice*0.98,M2/min(nextbaropen,AvgEntryPrice*0.98));
if CurrentEntries == 2 Then
Buy("b3",AtLimit,AvgEntryPrice*0.95,M3/min(nextbaropen,AvgEntryPrice*0.95));
if CurrentEntries == 3 Then
Buy("b4",AtLimit,AvgEntryPrice*0.90,M4/min(nextbaropen,AvgEntryPrice*0.90));
if CurrentEntries == 4 Then
Buy("b5",AtLimit,AvgEntryPrice*0.85,M5/min(nextbaropen,AvgEntryPrice*0.85));
if CurrentEntries == 5 Then
Buy("b6",AtLimit,AvgEntryPrice*0.80,M6/min(nextbaropen,AvgEntryPrice*0.80));
if CurrentEntries == 6 Then
Buy("b7",AtLimit,AvgEntryPrice*0.75,M7/min(nextbaropen,AvgEntryPrice*0.75));
if CurrentEntries == 7 Then
Buy("b8",AtLimit,AvgEntryPrice*0.70,M8/min(nextbaropen,AvgEntryPrice*0.70));
if CurrentEntries == 8 Then
Buy("b9",AtLimit,AvgEntryPrice*0.65,M9/min(nextbaropen,AvgEntryPrice*0.65));
if CurrentEntries == 9 Then
Buy("b10",AtLimit,AvgEntryPrice*0.60,M10/min(nextbaropen,AvgEntryPrice*0.60));
if CrossUp(c,center) Then <<<<<<<요기이매도조건변수기간수정좀하게해주세요
ExitLong();
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b4" Then
Var4 = LatestEntryPrice(0);
if LatestEntryName(0) == "b5" Then
Var5 = LatestEntryPrice(0);
if LatestEntryName(0) == "b6" Then
Var6 = LatestEntryPrice(0);
if LatestEntryName(0) == "b7" Then
Var7 = LatestEntryPrice(0);
if LatestEntryName(0) == "b8" Then
Var8 = LatestEntryPrice(0);
if LatestEntryName(0) == "b9" Then
Var9 = LatestEntryPrice(0);
if LatestEntryName(0) == "b10" Then
Var10 = LatestEntryPrice(0);
}
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "bx4" Then
Var4 = 0;
if LatestExitName(0) == "bx5" Then
Var5 = 0;
if LatestExitName(0) == "bx6" Then
Var6 = 0;
if LatestExitName(0) == "bx7" Then
Var7 = 0;
if LatestExitName(0) == "bx8" Then
Var8 = 0;
if LatestExitName(0) == "bx9" Then
Var9 = 0;
if LatestExitName(0) == "bx10" Then
Var10 = 0;
}
if var4 > 0 Then
ExitLong("bx4",AtLimit,Var4*1.05,"b4");
if var5 > 0 Then
ExitLong("bx5",AtLimit,Var5*1.05,"b5");
if var6 > 0 Then
ExitLong("bx6",AtLimit,Var6*1.05,"b6");
if var7 > 0 Then
ExitLong("bx7",AtLimit,Var7*1.05,"b7");
if var8 > 0 Then
ExitLong("bx8",AtLimit,Var8*1.05,"b8");
if var9 > 0 Then
ExitLong("bx9",AtLimit,Var9*1.05,"b9");
if var10 > 0 Then
ExitLong("bx10",AtLimit,Var10*1.05,"b10");
}
Else
{
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var8 = 0;
var9 = 0;
var10 = 0;
}
2021-09-06
774
글번호 152062
답변완료
수식변경
늘 감사합니다.
아래수식을 변경해 주세요
1. data2에 사용할수 있도록 해주세요
2. 해외선물용 입니다
3. 시작시간을 임의로 지정할수 있도록해 주세요
예를들면 093000 처럼 변경 가능하게
감사합니다
input : P1(10),per1(50);
input : P2(20),per2(50);
input : P3(30),per3(50);
input : P4(40),per4(50);
input : P5(50),per5(50);
input : P6(100),per6(50);
var : cnt(0),TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0);
var : H1(0),L1(0),H2(0),L2(0),H3(0),L3(0),H4(0),L4(0),H5(0),L5(0),H6(0),L6(0);
H1 = DayHigh;
H2 = DayHigh;
H3 = DayHigh;
H4 = DayHigh;
H5 = DayHigh;
H6 = DayHigh;
L1 = DayLow;
L2 = DayLow;
L3 = DayLow;
L4 = DayLow;
L5 = DayLow;
L6 = DayLow;
}
for cnt = 0 to max(p1,p2,p3,p4,p5,p6)-1
{
if cnt < P1 and DayHigh(cnt) > H1 Then
H1 = DayHigh(cnt);
if cnt < P1 and DayLow(cnt) < L1 Then
L1 = DayLow(cnt);
if cnt < P2 and DayHigh(cnt) > H2 Then
H2 = DayHigh(cnt);
if cnt < P2 and DayLow(cnt) < L2 Then
L2 = DayLow(cnt);
if cnt < P3 and DayHigh(cnt) > H3 Then
H3 = DayHigh(cnt);
if cnt < P3 and DayLow(cnt) < L3 Then
L3 = DayLow(cnt);
if cnt < P4 and DayHigh(cnt) > H4 Then
H4 = DayHigh(cnt);
if cnt < P4 and DayLow(cnt) < L4 Then
L4 = DayLow(cnt);
if cnt < P5 and DayHigh(cnt) > H5 Then
H5 = DayHigh(cnt);
if cnt < P5 and DayLow(cnt) < L5 Then
L5 = DayLow(cnt);
if cnt < P6 and DayHigh(cnt) > H6 Then
H6 = DayHigh(cnt);
if cnt < P6 and DayLow(cnt) < L6 Then
L6 = DayLow(cnt);
}
var1 = H1-(H1-L1)*(per1/100);
var2 = H2-(H2-L2)*(per2/100);
var3 = H3-(H3-L3)*(per3/100);
var4 = H4-(H4-L4)*(per4/100);
var5 = H5-(H5-L5)*(per5/100);
var6 = H6-(H6-L6)*(per6/100);
2021-09-06
868
글번호 152061
qha71 님에 의해서 삭제되었습니다.
2021-09-06
0
글번호 152058