커뮤니티

예스랭귀지 Q&A

글쓰기

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
1458
글번호 230811
지표
답변완료

안녕하세요

공부하다가 질문 올립니다 1. if bdate=!bdate[1] then =>>봉의 영업날이 1봉전 영업날과 다르다면, 의역하면 장이 시작되고 첫봉에라고 해석하면 될까요?? 2. if bdate=!bdate[1] then { } else { { 이런식일때 여기서 else가 의미하는 상황은 뭐가 될까요? 첫봉 말고 오른쪽으로 쭈욱 진행될때라는 의미로 해석이 가능할까요?
프로필 이미지
돈을잃자
2024-03-08
725
글번호 177306
시스템
답변완료

지표의수평선과 종가선 그리기

감사합니다 그림과 같이 아래지표의 수평선과 종가선을 그리고자 합니다 input : length(21),hh(8),mult(2),k(2); var : src(0),n(0),tx(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0); src = Close; n = barindex; 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; Plot1(y2); Plot2(y2+mae); Plot3(y2-mae); 1 PLOT2 의 지표가 N봉(변수처리) 기간중 지표의 최고가에서 최초로 하락하기 시작하는 첫봉에서 지표의 종가선을 그리고 가격의 종가선을 그립니다. 2. PLOT3 의 지표가 N봉(변수처리) 기간중 지표의 최저가에서 최초로 상승하기 시작하는 첫봉에서 지표의 종가선을 그리고 가격의 종가선을 그립니다.
프로필 이미지
jdavid
2024-03-08
870
글번호 177299
지표
답변완료

수식추가

Inputs : Period(170), Sence(1.3), 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)); #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 Plot1(VLineUp,"VLineUp", Red); else if DnWave[1] then Plot1(VLineDn,"VLineUp", Blue); */ end; input : P(10),short(12),long(26),sig(9); var : mav(0),macdo(0),T(0); mav = ma(C,P); MACDo = MACD_OSC(short,long,sig); if T <= 0 and upwave[1] and c > mav and macdo > 0 Then { t =1; Buy(); } if T >= 0 and dnwave[1] and c < mav and macdo < 0 Then { T = -1; Sell(); } 안녕하세요 위식에서 추가부탁드립니다 DATE 2 30분봉 추가 INPUT 30분봉 매수 기존식에서 30분봉 양봉일때 매수 매도 기존식 + 30분봉 음봉일때 매도
프로필 이미지
아트정
2024-03-08
785
글번호 177298
시스템

목마와숙녀 님에 의해서 삭제되었습니다.

프로필 이미지
목마와숙녀
2024-03-08
0
글번호 177296
시스템

목마와숙녀 님에 의해서 삭제되었습니다.

프로필 이미지
목마와숙녀
2024-03-08
0
글번호 177295
시스템
답변완료

쌍봉

게시판의 수식입니다. 아래 buy 수식과 정반대인 sell 수식 작성 부탁드립니다. 항상 고맙습니다 ********************************************************************************** inputs: ATRLength(7), Strength(3); input : 쌍바닥상(5),쌍바닥하(5); var : STrend(0),ATRv(0), avgv(0), dnv(0), upv(0), trend(1), flag(0), flagh(0), ST(0),hl(0); var : idx(0),hh(0),ll(0),EP1(0),EP2(0); var : ema1(0),ema2(0),ema3(0),h1(0),l1(0); Ep1 = 2/(ATRLength+1); Ep2 = 2/(Strength+1); idx = idx+1; if idx < ATRLength Then { hh = DayHigh; ll = daylow; } Else { hh = Highest(High, ATRLength); ll = Lowest(Low, ATRLength); } if idx < Strength Then { h1 = DayHigh; l1 = daylow; } Else { h1 = Highest(High, Strength); l1 = Lowest(Low, Strength); } hl = hh-ll; if idx == 1 Then { ema1 = hl; ema2 = h; ema3 = l; } Else { ema1 = hl * EP1 + ema1 * (1-EP1); ema2 = h * EP2 + ema2 * (1-EP2); ema3 = l * EP2 + ema3 * (1-EP2); } atrv = ema1; avgv = (ema2+ema3)/2; upv = avgv + ATRv; dnv = avgv - ATRv; if idx >= 2 then { if c > upv[1] and c > h1[1] then trend = 1; else if c < dnv[1] and c < l1[1] then trend = -1; if trend < 0 and trend[1] > 0 then flag=1; else flag=0; if trend > 0 and trend[1] < 0 then flagh = 1; else flagh = 0; if trend > 0 and dnv < dnv[1] then dnv=dnv[1]; if trend < 0 and upv > upv[1] then upv=upv[1]; if flag == 1 then upv = avgv + ATRv; if flagh == 1 then dnv = avgv - ATRv; if trend == 1 then ST = dnv; else ST = upv; STrend = trend; } if Trend != Trend[1] Then { if Trend == 1 Then { var1 = h; var2 = var1[1]; if st<dayhigh-0.7 and Var4 > 0 and var3 <= Var4+PriceScale*쌍바닥상 and var3 >= Var4-PriceScale*쌍바닥하 Then { Buy("b"); } } Else { Var3 = l; Var4 = Var3[1]; } } Else { if Trend == 1 Then { if h > var1 Then var1 = h; } if Trend == -1 Then { if l < var3 Then var3 = l; } }
프로필 이미지
목마와숙녀
2024-08-01
767
글번호 177294
시스템

고성 님에 의해서 삭제되었습니다.

프로필 이미지
고성
2024-03-08
1
글번호 177292
지표
답변완료

좋은 주말 되십시요^^

좋은 주말 되십시요** <요청 사항> https://www.youtube.com/watch?v=162SlkuTcs0 https://www.youtube.com/watch?v=JSqwubnXmwo https://www.youtube.com/watch?v=_fRtlnU8FQw https://www.youtube.com/watch?v=lCIw8uaHAJE https://www.youtube.com/watch?v=7CBoAzfK0jg 안녕하세요 예스스탁입니다. input : p1(10),P(10),p2(10),k(2); var : a(false),b(0); a=c<highest(c,p1)-ATR(p)*k or c<lowest(c,p2)[1]; if a == true Then b = h; if b > 0 Then Plot1(b); 즐거운 하루되세요 > wasong 님이 쓴 글입니다. input : per(8); input : smthit(false); input : type(0); #1: SMA, 2: EMA, 3: WMA, 4: RMA input : smthper(5); input : colorbars(false); input : showsignals(false); var : mav(0),atrv(0),out(0),variant(0),alpha(0),rma(0),colorout(0),tx(0); mav = ma(close - close[per], per); atrv = atr(per); out = mav/atrv * 50 + 50; if type == 1 Then variant = ma(out, smthper) ; else if type == 2 Then variant = ema(out, smthper); else if type == 3 Then variant = wma(out, smthper) ; else if type == 4 Then { alpha = 1/smthper; rma = IFf(IsNaN(rma[1]) == true, ma(out, smthper) , alpha * out + (1 - alpha) *IFf(IsNan(rma[1])==true,0,rma[1])); variant = rma; } out = iff(smthit ,variant , out); colorout = iff(out > 50 , green , red); plot1(out,"out",colorout); plot2(50,"50",gray); if CrossUp(out,50) Then { tx = Text_New(sDate,sTime,L,"▲"); Text_SetColor(tx,Green); Text_SetStyle(tx,2,0); } if CrossDown(out,50) Then { tx = Text_New(sDate,sTime,H,"▼"); Text_SetColor(tx,Red); Text_SetStyle(tx,2,1); } 즐거운 하루되세요 안녕하세요 예스스탁입니다. input : Period(10),multiple(2); var : base(0),upper_band(0),downtrend(0); Base=(H+L)/2; upper_band = base+atr(period)*multiple; if lowest(upper_band,period)[1] > upper_band Then downtrend = upper_band; Plot1(downtrend); 즐거운 하루되세요 var : A(0),B(0),EU(0),ED(0),S1(0),S2(0),S3(0),SU(0),HU(0); A=EnvelopeUp(20,6); B=EnvelopeDown(20,6); EU=((A+B)/2)+0.5*ATR(5); ED=((A+B)/2)-0.5*ATR(5); S1=Ema(EU,5); S2=Ema(ED,5); S3=(S1+S2)/2; SU=iff(C>S3,S1,0); if SU > SU[1] Then HU = SU; if HU > 0 Then Plot1(HU); 즐거운 하루되세요 input : A_Period(10),Period(20),ratio(1),기간(5); var : 가격(0),A(0),upt(0),dnt(0),cc(0),turn(0),라인(0),value(0); 가격 = (H+L)/2; A=atr(A_period); upT=Ema(가격+A*ratio,기간); dnT=Ema(가격-A*ratio,기간); CC=CCI(period); turn= iff(CC>=0 && dnT>dnT[1],1, iff(CC<0 && upT<upT[1],-1,0)); 라인=iff(turn==-1,upT,dnT); if turn==1 or turn==-1 Then value = 라인; Plot1(value); 즐거운 하루되세요 안녕하세요 예스스탁입니다. 1 input : Period(10),sig(10); var : sumTR(0),TH(0),TL(0),cnt(0),A(0),ATRV(0); var : ii(0),sumATR(0),ATRS(0); sumATR = 0; for ii = 0 to sig-1 { sumTR = 0; for cnt = ii to ii+Period-1 { TH = max(DayClose(cnt),DayOpen(cnt)); TL = min(DayClose(cnt),DayOpen(cnt)); sumTR = sumTR + (TH-TL); } A = sumTR/Period; sumATR = sumATR+A; if ii == 0 Then ATRV = A; } ATRS = sumATR/Sig; plot1(ATRV); plot2(ATRS); 안녕하세요 예스스탁입니다. input : coeff(1); input : AP(14); input : novolumedata(1);#1:true, 0:False var : atrv(0),src(0),upt(0),downt(0),AlphaTrend(0); var : buySignalk(False),sellSignalk(False); ATRv = ma(TrueRange, AP); src = close; upT = low - ATRv * coeff; downT = high + ATRv * coeff; Condition1 = False; if novolumedata == 1 and rsi(AP) >= 50 Then Condition1 = true; if novolumedata == 0 and MFI(AP) >= 50 Then Condition1 = true; AlphaTrend = iff(Condition1 , IFf(upT < iff(isnan(AlphaTrend[1])==true,0,AlphaTrend[1]), iff(isnan(AlphaTrend[1])==true,0,AlphaTrend[1]) , upT),IFf(downT > iff(isnan(AlphaTrend[1])==true,0,AlphaTrend[1]) , iff(isnan(AlphaTrend[1])==true,0,AlphaTrend[1]) , downT)); plot1(AlphaTrend,"k1",Blue); plot2(AlphaTrend[2],"k2",Red); 즐거운 하루되세요 안녕하세요 예스스탁입니다. 1 input : Length(5),xPrice(close); var : xe1(0),xe2(0),xe3(0),xe4(0),xe5(0),xe6(0); var : b(0),c1(0),c2(0),c3(0),c4(0),nT3Average(0); xe1 = ema(xPrice, Length); xe2 = ema(xe1, Length); xe3 = ema(xe2, Length); xe4 = ema(xe3, Length); xe5 = ema(xe4, Length); xe6 = ema(xe5, Length); b = 0.7; c1 = -b*b*b; c2 = 3*b*b+3*b*b*b; c3 = -6*b*b-3*b-3*b*b*b; c4 = 1+3*b+b*b*b+3*b*b; nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3; plot1(nT3Average,"T3",lime); 안녕하세요 예스스탁입니다. input : Period(20),multiple(2); var : base(0),upper_band(0),downtrend(0),lower_band(0),uptrend(0); var : Emav(0); base=(H+L)/2; upper_band=base + atr(period)*multiple; lower_band=base - atr(period)*multiple; if lowest(upper_band,period)[1]>upper_band Then downtrend=upper_band; if highest(lower_band,period)[1]<lower_band Then uptrend=lower_band; Emav = Ema(C,120); var1 = iff(Emav<c,uptrend,downtrend); Plot1(downtrend); Plot2(uptrend); Plot3(var1); 즐거운 하루되세요 아래 수식에서 박스로 수식 요청 드립니다. 즉 수직선 줄을 우측 으로 30봉 까지 박스 형태로 그리고 싶습니다. (색상 : 회색 채우기) 선두께 : 2 var26 = ma(c,5) ; var40 = ma(c,10) ; if CrossUp(Var26,VAR40) Then { PlotPaintBar((C+L)/2-PriceScale*20,(C+L)/2-PriceScale*30 ,"강조",Rgb(255,0,0),Def,5); } * 좋은 주말 되시고 건강 하세요^^
프로필 이미지
요타
2024-08-07
1251
글번호 177291
강조
답변완료

변환 부탁드립니다

종목검색식으로 변환부탁드려요 A=(c-bbandsdown(period,d1))/(bbandsup(period,d1)-bbandsdown(period,d1))*100; crossup(A,0) 지표설정 period:60 d1:3
프로필 이미지
무건
2024-03-08
1097
글번호 177290
종목검색