커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5506
글번호 230811
답변완료
시스템 질문입니다
금일 시가가 전일 중심보다 높을때 doji 또는 음봉 다음 양봉 출현시 매수하여 8번째 양봉에 청산하는 수식을 알고 싶습니다. 반대로 금일 시가가 전일 중심보다 낮을때 doji 또는 양봉 다음 음봉 출현시 매도하여 8번째 음봉에 청산하는 수식을 알고 싶습니다.
2019-09-25
196
글번호 132210
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2019-09-25
2
글번호 132209
답변완료
확인좀 부탁합니다
아래 식을 사용합니다
그런데 적용이 될때가 있고 없고 합니다
항셍장에 이용중 입니다
var : Tcond(false);
if (sdate != sdate[1] and stime >= 101600) or
(sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 180000) or
(sdate == sdate[1] and stime >= 180000and stime[1] < 180000) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
2019-09-25
183
글번호 132208
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
선을 다음과 같이 총 5개를 나타내고자 합니다.
삼각가중평균선 20선 1개,
가중이평선 40선 1개,
삼각가중20선과 가중40선의 중간선1개(두선을 더한 값의 평균선),
삼각가중60선과 가중120선의 중간선 1개(두선을 더한 값의 평균선),
그리고 위 4개의 선 가운데에 위치하는 선 1개(위 4선을 더한 값의 평균선).
각각의 선의 기간값은 수정가능하게 부탁드립니다.
도움주신 것에 항상 감사드립니다. 수고하세요!!!
2019-09-25
187
글번호 132207
답변완료
수식부탁드려요
일정기간내 p(50) 10프로per(1.1) 이상이면서 거래대금 300억 이상 장대양봉을 찾고 현재 봉에서 장대양봉의 저점의 값 10프로 이내 값을 찾고 싶어요
차트에 장대양봉의 저점을 선을 긋고 싶습니다
부탁드려요
2019-09-25
236
글번호 132206
답변완료
문의 드립니다
당월물에대한 누적이동평균선지표 수식부탁드립니다
2019-09-24
195
글번호 132205
답변완료
문의드립니다~^^
안녕하세요~^^
아래수식에 ~~추가수식 부탁드립니다.
아래수식에서 나타내는 (파동길이 틱수에서) 20틱 이상일때만 그대로 지금수식처럼 나타내고,,,
▶파동길이 틱수가,20틱미만일때는 (19틱이하)~ 선과,선의값이 나타나지 않게 해주세요~
부탁드립니다~^^
Input:ShortPeriod(5),LongPeriod(20),선두께(2),상승색(red), 하락색(BLUE);
Var:j(0),ma1(0),ma2(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0),ZZ[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
r[0] = 0;
r[1] = 0.25;
r[2] = 0.35;
r[3] = 0.50;
r[4] = 0.65;
r[5] = 0.75;
r[6] = 1;
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
ma1 = ma(C,ShortPeriod);
ma2 = ma(C,LongPeriod);
If ma1 < ma2 Then
{
If ma1[1] >= ma2[1] Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
ZZ[j+1] = ZZ[j];
}
LoVal[0] = L;
LoBar[0] = 0;
ZZ[0] = L;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+"(틱수):"+NumToStr(abs(value11-value11[1])/PriceScale,0));
Text_SetStyle(tx,2,1);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
TL2[j] = TL_New(date21,time21,fr[j],date22,time22,fr[j]);
TL_SetColor(TL2[j],RED);
TX2[j] = Text_New(date22,time22,fr[j],NumToStr(fr[j],2));
Text_SetStyle(TX2[j],1,0);
}
}
Else If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
ZZ[0] = L;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
TL_SetEnd(TL2[j],date22,time22,fr[j]);
Text_SetLocation(TX2[j],date22,time22,fr[j]);
}
}
}
Else If ma1 > ma2 Then
{
If ma1[1] <= ma2[1] Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
ZZ[j+1] = ZZ[j];
}
HiVal[0] = H;
HiBar[0] = 0;
ZZ[0] = H;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+"(틱수):"+NumToStr(abs(value11-value11[1])/PriceScale,0));
Text_SetStyle(tx,2,0);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
TL3[j] = TL_New(date31,time31,fr[j],date32,time32,fr[j]);
TL_SetColor(TL3[j],CYAN);
TX3[j] = Text_New(date22,time22,fr[j],NumToStr(fr[j],2));
Text_SetStyle(TX3[j],1,0);
}
}
Else If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
ZZ[0] = H;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
for j = 0 to 6
{
TL_SetEnd(TL3[j],date32,time32,fr[j]);
Text_SetLocation(TX3[j],date32,time32,fr[j]);
}
}
}
TL_SetSize(TL1,선두께);
2019-09-25
186
글번호 132204
답변완료
선긋기 부탁 드림니다.
* 많은 도움에 감사 드립니다.
* 아래 청산 수식에 의해서 새벽에 청산이 되는데......
새벽 시간 02:00 ~ 04:30 에는 수익이 10틱이면 청산 로직 좀 부탁 드림니다.
즉 새벽에는 편동폭이 작으므로 매수든 매도든 10틱 이면 청산 부탁 드림니다.
if sdate != sdate[1] Then SetStopEndofday(043000);
if bdate != bdate[1] Then SetStopEndofday(0);
* 아래 식에서 점은 찍히는데 밑즐선이 2개 필요 합니다.
1선은 : 전 점(▲)에서 시작하여 다음점(▲)이 찍힐때 까지 수평선 과
2선은 : 전 점(▲) 과 다음점(▲)을 연결 하는 선이 필요 합니다.
var : TL1(0),TL2(0),tx1(0),tx2(0);
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if CrossUp(var1, var2) Then { Tx1 = Text_New(sdate,stime,l-0.01 ,"▲"); Text_SetColor(Tx1,RED); Text_SetSize(tx1,20); }
* 항상 고맙 습니다. 환절기 감기 조심하시구요....
2019-09-25
223
글번호 132203
답변완료
요청합니다
수식지왕님의 피보나치팬입니다.
팬의 두께와 색상변경 옵션을 넣어주세요.
감사합니다.
#==========================================#
# 지 표 명 : 피보나치 팬(Fans)
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:length(10),기준일(20110101),파동선두께(2);
Var:j(0),jj(0),jjj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),
TL1(0);
Array:고[5,4](0),저[5,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime
역사적고점[5](0),역사적저점[5](0);
#==========================================#
If Index == 0 Then
{
고[1,1] = H;
저[1,1] = L;
}
Condition1 = Highest(H,length) == H and 최종고가 <> H;
Condition2 = Lowest (L,length) == L and 최종저가 <> L;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리
Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = H; // 신규고점을 체크하기 위해 저장
If 최종변곡점 == "저점" Then
{
For j = 5 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,RED);
}
Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
If 기준일 <= Date and 역사적고점[1] < 고[1,1] Then
{
For jjj = 1 To 4
{
역사적고점[jjj] = 고[1,jjj];
}
}
최종변곡점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = L;
If 최종변곡점 == "고점" then
{
For j = 5 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLUE);
}
Else If 저[1,1] > L then
{
저[1,1] = L;
저[1,3] = sDate;
저[1,4] = sTime;
저[1,2] = Index;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
If 기준일 <= Date and ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then
{
For jjj = 1 To 4
{
역사적저점[jjj] = 저[1,jjj];
역사적고점[jjj] = 0; // 역사적 고점 초기화
}
}
최종변곡점 = "저점";
}
#==========================================#
Var:기울기(0);
Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호
If Index == 0 Then
{
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
}
If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then
{
If 역사적고점[1][1] != 역사적고점[1] or 역사적저점[1][1] != 역사적저점[1] Then
{
기울기 = (역사적고점[1] - 역사적저점[1]) / (역사적고점[2] - 역사적저점[2]);
for j = 1 to 7
{
If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고
fr[j,2] = 기울기 * fr[j,1] * (index - 역사적저점[2]) + 역사적저점[1]; // 피보나치 비율을 곱해서 계산
fr[j,3] = TL_New(역사적저점[3],역사적저점[4],역사적저점[1],sDate,sTime,fr[j,2]); // 라인을 생성
}
}
Else
{
for j = 1 to 7
{
fr[j,2] = 기울기 * fr[j,1] * (index - 역사적저점[2]) + 역사적저점[1];
TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]);
}
}
}
2019-09-24
298
글번호 132202