커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6844
글번호 230811
답변완료
예스랭귀지로 변환 부탁드려요
(CrossUp(C,Highest(H,3,1))
or C>Highest(H,3,1)) and
V>V(1)*1.5 and
C>ma(C,5) and
ma(C,5)>ma(C,20)
변환 부탁드립니다.
즐거운 하루 보내세요~
2024-11-29
785
글번호 185776
답변완료
수식추가
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
end;
Inputs : DDD(20150309), LEN(300), HL_ED(60), CC(Black);
Vars : DBN1(0), KK1(0), DD1(0), KK2(0), DD2(0);
var : val2(0),v1(0),v2(0);
If STime >= 080000 And STime[1] < 080000 Then Begin
DBN1 = 0;
KK1 = 0;
DD1 = 0;
KK2 = 0;
DD2 = 0;
End;
DBN1 = DBN1 + 1;
If STime >= 083000 And DD1 == 0 Then Begin
Val2 = O;
DD1 = 1;
KK1 = DBN1;
v1 = 0;
v2 = 0;
End;
if DD1 == 1 Then{
if C > val2 and UpWave[1] Then{
buy();
}
if C < val2 and DnWave[1] Then{
sell();
}
}
안녕하세요
위식에 청산손절식 추가부탁드림니다
매수손절식 매수진입후 연속2개이상 음봉발생
단전봉의 저점과고점을 낮추는 음봉.
손절청산.
매도 매도진입후 연속2개이상 양봉발생
전봉의 고.저점을 높이는 양봉.
2024-11-29
781
글번호 185771
답변완료
지표 질문입니다
최근 20일간 시가~종가 진폭이 가장 큰 양봉 저가를 표시한다
최근 20일간 시가~종가 진폭이 가장 큰 음봉 고가를 표시한다
최근 20일간 고가~저가 진폭이 가장 큰 양봉 저가를 표시한다
최근 20일간 고가~저가 진폭이 가장 큰 음봉 고가를 표시한다
감사합니다
2024-11-29
694
글번호 185767
답변완료
예스랭귀지 수식 요청합니다
30분봉 CCI(20) 1봉(10봉중 최저값) < CCI(20) 0봉 &&
10분봉 CCI(20) 1봉(10봉중 최저값) < CCI(20) 0봉 &&
1분봉 CCI(20) 1봉(10봉중 최저값) < CCI(20) 0봉
이렇게 가능할까요?
감사합니다
2024-11-29
849
글번호 185766
답변완료
문의 드립니다!
안녕하세요!
아래수식에서 선의 발생시점에서 세로선도 동시에 발생토록 수정 부탁드립니다
* 선의 두께와 색상은 사용자지정이 가능토록 부탁합니다
감사합니다
input : af(0.1), maxAF(0.01);
input : 텍스트출력(0),선굵기(5);
var : T(0),cnt(0),count(0);
var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0),day1(0),day0(0),TL3(0);
var : TL1(0),TL2(0),tx1(0),tx2(0),tx11(0),tx22(0),idx(0),tx99(0),tx88(0);
Array : HD[20](0),HT[20](0),HH[20](0),LD[20](0),LT[20](0),LL[20](0);
Array : HI[20](0),LI[20](0);
var1 = CSar(af,maxAF);
if bdate != bdate[1] Then
{
day0 = sdate;
day1 = day0[1];
}
if crossup(c,var1) Then
{
T = 1;
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
HI[0] = index;
for cnt = 1 to 19
{
HD[cnt] = HD[cnt-1][1];
HT[cnt] = HT[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
HI[cnt] = HI[cnt-1][1];
}
if LL[0] > 0 Then
{
Condition1 = false;
for cnt = 1 to 19
{
if Condition1 == false and abs(LL[0]-LL[cnt]) >= PriceScale*1 and LD[cnt] <= day1 Then
{
Condition1 = true;
TL1 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]);
TL_SetSize(TL1,선굵기);
TL_SetColor(TL1,Orange);
idx = abs(LI[0]-LI[cnt]);
//tx99 = Text_New(LD[0],LT[0],LL[0],NumToStr(idx,0));
Text_SetColor(tx99,Orange);
Text_SetStyle(tx99,0,3);
Text_SetBold(tx99,2);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩.wav");
}
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
LI[0] = index;
for cnt = 1 to 19
{
LD[cnt] = LD[cnt-1][1];
LT[cnt] = LT[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
LI[cnt] = LI[cnt-1][1];
}
if HH[0] > 0 Then
{
Condition2 = false;
for cnt = 1 to 19
{
if Condition2 == false and abs(HH[0]-HH[cnt]) >= PriceScale*1 and HD[cnt] <= day1 Then
{
Condition2 = true;
TL2 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]);
TL_SetSize(TL2,선굵기);
TL_SetColor(TL2,green);
idx = abs(HI[0]-HI[cnt]);
//tx99 = Text_New(HD[0],HT[0],HH[0],NumToStr(idx,0));
Text_SetColor(tx99,green);
Text_SetStyle(tx99,0,3);
Text_SetBold(tx99,2);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩.wav");
}
}
}
}
if T == 1 then
{
if H > HH[0] Then
{
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
if Condition3 == false and abs(HH[0]-HH[cnt]) >= PriceScale*1 and HD[cnt] <= day1 Then
{
Condition3 = true;
TL3 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]);
TL_SetSize(TL3,선굵기);
TL_SetColor(TL3,Orange);
idx = abs(HI[0]-HI[cnt]);
//tx88 = Text_New(HD[0],HT[0],HH[0],NumToStr(idx,0));
Text_SetColor(tx88,Orange);
Text_SetStyle(tx88,0,3);
Text_SetBold(tx88,2);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩.wav");
}
}
}
if T == -1 then
{
if L < LL[0] Then
{
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
if Condition3 == false and abs(LL[0]-LL[cnt]) >= PriceScale*1 and LD[cnt] <= day1 Then
{
Condition3 = true;
TL3 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]);
TL_SetSize(TL3,선굵기);
TL_SetColor(TL3,green);
idx = abs(LI[0]-LI[cnt]);
//tx88 = Text_New(LD[0],LT[0],LL[0],NumToStr(idx,0));
Text_SetColor(tx88,green);
Text_SetStyle(tx88,0,3);
Text_SetBold(tx88,2);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩.wav");
}
}
}
2024-11-29
736
글번호 185765
답변완료
수식 문의드립니다.
앞선 답변 감사드립니다.
DataCompress 라는 함수가 있습니다. 분봉, 일봉등을 결정할수가 있는데요.
예를들어 3분봉에만 시스템 신호가 나오게 작성하려면 어떻게 해야하나요.
혹은 3분봉에만 신호가 안나오게 작성하고 싶습니다.
2024-11-29
580
글번호 185764
살빼고싶다 님에 의해서 삭제되었습니다.
2024-11-29
18
글번호 185763
답변완료
지표식 요청 드립니다.
안녕하세요
항상 빠른 답변 감사 드립니다.
두가지 질문 드립니다.
첫째
당일 2시 시간을 기준으로 당일 고가 , 당일 저가, 2시종가 를 구하는 식이 궁금합니다.
둘째
아래 답변 해준것에 대해 수정을 요청 드립니다
1,
당일시가 N% +++> 전일종가 대비 당일 시가가 몇% 인지 표시하고자 합니다, 당일시가 = 1.2%(전종가 대비)
당일고가 N% +++> 전일종가 대비 당일 고가가 몇% 인지 표시하고자 합니다, 당일고가 = 7%(장중에 실시간 반영 되어 숫자가 변하겠지요)
input : per(3); 이 수식은 없어지겟죠 %값을 입력하는게 아니니...
2.
거래대금 표시가 자리수 표시가 없어 구분하기 어렵습니다. 자릿수 표시 수식 요청 드립니다.
만,억 단위로 구분 할 수 있는 수식을 요청 드립니다.
3. 글자 크기를 더 크게 가능한지요 노안으로 안습 ㅜㅜ
그럼 좋은 하루 되세요
input : per(3);
var : Grid(0);
if Index == 0 Then
{
Grid = Grid_New(1, 2, 5,White, Gray, 1, Gray, 0);
Grid_Cell(Grid,0,0,"당일시가 N%",0,0,BLACK,Green);
Grid_Cell(Grid,0,1,"당일고가 N%",0,0,BLACK,Green);
Grid_Cell(Grid,0,2,"당일거래대금",0,0,BLACK,Green);
Grid_Cell(Grid,0,3,"전일거대대금",0,0,BLACK,Green);
Grid_Cell(Grid,0,4,"거래대금",0,0,BLACK,Green);
Grid_Cell(Grid,1,0,NumToStr(DayOpen*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,1,NumToStr(DayHigh*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,2,NumToStr(Daymoney,0),0,0,BLACK,White);
Grid_Cell(Grid,1,3,NumToStr(daymoney,1),0,0,BLACK,White);
Grid_Cell(Grid,1,4,NumToStr(Money,0),0,0,BLACK,White);
}
if LastBarOnChart == 1 Then
{
Grid_Cell(Grid,1,0,NumToStr(DayOpen*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,1,NumToStr(DayHigh*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,2,NumToStr(Daymoney,0),0,0,BLACK,White);
Grid_Cell(Grid,1,3,NumToStr(daymoney,1),0,0,BLACK,White);
Grid_Cell(Grid,1,4,NumToStr(Money,0),0,0,BLACK,White);
}
Plot1(DayOpen);
2024-11-29
919
글번호 185762
답변완료
수고하십니다
항상노고에 감사드리며
타주기분봉으로 할수있게 부탁드립니다
input : length(20),hh(8),mult(3);
var : k(2),src(0),n(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0);
Var : tx1(0), tx2(0);
src = Close;
n = barindex;
//if IsLastBar업데이트[영문으로는 쓰기금지라 한글로 씀] and barindex>length then
//y = 0
sume = 0;
for i = 0 to length-1
{
sum = 0;
sumw = 0;
for j = 0 to length-1
{
w = exp(-(pow(i-j,2)/(hh*hh*2)));
sum = sum+src[j]*w;
sumw = sumw+w;
}
y2 = sum/sumw;
sume = sume+abs(src[i] - y2);
}
mae = sume/length*mult;
if CrossDown(src,y2+mae) then
{
tx1 = Text_New_Self(sdate,stime,H,"▼");
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,Cyan);
Text_setsize(Tx1,15);
}
if CrossUp(src,y2-mae) then
{
tx2 = Text_New_Self(sdate,stime,L,"▲");
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,Black);
Text_setsize(Tx2,15);
}
Plot1(y2);
Plot2(y2+mae);
Plot3(y2-mae);
2024-11-29
786
글번호 185761