커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4781
글번호 230811
매일상승 님에 의해서 삭제되었습니다.
2015-08-21
11
글번호 89739
답변완료
문의드립니다.
1. 전일 대비 거래대금 N% 증가한 종목
AND
2. 최근 A일 동안 최고가 갱신 종목
을 검색하고 싶습니다.
감사합니다.
2015-08-20
109
글번호 89738
ijh0316 님에 의해서 삭제되었습니다.
2015-08-20
0
글번호 89737
답변완료
수식 문의 드립니다
input:p10(10);
var:M30(0),DIF(0),SDP(0),SDM(0),TI(0);
M10=MA((C+0+H+L),12*P10);
DIF=(C+O+H+L)-M10;
SDP=SUM(IF(DIF>0,DIF,0),P10);
SDM=SUM(IF(DIF<0,-DIF,0),P10);
TI=SDP/(SDP+SDM)*100;
plot1(TI,"TI");
위에 SUM은 누적한다는 뜻입니다.
sum과같은 함수의경우 yt는 어떻게 구현하나요?
2015-08-20
111
글번호 89736
답변완료
수식문의
안녕하세요.
그림 1번이 매수, 2번이 매수 청산 하는 수식 부탁드립니다.
2015-08-20
108
글번호 89735
답변완료
부탁드립니다.
1. 죄송하지만 아래 1번 수식에서 한 지표에 다 표현이 되고 있는데 이것을 지표하나에 1개씩 표현되도록 부탁드립니다.
2. 그리고 하나더 아래 수식에서 같은 방식으로 매도진입자리만 지표로 표시되도록 추가부탁드립니다.
Input : Period(20), D(2);
var : BBup(0),BBdn(0);
BBup = BollBandUp(Period,D);
BBdn = BollBandDown(Period,D);
if crossup(c,BBup) then
buy();
if Crossdown(C,BBUP) then
sell();
3.아래 수식을 넣어주셨는데 위치가 다르게 나옵니다.
슬로우K가 위에선에 다았다 떨어지면 파란점, 밑에서 다았다 떨어지면 빨간점 부탁드립니다.
Inputs: sto1(10),sto2(5), XAvgLen(9), HiLoLen(50), Retrace(0.382);
Vars: HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
var : stok(0);
stok = StochasticsK(sto1,sto2);
HiHi = Highest(stok, HiLoLen);
LoLo = Lowest(stok, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
plot1(Hretrace-((HiHi-LoLo)*0.612),"저점상승");
plot2(Lretrace+((HiHi-LoLo)*0.612),"고점하락");
plot3(stok,"슬로우k");
늘 만족스러운 결과물을 주셔서 진심으로 감사드립니다.
----------------------------------------------------
1번.
Input : BBP(20), MultiD(2);
input : p(2);
Input : CCIP(9);
Input : WRPeriod(14);
Inputs: sto1(10),sto2(5), XAvgLen(9), HiLoLen(50), Retrace(0.382);
input : pt(0.2);
Input : RSIP(14);
Input : af(0.02), maxAF(0.2);
var : para(0);
var : RSIV(0);
Vars: HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
var : stok(0);
var : CCIv(0),WR(0),MAv(0),BBup(0),BBdn(0),BandB(0),T(0),T2(0),T3(0);
MAv = ma(C,BBP);
BBup = BollBandUp(BBP,MultiD);
BBdn = BollBandDown(BBP,MultiD);
BandB = ((C-BBdn)/(BBUp-BBdn))*100;
CCIv = CCI(CCIP);
WR = WILLR(WRPeriod);
var1=ma(c,p);
if var1 > var1[1] Then
T = 1;
Else
T = -1;
stok = StochasticsK(sto1,sto2);
HiHi = Highest(stok, HiLoLen);
LoLo = Lowest(stok, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
RSIV = RSI(RSIP);
para = SAR(af,maxAF);
if stime >= 070000 or stime < 033000 then{
if H >= O+0.2 and C > O Then
T2 = 1;
if L <= O-0.2 and C < O Then
T2 = -1;
}
if T == 1 and T[1] != 1 Then
plot1(1,"이평",RED);
if T == -1 and T[1] != -1 Then
plot1(1,"이평",blue);
if crossup(H,BBup) Then
plot2(2,"볼밴",BLUE);
if CrossDown(L, BBdn) Then
plot2(2,"볼밴",RED);
if crossup(BandB,10) Then
plot3(3,"Band%B",red);
if CrossDown(BandB,90) Then
plot3(3,"Band%B",BLUE);
if crossup(CCIv,-100) Then
plot4(4,"CCI",RED);
if CrossDown(CCIv,100) Then
plot4(4,"CCI",blue);
if crossup(WR,-80) Then
Plot5(5,"Williams'R",red);
if CrossDown(WR,-20) Then
Plot5(5,"Williams'R",BLUE);
if CrossDown(stok,Lretrace) Then
plot6(6,"retrace",RED);
if CrossDown(stok,Hretrace) Then
plot6(6,"retrace",blue);
if T2 == 1 and T2[1] != 1 Then
plot7(7,"7",RED);
if T2 == -1 and T2[1] != -1 Then
plot7(7,"7",blue);
if crossdown(RSIV,70) Then
plot8(8,"RSI",BLUE);
if CrossUp(RSIV,30) Then
plot8(8,"RSI",RED);
if para < C Then
T3 = 1;
Else
T3 = -1;
if T3 == 1 and T3[1] != 1 Then
plot9(9,"파라",RED);
if T3 == -1 and T3[1] != -1 Then
plot9(9,"파라",blue);
2015-08-20
154
글번호 89734
답변완료
부탁 드립니다.
해외선물에서 영업일 변경시간을 기준으로
유형1과 같이
당일데이터로만 계산되게 할수 있겠는지요?
유형1)
input : P(60);
var : OBVv(0),EP(0),Emav(0);
if Bdate != Bdate[1] Then
OBVv = 0;
If Close[0] > Close[1] Then
OBVv = OBVv + Volume;
If Close[0] < Close[1] Then
OBVv = OBVv - Volume;
EP = 2/(P+1);
if Bdate != Bdate[1] Then
Emav = OBVv;
if Bdate == Bdate[1] Then
Emav = OBVv * EP + emav* (1-EP);
var3 = OBVv-EMAV;
plot3(var3,"var3");
PlotBaseLine1(0,"0");
//질문수식//
Vars:
Price(0),
delta(0.1),
gamma(0),
alpha(0),
beta(0),
N(0),
Period(0),
MaxAmpl(0),
Num(0),
Denom(0),
DC(0),
DomCyc(0),
alpha1(0),
HP(0),
SmoothHP(0),
delta1(.1),
gamma1(0),
alpha2(0),
beta1(0),
IP(0),
Q1(0),
Ampl2(0),
Trend(0),
Ratio(0),
TV(0),
Width(0);
Arrays:
II[60](0),
OldI[60](0),
OlderI[60](0),
Q[60](0),
OldQ[60](0),
OlderQ[60](0),
Real[60](0),
OldReal[60](0),
OlderReal[60](0),
Imag[60](0),
OldImag[60](0),
OlderImag[60](0),
Ampl[60](0),
OldAmpl[60](0),
DB[60](0),
OldDB[60](0),
Raster[50](0),
OldRaster[50](0);
if CurrentBar > 1 then {
price = (H+L)/2;
alpha1 = (1 - Sine (360 / 30)) / Cosine(360 / 30);
HP = .5*(1 + alpha1)*(Price - Price[1]) + alpha1*HP[1];
SmoothHP = (HP + 2*HP[1] + 3*HP[2] + 3*HP[3] + 2*HP[4] + HP[5]) / 12;
IF CurrentBar < 7 Then SmoothHP = Price - Price[1];
IF CurrentBar == 1 THEN SmoothHP = 0;
}
delta = -.015*CurrentBar + .5;
If delta < .1 then delta = .1;
If CurrentBar > 12 Then Begin
For N = 12 to 60 Begin
beta = Cosine(720 / N);
gamma = 1 / Cosine(1440*delta / N);
alpha = gamma - SquareRoot(gamma*gamma - 1);
Q[N] = (.5*N / 6.28318)*(SmoothHP - SmoothHP[1]);
II[N] = SmoothHP;
Real[N] = .5*(1 - alpha)*(II[N] - OlderI[N]) + beta*(1 + alpha)*OldReal[N] - alpha*OlderReal[N];
Imag[N] = .5*(1 - alpha)*(Q[N] - OlderQ[N]) + beta*(1 + alpha)*OldImag[N] - alpha*OlderImag[N];
Ampl[N] = (Real[N]*Real[N] + Imag[N]*Imag[N]);
End;
End;
For N = 12 to 60 Begin
OlderI[N] = OldI[N];
OldI[N] = II[N];
OlderQ[N] = OldQ[N];
OldQ[N] = Q[N];
OlderReal[N] = OldReal[N];
OldReal[N] = Real[N];
OlderImag[N] = OldImag[N];
OldImag[N] = Imag[N];
OldAmpl[N] = Ampl[N];
OldDB[N] = DB[N];
End;
For N = 1 to 50 Begin
OldRaster[N] = Raster[N];
End;
MaxAmpl = Ampl[12];
For N = 12 to 60 Begin
If Ampl[N] > MaxAmpl then MaxAmpl = Ampl[N];
End;
For N = 12 to 60 Begin
If MaxAmpl <> 0 AND (Ampl[N] / MaxAmpl) > 0 Then DB[N] = -10*Log(.01 / (1 - .99*Ampl[N] / MaxAmpl)) / Log(10);
DB[N] = .33*DB[N] + .67*OldDB[N];
If DB[N] > 20 then DB[N] = 20;
End;
Num = 0;
Denom = 0;
For N = 12 to 60 Begin
If DB[N] <= 6 Then Begin
Num = Num + N*(20 - DB[N]);
Denom = Denom + (20 - DB[N]);
End;
If Denom <> 0 Then DC = .5*Num / Denom;
End;
DomCyc = Median(DC, 5);
If DomCyc < 6 Then DomCyc = 6;
if Currentbar > 1 then {
beta1 = Cosine(360 / DomCyc);
gamma1 = 1 / Cosine(720*delta1 / DomCyc);
alpha2 = gamma1 - SquareRoot(gamma1*gamma1 - 1);
IP = .5*(1 - alpha2)*(Price - Price[2]) + beta1*(1 + alpha2)*IP[1] - alpha2*IP[2];
Q1 = (Domcyc / 6.28318)*(IP - IP[1]);
Ampl2 = SquareRoot(IP*IP + Q1*Q1);
Trend = Price - Price[DomCyc - 1];
If Trend <> 0 and Ampl2 <> 0 Then Ratio = .33*Trend / Ampl2 + .67*Ratio[1];
If Ratio > 10 then Ratio = 10;
If Ratio < -10 then Ratio = -10;
TV = .05*(Ratio + 10);
}
Plot1(20*TV-10, "S51");
PlotBaseLine3(0,"0");
2015-08-20
177
글번호 89733
답변완료
거래선이용 시스템
아래지표식은 거래량을 선으로 표시한지표식입니다
이식을 이용해서 시스템조건을 만들고자 합니다
1.지표식
If V== highest(V,10) then
Var1=(C+H+L)/3;
Plot(var1);
질문1)
var1 의 궤적은 직선이며 봉1개에 1개의직선이 아니라 여러 개의봉에 1개의직선으로 되어있음
위식에서 var1 과 var1[1]은 한개의 봉구간으로 나타나는건지 아님 직선궤적의 여러개봉의변화구간의 값으로 저장되는건지 궁금합니다
질문2)
2-1 상승방향
현재의 var1이 앞전의 var1[1] 보다 크고  var1[1]<var1 : 거래선 상승
Var1 > var1[1] 이면 var10==1
Var1
+++++++++>>>
+
Var1[1] +
++++++++>>
2-2하락방향
현재의 var1이 앞전의 var1[1] 보다 작고  var1[1]>var1 : 거래선 하락
Var1<var[1] 이면 var10== -1
var1[1]
+++++++++>>
+
+ var1
+++++++++++>>>
감사합니다
2015-08-21
113
글번호 89730
답변완료
43689 문의입니다.
답변에 대해 문의드립니다.
"n봉전부터"... 기간설정이 없습니다.아마도 제가 n을 구분하지 않아서 그런것 같습니다.
그리고
아래 조건은 요청한 내용에 없는데 어떤의미인지 잘 모르겠습니다.
간단한 설명 부탁드립니다.
#Condition1이 true인 상태에서 60이평이 하락하면 1씩 증가
2015-08-20
107
글번호 89723