커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1581
글번호 230811
답변완료
수식부탁합니다
input:length(6);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0),고점변곡(""),저점변곡("");
var : clr1(0),clr2(0),BE(0),SE(0),cnt(0),upcond(False),dncond(False),text2(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(0==1,C,H);
LL = IFF(0==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
T = 1;
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 1 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 0, 1);
Text_SetColor(Text1,Red);
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,Gray);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 1 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
T = -1;
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 1 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 0, -1);
Text_SetColor(Text1,Blue);
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,Gray);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 1 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
if T == -1 and T[1] != -1 Then
{
TL12 = TL_New(고[2,3],고[2,4],고[2,1],sdate,stime,고[2,1]);
TL_Delete(TL13);
TL13 = TL_New(고[1,3],고[1,4],고[1,1],Sdate,Stime,고[1,1]);
TL_SetExtRight(TL13,true);
TL_SetSize(TL13,2);
TL_SetColor(TL12,clr1);
TL_SetSize(TL12,2);
clr1 = Pink;
TL_SetColor(TL13,clr1);
upcond = False;
}
if T == 1 and T[1] != 1 Then
{
TL14= TL_New(저[2,3],저[2,4],저[2,1],sdate,stime,저[2,1]);
TL_Delete(TL15);
TL15= TL_New(저[1,3],저[1,4],저[1,1],sdate,stime,저[1,1]);
TL_SetExtRight(TL15,true);
TL_SetColor(TL14,clr2);
TL_SetSize(TL14,2);
clr2 = LightBlue;
TL_SetColor(TL15,clr2);
TL_SetSize(TL15,2);
dncond = False;
}
#===================================================#
VAR:mav5(0),mav10(0),mav20(0),mav40(0),mav60(0),mav120(0),mav30(0);
mav5=ma(c,5);
mav10=ma(c,10);
mav20=ma(c,20);
mav30=ma(c,30);
mav40=ma(c,40);
mav60=ma(c,60);
mav120=ma(c,120);
#============#
if (min(C,ma(c,5)) > TL_GetValue(TL13,sDate,sTime)) Then
{
clr1 = Red;
TL_SetColor(TL13,clr1);
}
if max(C,ma(c,5)) < TL_GetValue(TL15,sDate,sTime) Then
{
clr2 = Blue;
TL_SetColor(TL15,clr2);
}
#=========================================================================#
array:Redline[4](0),Blueline[4](0),Pinkline[4](0),liblueline[4](0),libluex[4](0),Pinkx[4](0);
#==============레드==========================#
if upcond == False and min(c,mav5)>TL_GetValue(TL13,sDate,sTime) Then
{
upcond = true;
Redline[0]=TL_GetValue(TL13,sDate,sTime);
For cnt=1 to 4
{
Redline[cnt]=Redline[cnt-1][1];
}
}
1.조건만족 시점만 누적시켜 주세요
(지금은 봉개수가 누적됩니다)
var:x(0);
condition1=mav20<Redline[0]and max(c,mav5)<Redline[0]and mav5<mav10);
if (min(C,ma(c,5)) > TL_GetValue(TL13,sDate,sTime)) Then x=0;
if condition1 Then
{
x=x+1;
}
2.condition2 가 아니면 condition1 을 유지한다
condition2=mav20>Redline[0]and min(c,mav5)>Redline[0]and mav5>mav10);
3.condition1 and condition3 이면 condition1 을 유지한다
condition3= min(c,mav5)>mav20 and mav10>=mav20;
항상 감사드립니다....
2023-02-06
580
글번호 166010
답변완료
함수 부탁드립니다
안녕하세요?
해외선물 매수, 매도 조건 수식 문의드립니다.
1. 매수조건
- 하락하는 분봉이 볼린저밴드 하단통과후 상승 진입시 1차 매수진입, 손절 5틱
- 2차 매수진입은 1차 매수진입 -4틱 아래 손절 5틱
- 청산은
1) 볼린저밴드 상단 진입시,
2) 익절틱 설정
3) 익절금액 충족시
2. 매도조건은 매수조건과 반대입니다.
변수는 변경가능하도록 수식 부탁드립니다. 감사합니다
2023-02-05
616
글번호 166009
배움이 님에 의해서 삭제되었습니다.
2023-02-05
13
글번호 166008
답변완료
부탁드립니다.
1. 주차트 현재가가 보조차트1, 보조차트2, 보조차트3, 보조차트4, 보조차트5 중에 하나라도 현재가와 같은 경우에 빨강색을, 저가와 같은 경우에는 파란색으로 구현해 주세요.
감사합니다.
2023-02-05
912
글번호 166007
답변완료
일간차트에서 파라볼릭 색깔표시
안녕하세요?
일간/주간/월간차트에서 파라볼릭 점선이 아닌 색깔로표시하는(예로 상승시 녹새/ 하락시 노란색) 수식부탁드립니다.
감사합니다.
2023-02-05
1123
글번호 166006
답변완료
문의 드립니다.
안녕하세요. 늘 감사드립니다,
매수:
종가가 모두 10 이평선 위에서 있는 양봉 갯수가 4개이면 매수합니다.
이 때의 4개 양봉 개수중 가장 최근의 마지막 봉의 시가를 A 손절가라고 정의 합니다.
단 음봉 종가가 10 이평선을 하방으로 깨면 양봉 갯수 카운트는 0 으로 초기화하고
또 발생하는 음봉 종가가 10 이평 위에 있는 바로 직전봉 양봉의 시가를 하방으로
깨면 역시 양봉 갯수 카운트를 0으로 초기화 합니다.
손절 청산:
매수후 종가가 A 손절가를 하방으로 깨면 전부 청산합니다.
이익청산:
매수 후 매수 진입가 < 양봉 종가가 최초로 생기면 50% 청산하고
나머지 50 %는 매수 진입가에 (종가가 아니고) 현재가가 진입가에 오면 청산되도록 STOP을 걸어 놓습니다.
또 다행히 계속 이익이 나면 발생하는 음봉 종가가 가장 최근의 양봉 시가를 하방으로
깨면 나머지 50%를 전부 이익청산합니다,
매도 : 반대논리로 부탁드립니다.
2023-02-05
1297
글번호 166005
답변완료
추세선 쓰리바닥 박스
input : Period(35),pt(0.25);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
var : txx(0),txxx(0);
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
Condition1 = False;
if max(LoVal[1],LoVal[2]) <= min(LoVal[1],LoVal[2])+pt Then
{
txx = Text_New(sdate[HiBar[0]],sTime[HiBar[0]],Hival[0]+PriceScale*0,"●");
Text_SetColor(txx,Green);
Text_SetSize(txx,20);
Text_SetStyle(txx,2,2);
Condition1 = true;
}
Condition2 = true;
txxx = Text_New(sdate[HiBar[0]],sTime[HiBar[0]],Hival[0]+PriceScale*0,"●"+NewLine);
Text_SetColor(txxx,Cyan);
Text_SetSize(txxx,30);
Text_SetStyle(txxx,2,2);
if Condition2 == true and L <= LoVal[1]-PriceScale*1 Then
{
Condition2 = False;
Text_Delete(txxx);
}
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
}
if Condition1 == true and LoVal[0] < max(LoVal[1],LoVal[2])-pt Then
{
Condition1 = False;
Text_Delete(txx);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
if Condition2 == true and LoVal[0] <= LoVal[1]-PriceScale*1 Then
{
Condition2 = False;
Text_Delete(txxx);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
text_Delete(txx);
text_Delete(txxx);
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
}
}
현 수식은 0.25p 내에서 쓰리바닥 가능성을 실시간으로 보기위해, 0.25p 내에서 쌍바닥 후에 쓰리바닥으로 가는 하락 중일 때 동그라미를 표시했다가 양전환되거나 0.25p를 벗어나서 더 하락하면 동그라미를 삭제하는 수식인데,
표현 방식을 현재 방식과 병행해서, 동그라미 생성될 때 그 부분을 추가로 박스로도 표현.
동그라미 삭제될 때 박스도 같이 삭제. 박스는 삭제될 때까지 연장.
오류 수정:직전 저점과 전전 저점의 차이가 0.25p 이내일 때만 하락 전환시 동그라미가 생성되어야 하는데 하락전환시 무조건 생성되는 듯 합니다. 동그라미가 두개 생성됩니다. 하나를 제거해도 되나요? 감사합니다.
2023-02-06
1063
글번호 166004
답변완료
수식 문의 드립니다.
매입: 20 이평선 상향시 매입
매도:
1) 매입가 대비 5% 상승시 즉시 매도
2) 매입가 대비 전매입가를 5% 하향시 즉시 매도
3) 매입가 대비 전매입가를 하향시 즉시 매도
4) 매입후 이전 3봉중 최고가와 매입가차이를 최고수익이라고 할경우, 그 최고수익이 5% 이상일 경우만 해당하며, 최고수익 대비 수익이 50%로 줄면 즉시 매도
5) 20 이평선 하향시 매도
2023-02-05
811
글번호 166003
답변완료
지표 작성부탁합니다
사용지표 : 이동평균선 20 60 120
지표조건 : 60이이평과 120이평선이 정배열이면서(and) 20이평과60이평이 정배열
이면 차트바탕에 노랑색으로 표시되는 지표식 부탁합니다
2023-02-04
957
글번호 166002