커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1643
글번호 230811
답변완료
부탁드립니다
#,무더위에 연일수고 많으십니다
아래식에대해 신호누락 부분에 대한 질문입니다,첨부파일1과같이 ①번지점에서는 정상
신호가 발생되는데 ②번지점에서는 조건충족이 되었는데도'별'신호가 발생되지않고 있
습니다,참고로 1번첨부파일 사진은 5분봉이구요,틱봉에서는 그림파일2번처럼 DM이데드
크로스한 신호(Red"별")나와야 되는데 누락되고, ADX 50이상신호가 발생(핑크별)하였고
또한ADX값이그림②번으로 갱신됨에따라 ①번은 삭제되어야 하는데 그대로 남아있습니다
원인이 무엇인지 잘 모르겠네요.. 도움 부탁드립니다.
input : period(14),크기(0),크기1(0);
var : ADXv(0),DP(0),DM(0),TX(0),HH(0);
ADXv = ADX(Period);
DP = DiPlus(Period);
DM = DiMinus(Period);
plot1(ADXv,"ADX");
plot2(DP,"+DI");
plot3(DM,"-DI");
PlotBaseLine1(20, "기준선20");
PlotBaseLine3(50, "기준선50");
if DP < DM and ADXv >= 30 and CrossDown(DM,ADXV) Then
{
tx = Text_New(sDate,sTime,L,"★");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,RED);
Text_SetSize(tx,크기);
}
if DP > DM and ADXv >= 20 and CrossDown(DP,ADXV) Then
{
tx = Text_New(sDate,sTime,H,"★");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,BLUE);
Text_SetSize(tx,크기);
}
if ADXV >= 50 Then
{
if ADXV[1] < 50 Then
{
var1 = 0;
Var2 = 0;
HH = ADXV;
}
if ADXV > HH Then
{
HH = ADXV;
if DP < DM Then
{
var1 = var1+1;
if var1 == 1 Then
tx = Text_New(sDate,sTime,L,"★");
Else
Text_SetLocation(tx,sDate,sTime,L);
Text_SetStyle(tx,2,0);
Text_SetColor(tx,MAGENTA);
Text_SetSize(tx,크기1);
}
if DP > DM Then
{
Var2 = Var2+1;
if Var2 == 1 Then
tx = Text_New(sDate,sTime,H,"★");
Else
Text_SetLocation(tx,sDate,sTime,H);
Text_SetStyle(tx,2,1);
Text_SetColor(tx,BLACK);
Text_SetSize(tx,크기1);
}
}
}
Else
HH = 0;
2021-07-26
2008
글번호 151064
답변완료
문의
전일까지 검색해서,
1. 가장 최근에 발생한 음봉 또는 도지봉의 종가 표시
2. 1번 봉이 발생한 날의 전일봉이 양봉 또는 도지봉이면 종가 표시
3. 1번 봉이 발생한 날의 전일봉이 음봉 또는 도지봉이면 시가 표시
위 표시는 지표식과 추세선식 두가지로 부탁드립니다
2021-07-25
1741
글번호 151063
답변완료
수식 문의
안녕하세요
참조 데이타를 사용하는 조건에서요,
30분봉 차트인데. 9시30~10시 구간의 봉의 시고저종가를 비교하는 방법 문의드립니다
2021-07-25
1448
글번호 151062
답변완료
질문입니다
코인에서
1.참조 데이터 30개까지 불러낸 후
30개 중에 1분간 거래량이 가장 많은 코인에 별표시 부탁드립니다.
2.그 별표시에 매수할 수 있으면 시스템수식으로도 요청드립니다.
고맙습니다.
2021-07-25
1655
글번호 151061
답변완료
수식작성
박스권 매매의 수식어를 부탁 드립니다.
1.buy 진입과 청산의 조건
이격도 30이 기준선100 이상
캔들 10봉이 저점 최소 가격변화가 3틱이하일때 매수
이격도 30이 기준선106 이상
캔들 10봉이 고점 최소 가격변화가 3틱이하일때 청산
2.sell진입과 청산이 조건
이격도 30이 기준선108 이상
캔들 10봉이 고점 최소 가격변화가 3틱이하일때 매도
이격도 30이 기준선96 이하
캔들 10봉이 저점 최소 가격변화가 3틱이하일때 청산
매매시간 : 0700 ~ 익일 0550
익절 150틱 손절 20틱
2021-07-25
1495
글번호 151060
답변완료
지표를 부탁드립니다...참조데이터
안녕하세요...
질문1
전에 만들어주신 참조데치터 전일 값을 이어서 이평선을 그리는 수식입니다..
input : P1(5),P2(20);
var : V1(0,Data2),mav1(0,Data2),mav2(0,data2);
V1 = Data2(CloseD(1)+c);
mav1 = Data2(ma(V1,P1));
mav2 = Data2(ma(V1,P2));
Plot1(mav1);
Plot2(mav2);
문제는 전일의 마지막값에 오늘의 값을 더해서 이평이 만들어지는
전일의 마직막값 매일 달라집니다..
풀어서 이야기하면 전일의 마지막값은 CloseD(1)로 수깃에서 사용되고있습니다.
실제로 사용되어야할값은 Data2(CloseD(1)+c) 의 마지막값이 되어야합니다.
전일 1000 오늘 -500 내일 ?
오늘의 마지막값(내일의 시작값은)은 -500 이 아니라 500이되어야합니다...
내일은 (1000 - 500) + C로 시작되어야합니다...수정부탁드립니다..
질문2
var1 = (Upvol - DownVol) ;
일경우 var1의 당일 시가 ,고가,저가 종가 구하고 싶습니다.
제가 코딩능력이 부족하여 부탁드립니다..
2021-07-24
1755
글번호 151059
답변완료
수정 부탁 드립니다.
수고하십니다.
어래 지표에서 TL2 가 직전파동 추세선 중심값시간에서 시작해서 현파동 추세선 중심값을 연장하는 추세선으로 변경 부탁드립니다.
TL21추세선도 시작위치를 검은색과 같이 나타나도록 부탁드립니다.
그림에 청색을 검정선 같은 위치에 나타나도록 부탁드립니다
Var:length(14),최근만(1);
Var:TL1(0),TL2(0),TL3(0),Slope(0),TL_NewBit(0); // 1:NewLine 2:SetEndLine
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
var : VV(0),diff(0);
var : TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0);
var : TL31(0),TL32(0),TL33(0),TL34(0),TL35(0),TL36(0);
Value1 = HiLoLineZigZag(length,0,고,저,TL_NewBit); //사용자함수 바로 가기
If Value1 == 1 Then {
If TL_NewBit == 1 Then TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If TL_NewBit == 2 Then TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
Else If Value1 == -1 Then {
If TL_NewBit == 1 Then TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If TL_NewBit == 2 Then TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
If Value1 == 1 and TL_NewBit == 1 Then {
Slope = ((고[2,1]+저[1,1])/2 - 저[2,1]) / ((고[2,2]+저[1,2])/2 - 저[2,2]);
If 최근만 > 0 Then {
TL_Delete(TL3);
TL_Delete(TL31);
TL_Delete(TL32);
TL_Delete(TL33);
TL_Delete(TL34);
TL_Delete(TL35);
TL_Delete(TL36);
}
TL2 = TL_New(저[2,3],저[2,4],저[2,1],sDate,sTime,Slope*(Index-저[2,2])+저[2,1]);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL2,1);
VV = Slope*(저[1,2]-저[2,2])+저[2,1];
diff = VV - 저[1,1];
TL21 = TL_New(저[1,3],저[1,4],VV-diff*1,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*1);
TL22 = TL_New(저[1,3],저[1,4],VV-diff*1.2,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*1.2);
TL24 = TL_New(저[1,3],저[1,4],VV+diff*1,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*1);
TL25 = TL_New(저[1,3],저[1,4],VV+diff*1.2,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*1.2);
TL_SetColor(TL21,BLUE); TL_SetSize(TL21,1);
TL_SetColor(TL22,RED); TL_SetSize(TL22,1);
TL_SetColor(TL23,RED); TL_SetSize(TL23,1);
TL_SetColor(TL24,BLUE); TL_SetSize(TL24,1);
TL_SetColor(TL25,RED); TL_SetSize(TL25,1);
TL_SetColor(TL26,red); TL_SetSize(TL26,1);
}
If Value1 == 1 and TL_NewBit <> 1 Then {
TL_SetEnd(TL2,sDate,sTime,Slope*(Index-저[2,2])+저[2,1]);
TL_SetEnd(TL21,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*1);
TL_SetEnd(TL22,sDate,sTime,TL_GetValue(TL2,sdate,stime)-diff*1.2);
TL_SetEnd(TL24,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*1);
TL_SetEnd(TL25,sDate,sTime,TL_GetValue(TL2,sdate,stime)+diff*1.2);
}
If Value1 == -1 and TL_NewBit == 1 Then {
Slope = ((고[1,1]+저[2,1])/2 - 고[2,1]) / ((고[1,2]+저[2,2])/2 - 고[2,2]);
If 최근만 > 0 Then {
TL_Delete(TL2);
TL_Delete(TL21);
TL_Delete(TL22);
TL_Delete(TL23);
TL_Delete(TL24);
TL_Delete(TL25);
TL_Delete(TL26);
}
TL3 = TL_New(고[2,3],고[2,4],고[2,1],sDate,sTime,Slope*(Index-고[2,2])+고[2,1]);
TL_SetColor(TL3,RED);
TL_SetSize(TL3,1);
VV = Slope*(고[1,2]-고[2,2])+고[2,1];
diff = 고[1,1]-VV;
TL31 = TL_New(고[1,3],고[1,4],VV+diff*1,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*1);
TL32 = TL_New(고[1,3],고[1,4],VV+diff*1.2,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*1.2);
TL34 = TL_New(고[1,3],고[1,4],VV-diff*1,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*1);
TL35 = TL_New(고[1,3],고[1,4],VV-diff*1.2,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*1.2);
TL_SetColor(TL31,RED); TL_SetSize(TL31,1);
TL_SetColor(TL32,BLUE); TL_SetSize(TL32,1);
TL_SetColor(TL33,BLUE); TL_SetSize(TL33,1);
TL_SetColor(TL34,RED); TL_SetSize(TL34,1);
TL_SetColor(TL35,BLUE); TL_SetSize(TL35,1);
TL_SetColor(TL36,BLUE); TL_SetSize(TL36,1);
}
If Value1 == -1 and TL_NewBit <> -1 Then {
TL_SetEnd(TL3,sDate,sTime,Slope*(Index-고[2,2])+고[2,1]);
TL_SetEnd(TL31,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*1);
TL_SetEnd(TL32,sDate,sTime,TL_GetValue(TL3,sdate,stime)+diff*1.2);
TL_SetEnd(TL34,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*1);
TL_SetEnd(TL35,sDate,sTime,TL_GetValue(TL3,sdate,stime)-diff*1.2);
}
2021-07-24
1769
글번호 151058
답변완료
문의드립니다!
안녕하세요!
아래 "수식1"은 일전에 문의드려 답변받은 수식인데요
이 "수식1"을 아래 "수식2" 와같이 각각 다른 3개의선이 나오도록 제가 임의로 수정을 했습니다
교차챠트에서 이 "수식2"를 적용한후
1번선이 기준이되고 2, 3번선은 각각 1번선의 상하단에 놓이도록 설정을 했는데...
챠트 상단방향의 선은 제대로 나타나나 하단방향의 선은 제자리가 아닌 0선에 나타나네요
* 이 하단방향 선의 수식만 별도로 작성하여 적용시는 제자리에 표시가 됩니다
제가 수정한 수식이 뭔가 잘못된것같은데 한번 검토 부탁드리겠습니다
매번 도와주심에 항상 감사드립니다!!
----------------------------------------------------------------------------------
(수식 1)
var : V1(0,data1),v2(0,Data1);
if crossup(data6(H),data15(L)) or CrossDown(data6(L),data15(H)) Then
{
v1 = data1(C);
}
if crossup(data1(H),data2(L)) or CrossDown(data1(L),data2(H)) Then
v2 = Data1(c);
plot1(v1);
plot2(v1);
plot3(v2);
(수식 2)
var : V1(0,data1),v2(0,Data1),v3(0,Data1);
if crossup(data1(H),data6(L)) or CrossDown(data1(L),data6(H)) Then ===> 1번
{
v1 = data1(C);
}
if crossup(data5(H),data12(L)) or CrossDown(data5(L),data12(H)) Then ===> 2번
v2 = Data1(c);
if crossup(data2(H),data3(L)) or CrossDown(data2(L),data3(H)) Then ===> 3번
v3 = Data1(c);
plot1(v1);
plot2(v2);
plot3(v3);
2021-07-24
1464
글번호 151057
답변완료
안녕하세요 수식변환 부탁드립니다.
예스랭귀지 수식인데 트레이딩뷰 수식으로 부탁드립니다.
var : mav1(0),mav2(0),MACDV(0);
mav1 = ma(C,5);
mav2 = ma(C,20);
MACDV = MACD(12,26);
#조건1
if crossup(mav1,mav2) Then{
var1 = H;
var2 = L;
}
#조건2
if crossup(MACDV,0) Then{
var3 = H;
var4 = L;
}
plot1(var1);
plot2(var2);
plot3(var3);
plot4(var4);
감사합니다.
2021-07-23
1324
글번호 151056