커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1544
글번호 230811
답변완료
수식수정
틱차트에서 VWAP차트를 쓰려는데요.
아래 수식 오류좀 점검 부탁드립니다.
Inputs:
ResetTime(093000); // 장 시작 시점
Vars:
CumVol(0), // 누적 거래량
CumPV(0), // 누적 가격 × 거래량
VWAP(0),
SessionReset(False); // 리셋 조건
// 세션 시작 시 누적값 리셋
If Time = ResetTime Then
Begin
CumVol = 0;
CumPV = 0;
SessionReset = True;
End
Else
SessionReset = False;
// 누적 계산
CumVol = CumVol + Volume;
CumPV = CumPV + Close * Volume;
If CumVol > 0 Then
VWAP = CumPV / CumVol;
// 출력
Plot1(VWAP, "VWAP");
2025-05-28
332
글번호 191252
답변완료
종목 검색 부탁드립니다.
AA=(H+L+C)/3;
BB=AA*V;
X1=SUM(BB,기간);
X2=SUM(V,기간);
dev1 = mult1 * stdev(AA, 기간);
dev2 = mult2 * stdev(AA, 기간);
dev3 = mult3 * stdev(AA, 기간);
CT=X1/X2;
CT+dev2;
기간: 120
mult1:1
mult2:2
mult3:3
라인을 돌파시 종목 검색식 부탁드립니다
2025-05-28
273
글번호 191251
답변완료
문의드립니다
안녕하세요?
현재신호가 발생하는봉보다 1봉 이전봉에 신호가 발생하게 할수있는지?궁금합니다
감사합니다
if signal_up == true Then
Buy();
{
tx = Text_New_Self(sDate[1],sTime[1],base[1],"◆");
Text_SetColor(tx,Orange);
Text_SetStyle(tx,2,2);
}
if signal_dn == true Then
Sell();
{
tx = Text_New_Self(sDate[1],sTime[1],base[1],"◆");
Text_SetColor(tx,Orange);
Text_SetStyle(tx,2,2);
}
2025-05-28
274
글번호 191248
답변완료
수식작성 부탁드립니다
아래 수식을 초 단위로 나타낼수 있도록 부탁 드립니다
(예시
nput : n(60);
var : S1(0),D1(0),sTM(0),et(0),ets(0),eTM(0);
Var : SS(0),TS(0),second(0),ii(0),cnt(0);
if Bdate != Bdate[1] Then
{
stm = TimeToMinutes(stime);
D1 = Bdate;
ii = 0;
}
if D1 > 0 then
{
ii = ii +1;
if date == D1 Then
eTM = TimeToMinutes(time)-S1;
Else
eTM = TimeToMinutes(time)+1440-S1;
ss = sTM*60;
et= eTM*60;
ets = FracPortion(time/100)*100;
TS = et+ets;
Second = TS-SS;
.
.
.
}
아래 수식 변경 부탁 드립니다.
Input : long(34),signal(9),Po(2);
var : hlc(0),hi0(0),lo0(0),Ema5(0),Ema6(0),mi0(0);
var : IMACD(0),sig(0),histo(0),IMACD색(0);
hlc = (h+l+c)/3;
hi0 = iff(IsNan(hi0[1]) == true, ma(high,long), hi0[1]*(long-1)+high)/long;
lo0 = iff(IsNan(lo0[1]) == true, ma(low,long), lo0[1]*(long-1)+low)/long;
Ema5 = ema(hlc, long);
Ema6 = ema(Ema5, long);
mi0 = Ema5+(Ema5-Ema6);
IMACD = iff((mi0>hi0), (mi0-hi0) , iff((mi0<lo0) , (mi0 - lo0) , 0));
sig = ma(IMACD, signal);
histo = IMACD-sig;
var1 = po;
Var2 = -po;
plot1(IMACD,"ImpulseMACD");
plot2(sig,"Signal");
plot3(histo,"Histo");
plot10(0,"0");
plot20(var1,"2");
plot30(Var2,"2");
2025-05-28
345
글번호 191245
답변완료
수식수정
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0),T(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));
#Plot1(VLineUp,"VLineUp");
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
#Plot2(VLineDn,"VLineDn");
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));
if UpWave[1] then
T = 1;
else if DnWave[1] then
T = -1;
end;
Input : BBP(20), MultiD(2),P(30);
var : BBmd(0),BBup(0),BBdn(0),mav(0);
BBmd = ma(C,Period);
BBup = BollBandUp(BBP,MultiD);
BBdn = BollBandDown(BBP,MultiD);
mav = ma(C,P);
if CrossDown(C,BBup) and t == -1 and c > mav Then
sell();
if crossup(C,BBdn) and t == 1 and c < mav Then
buy();
안녕하세요
수식수정부탁드려요
위식에서 신호 발생후 진입 조건을
-500틱이상 손실시 진입하는 조건으로 부탁드림니다
2025-05-28
262
글번호 191240
답변완료
종목 검색 부탁드립니다.
1. 캔들의 모양이 윗꼬리가 달린 양봉 캔들 종목 검색식 부탁드려요
2. 캔들모양이 윗꼬리가 있고, 아랫꼬리가 캔들몸통의 3/1 이하인 양봉 캔들 종목 검색식
3. 캔들의 모양이 도지 인 양봉 음봉 캔들 검색식
2025-05-28
314
글번호 191238
살빼고싶다 님에 의해서 삭제되었습니다.
2025-05-28
21
글번호 191235
답변완료
수식수정
안녕하세요
아래수식에서 당일 시가선을
전일종가나 전일 정산가 기준으로
변경해 주세요
input : Period(20),dv(2);
var : BBup(0),BBmd(0),BBdn(0),T(0);
BBup = BollBandUp(Period,dv);
BBmd = ma(c,Period);
BBdn = BollBandDown(Period,dv);
if CrossUp(c,bbup) Then
T = 3;
if CrossDown(c,bbup) Then
T = -3;
if CrossUp(c,bbmd) Then
T = 2;
if CrossDown(c,bbmd) Then
T = -2;
if CrossUp(c,bbdn) Then
T = 1;
if CrossDown(c,bbdn) Then
T = -1;
if C <= DayOpen-PriceScale*100 and
T != T[1] and T == 2 and T[1] == 1 Then
Buy();
if MarketPosition == 1 and T != T[1] and T == -1 Then
ExitLong();
if C >= DayOpen+PriceScale*100 and
T != T[1] and T == 3 and T[1] == -3 Then
Sell();
if MarketPosition == 1 and CrossUp(C,bbmd) Then
ExitShort(
2025-05-28
227
글번호 191234
답변완료
문의드립니다.
음봉이 연속(2봉이상)되어 있을 때 음봉들 중 최고고가를 "상단",
연속된 음봉들 중 최저 저가를 "하단"으로 했을 때
상단대비 하단이 -20% 이하인 종목의 검색식을 부탁드립니다.
하단/상단 <= 0.80
* 수정, 보완을 해야 해서 주석도 같이 부탁드립니다.
2025-05-28
270
글번호 191233