커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8105
글번호 230811
좌오비우오비 님에 의해서 삭제되었습니다.
2018-06-07
14
글번호 119543
답변완료
추세선굵기 조정
귀사 도움에 항상 감사합니다.
하기수식에서 추세선 굵기를 키우고 싶습니다.
빠른답변부탁드립니다
Var : length(0);
length=7;
Var : j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0);
var : TL1(0),TL2(0),T(0),Text1(0),처리구분("");
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 0, 0);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);#(Text1, 2, 0);
}
}
if 처리구분 == "고점처리" Then TL_SetColor(TL1,YELLOW);
if 처리구분 == "저점처리" Then TL_SetColor(TL1,CYAN);
TL_SetSize(TL1,3);
If 처리구분 == "고점처리" Then T = 1;
If 처리구분 == "저점처리" Then T = -1;
2018-06-07
339
글번호 119535
답변완료
수식작성 요청드립니다 !
안녕하세요 고생이 많으십니다 !
30분봉 시가에 매수 (20틱 손절 30틱 익절 설정)
손절과 익절이 발생하지 않는다면 30분봉 종가에 무조건 청산
이렇게 30분마다 반복되는 수식 요청 드립니다
2018-06-07
281
글번호 119534
답변완료
문의드립니다.
if v > v[1] && v[1] > v[2] && v[2] > v[3] && v[3] > v[4] then find(1);
이걸 쉽게 표현할 수는 없나요??
2018-06-07
281
글번호 119532
답변완료
수정 부탁드립니다.
1. 안녕 하십니까? 도움 주서셔 감사드립니다.
2. 아래 붙임에 ma1 < ma2 Then을 Period(20) 고점돌파 전환 하락돌파전환으로 변경 부탁드립니다.
3. 파동선에 파동 중심선을 추가로 삽입 부탁드립니다.
4. ZZ[0] = L; 이것은 무엇을 설정을하기 위해 있나여?
5. 가끔 추세선이 에러가 나는데..갭,틱 등에 다른곳에서 이중으로 챠트가 그려 집니다. 이유가 무엇인지?
Var:ShortPeriod(5),LongPeriod(14),선두께(1),상승색(BWHITE), 하락색(BWHITE);
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[6](0),fr[6](0),TL2[6](0),TL3[6](0),TX2[6](0),TX3[6](0);
r[0] = 0;
r[1] = 2;
r[2] = 3.;
r[3] = -1;
r[4] = -2.;
r[5] = 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,"●");
#동그라미 색상, 빨강
Text_SetColor(Tx,RED);
Text_SetStyle(Tx,2,2);
tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+NumToStr(value11,2)+NewLine);
Text_SetStyle(tx,2,1);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
TL2[0] = TL_New(date21,time21,fr[0],date22,time22,fr[0]);
TL_SetColor(TL2[0],RED);
TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]);
TL_SetColor(TL2[1],RED);
TL_SetStyle(TL2[1], 3);
TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]);
TL_SetColor(TL2[2],RED);
TL_SetSize(TL2[2],1);
TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2));
Text_SetColor(Tx2[2],BWHITE);
Text_SetStyle(TX2[2],1,1);
TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]);
TL_SetColor(TL2[3],RED);
TL_SetStyle(TL2[3], 3);
TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]);
TL_SetColor(TL2[4],RED);
TL_SetSize(TL2[4],1);
TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2));
Text_SetColor(Tx2[4],BWHITE);
Text_SetStyle(TX2[4],1,0);
TL2[5] = TL_New(date21,time21,fr[5],date22,time22,fr[5]);
TL_SetColor(TL2[5],RED);
}
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];
Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" ");
#동그라미 색상, 빨강
Text_SetColor(Tx,BLUE);
Text_SetStyle(Tx,1,0);
TL_SetEnd(TL2[0],date22,time22,fr[0]);
TL_SetEnd(TL2[1],date22,time22,fr[1]);
TL_SetEnd(TL2[2],date22,time22,fr[2]);
Text_SetLocation(TX2[2],date22,time22,fr[2]);
TL_SetEnd(TL2[3],date22,time22,fr[3]);
TL_SetEnd(TL2[4],date22,time22,fr[4]);
Text_SetLocation(TX2[4],date22,time22,fr[4]);
TL_SetEnd(TL2[5],date22,time22,fr[5]);
}
}
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,하락색);
Tx1 = Text_New(date11,time11,Value11,"●");
#동그라미 색상, 파랑
Text_SetColor(Tx1,BLUE);
Text_SetStyle(Tx1,2,2);
tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)+NewLine+NumToStr(value11,2));
Text_SetStyle(tx,2,0);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
TL3[0] = TL_New(date31,time31,fr[0],date32,time32,fr[0]);
TL_SetColor(TL3[0],BLUE);
TL3[1] = TL_New(date31,time31,fr[1],date32,time32,fr[1]);
TL_SetColor(TL3[1],BLUE);
TL_SetStyle(TL3[1], 3);
TL3[2] = TL_New(date31,time31,fr[2],date32,time32,fr[2]);
TL_SetColor(TL3[2],BLUE);
TL_SetSize(TL3[2],1);
TX3[2] = Text_New(date32,time32,fr[2],NumToStr(fr[2],2));
Text_SetColor(Tx3[2],BWHITE);
Text_SetStyle(TX3[2],1,1);
TL3[3] = TL_New(date31,time31,fr[3],date32,time32,fr[3]);
TL_SetColor(TL3[3],BLUE);
TL_SetStyle(TL3[3], 3);
TL3[4] = TL_New(date31,time31,fr[4],date32,time32,fr[4]);
TL_SetColor(TL3[4],BLUE);
TL_SetSize(TL3[4],1);
TX3[4] = Text_New(date32,time32,fr[4],NumToStr(fr[4],2));
Text_SetColor(Tx3[4],BWHITE);
Text_SetStyle(TX3[4],1,0);
TL3[5] = TL_New(date31,time31,fr[5],date32,time32,fr[5]);
TL_SetColor(TL3[5],BLUE);
}
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];
Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" ");
#동그라미 색상, 빨강
Text_SetColor(Tx,RED);
Text_SetStyle(Tx,1,1);
TL_SetEnd(TL3[0],date32,time32,fr[0]);
TL_SetEnd(TL3[1],date32,time32,fr[1]);
TL_SetEnd(TL3[2],date32,time32,fr[2]);
Text_SetLocation(TX3[2],date32,time32,fr[2]);
TL_SetEnd(TL3[3],date32,time32,fr[3]);
TL_SetEnd(TL3[4],date32,time32,fr[4]);
Text_SetLocation(TX3[4],date32,time32,fr[4]);
TL_SetEnd(TL3[5],date32,time32,fr[5]);
}
}
TL_SetSize(TL1,선두께);
2018-06-07
345
글번호 119531
fill 님에 의해서 삭제되었습니다.
2018-06-07
0
글번호 119530
답변완료
초 단위시간
초 단위시간표시는 어떻게 하는지요?
예) 1초, 2초, 3초, 5초 와 같이 예를 들어 주십시요.
2018-06-07
289
글번호 119529
답변완료
수식작성 부탁드립니다.
안녕하세요? 간단한 수식작성 부탁드립니다.
* 진입조건
1. 고점에서 양종가 < 음시가
양종가 > 음종가인 음봉매도
(고점과 진입봉 또는 진입전봉 고점과의 간격이 0~4(변수)틱 이내인것
2. 저점서 음종가>양시가
음종가<양종가인 양봉매수
(저점과 진입봉 또는 진입전봉 저점과의 간격이 0~4(변수)틱 이내인것
* 청산조건
손/익절 : 1.00/1.00P (변수)
* 고점의 정의 : 차트화면상 전저점서 1.00(변수)이상 상승한 상태
* 저점의 정의 : 차트화면상 전고점서 1.00(변수)이상 하락한 상태
* 변수는 모두 외부 변수로.
2018-06-06
297
글번호 119528
답변완료
부탁드립니다.
1. 분챠트에서 종가가 highest(h,20)[9]를 올라서면 매수하고, lowest(l,20)[9]를 내려서면 매도하라는 시스템식을 만드는데 있어서, 전에 매시간 20분부터 50분 사이에만 거래할 수 있도록시간제한 매수, 매도 진입표시가 되도록 부탁드렸는데 막상 구현이 되지 않는 것 같습니다. 다시한번 부탁드립니다.
2. 그리고 분챠트에서 종가가 highest(h,20)[5]를 올라서면 매수하고, lowest(l,20)[5]를 내려서면 매도하라는 시스템식을 만드면서 같은 시간대만큼은 매수든 매도든 먼저 나온 진입신호 하나만 1회 허용하는 시스템식을 구현해 주세요. 감사합니다.
2018-06-06
285
글번호 119527