커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1585
글번호 230811
답변완료
추세선 일정 크기
input : Period(25),선두께(2),바닥상1(2),바닥하1(2),pt(0.2);
Var:상승색(Red), 하락색(Blue);
Var:j(0),T(0),txx(0),txxx(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),tl8(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),tl9(0),tx4(0),vTL(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);
Plot1(value12);
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];
TL_Delete(tl);
TL = TL_New_Self(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New_Self(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
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]);
}
Text_SetSize(tx,25);
Text_SetColor(Tx,Red);
Text_SetStyle(tx,1,1);
if abs(value12[1]-value11[1]) < 0.4 Then
Text_Delete(tx);
if abs(value12[1]-value11[1]) > 0.45 Then
Text_Delete(tx);
tx = Text_New_Self(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Black);
Text_SetStyle(tx,1,0);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
Condition1 = False;
if Condition1 == False and Value12 < value11-0.45 Then
{
Tx4=Text_New_Self(date11,time11,Value11+PriceScale*1,"●");
Condition1 = true;
}
}
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];
Text_SetString(tx,NumToStr(value12-value11,2));
Text_SetLocation(tx,sDate,sTime,value12);
if Condition1 == False and Value12 < value11-0.45 Then
{
Tx4 =Text_New_Self(date11,time11,Value11+PriceScale*2,"●");
Condition1 = true;
Text_SetColor(Tx4,Red);
Text_SetStyle(tx4,2,2);
Text_SetSize(tx4,50);
}
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
if Condition1 == true Then
Text_Delete(tx4);
if abs(value11-value12) >= 0.5 Then
{
}
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];
TL_Delete(tl);
TL = TL_New_Self(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New_Self(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
if LoVal[2] > 0 and max(LoVal[0],LoVal[1],LoVal[2]) <= min(LoVal[0],LoVal[1],LoVal[2])+pt Then
{
txx = Text_New_Self(sDate[LoBar[0]],sTime[LoBar[0]],Loval[0],"●");
Text_SetColor(txx,Lime);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,27);
}
Condition1 = False;
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 Then
{
Condition1 = true;
Txx =Text_New_Self(date11,time11,Value11-PriceScale*0,"●");
Text_SetColor(Txx,Magenta);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,20);
}
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]);
}
Text_SetSize(tx,25);
Text_SetColor(Tx,Blue);
Text_SetStyle(tx,1,0);
if abs(value12[1]-value11[1]) < 0.5 Then
Text_Delete(tx);
tx = Text_New_Self(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Red);
Text_SetStyle(tx,1,1);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
}
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];
Text_SetString(tx,NumToStr(value12-value11,2));
Text_SetLocation(tx,sDate,sTime,value12);
}
}
Text_SetColor(Txxx,Black);
Text_SetSize(txxx,30);
TL_SetSize(TL1,선두께);
크기가 0.35p 에서 0.45p 사이인 상승 추세선만, 상승 추세선 하단에 동그라미 표시 추가. 감사합니다.
2023-01-25
1032
글번호 165641
답변완료
시스템 작성의뢰
수고 하십니다 !
e-micro Eur 1틱 차트 에서 이평선이 정배열되고 pvi지표가 100.60 이상 이고 1920 이평선과 3840 이평선의 간격이 16틱 이상 벌어지고
nvi 지표가 100.20 이상 올라가고 120 이평선과 240
이평선이 다운 크로스 할때 매도 하여 3840 이평선이 7680 이평선을 다운 크로스 하여 역배열이 된다음 120 이평선과 240 이평선이
업 크로스 할때 청산을 하고
3840 이평선이 7680 이평선을 다운크로스 하여 역배열이 된다음 1920 이평선과 3840 이평선의 간격이 16틱이상 벌어지고 nvi지표가 99.90이하로 내려가고 pvi
지표가 99.90 이하로 내려가고 120 이평선이 240 이평선을 업크로스 할때 매수를 하여 3840 이평선이 7680 이평선을 업 크로스
한다음 120 이평선이 240
이평선을 다운크로스 할때 청산을 한다
2023-01-23
720
글번호 165640
답변완료
문의 드립니다.
전일 고가 위로 돌파 시 매수 진입/ 청산은 20틱 위에서 매도 청산 완료/
손절은 전일 고가 아래로 돌파 시 할 것
전일 저가 아래로 돌파 시 매도 진입/청산은 20틱 아래서 매수 청산 완료
손절은 전일 저가 위로 돌파 시 할 것
부탁드립니다^^
2023-01-23
666
글번호 165639
답변완료
분봉에서 일봉 3일 고가지수이동평균선 구현 문의
수고하십니다.
분봉에서 일간 3일 고가 지수이동평균선을 구현하고 싶습니다.
2003년 게시글에 나온대로 적용했더니 잘 안나와서 문의드립니다.
첨부한 이미지에서 초록색 선으로 나오네요.
주황색 선은 단순이평인데 이렇게는 구현 안되는지요
아래는 수식입니다.
Input : P1(3);
Var :
EP1(0),
JISU1(0),
PreJISU1(0),
DINDEX(0);
EP1 = 2/(P1+1);
if date != date[1] then {
DINDEX = DINDEX + 1;
PreJISU1 = JISU1[1];
}
if DINDEX <= 1 then {
JISU1 = high;
}
else {
JISU1 = h * EP1 + PreJISU1 * (1-EP1);
}
plot1(JISU1,"지수이동평균1");
2023-01-24
969
글번호 165638
답변완료
지표
항상감사합니다.
80177 수정부탁드립니다.
시간표시가 챠트상에나옵니다.
1]실시간에 연동이 안되어서요
1분이라면 00:00:00에
초 부분이 00부터~59까지 움직일것 같은데
어느시간대에 멈추어있다가 59이런식으로 움직입니다.
각 상품마다 같은 1분인데 초표시가 다르게 나옵니다.
2]5분챠트는 4분 으로 표시되고 초만 바뀌나요
00:04:40
3] 60분도 00:59:59에 멈추어있읍니다
4] 질문을 잘못했다면
현재 캔들 오른쪽에 실시간 시간표시 부탁드립니다.
input : P(5);
var : S1(0),D1(0),vv(0),sTM(0),eTM(0);
Var : SSc(0),TSc(0),second(0);
var : HH(0),MM(0),SS(0),str(""),tx(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = Bdate;
}
if D1 > 0 then
{
if sdate == D1 Then
sTM = TimeToMinutes(stime)-S1;
Else
sTM = TimeToMinutes(stime)+1440-S1;
if date == D1 Then
eTM = TimeToMinutes(time)-S1;
Else
eTM = TimeToMinutes(time)+1440-S1;
var1 = sTM*60;
var2 = FracPortion(stime/100)*100;
SSc = var1+var2;
value1 = eTM*60;
value2 = FracPortion(time/100)*100;
TSc = value1+value2;
Second = TSc-SSc;
HH = Floor(second/3600);
MM = Floor((second%3600)/60);
SS = Floor(second%60);
str = "";
if HH > 0 Then
{
if HH >= 10 Then
str = str + NumToStr(HH,0)+":";
Else
str = str + "0"+NumToStr(HH,0)+":";
}
Else
str = str + "00"+":";
if MM > 0 Then
{
if MM >= 10 Then
str = str + NumToStr(MM,0)+":";
Else
str = str + "0"+NumToStr(MM,0)+":";
}
Else
str = str + "00"+":";
if SS > 0 Then
{
if SS >= 10 Then
str = str + NumToStr(SS,0);
Else
Str = str + "0"+NumToStr(SS,0);
}
Else
str = str + "00";
Text_Delete(tx);
tx = Text_New(sDate,sTime,h," "+str);
Text_SetStyle(tx,0,1);
}
2023-01-23
724
글번호 165637
답변완료
수식부탁드립니다.
안녕하세요? 수식부탁드립니다.
1. 진입이 여러 차례에 걸쳐 이루어질 때에,
마지막 진입분의 가격은 latestentryprice 라고 알고 있습니다. 그런데, 마지막 진입분을 지정하여 청산하라고 하는 경우, 청산 후에는 latestentryprice 라고 하면 청산된 마지막 진입분의 직전 진입분 가격인가요 아니면 여전히 청산된 먀지막 진입분 가격인가요?
2. 진입이 여러 차례에 걸쳐 이루어졌을 때에, 3번째 진입분의 가격, 5번째 진입분의 가격 하는 식으로 특정 회차 진입분의 가격을 특정하는 방법은 무엇인가요?
2023-01-24
621
글번호 165636
답변완료
문자변수에 같은 문자를 원하는갯수로 넣는 방법............
1. 문자변수에 들어있는 특정문자 갯수를 세는 방법
2. 문자변수에 특정 문자을 원하는 갯수 만큼 넣는 방법
예를 들어
var; tx1("") ;
if 조건1 then
tx1 = " "; // 공백10개
else
tx1 = " "; //공백5개
이것도 문자 변수일때는 else 은 안되고
if !(조건1) then 으로 해야 하는거 같는데 ????.
또
if 조건2 then
tx1 에 들어있는 문자(공백)갯수만큼 tx1에 문자"-"을 넎은 방법
else
tx1 에 들어있는 문자(공백)을 3개만 지우는 방법
##
텍스트나 그리드 함수에서
챠트상의 x축의 좌표를 잡아주는 방법으로 활용하려고 합니다..
방법이 있을까요???
이 방법은 안되고 다른 좋은 방법이 있다면 ...
알려주시면 감사하겠습니다.
2023-01-22
552
글번호 165635
아침 님에 의해서 삭제되었습니다.
2023-01-24
115
글번호 165634
아침 님에 의해서 삭제되었습니다.
2023-01-24
68
글번호 165633