커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

전일종가 지정

input : 전일종가(0); 전일종가 = DayClose(1); 전일 종가를 정의하고 싶어서 위와같은 수식을 삽입하였습니다. 그러나 "값을 대입할 수 있는 변수나 배열의 요소, 입력변수 배열의 요소가 와야 합니다." 라는 오류가 발생하였습니다. 어떻게 작성하면 될지 문의드립니다.
프로필 이미지
강장군
2023-04-26
920
글번호 168492
지표
답변완료

수식 문의

안녕하세요. 아래의 트뷰수식을 예스로 변환하고 싶습니다. 친절한 도움 항상 감사드립니다. indicator("RSI TREND FILTER",overlay=true) showrsi=input.bool(false,title='Show RSI Cloud',group='RSI ') showmidband=input.bool(false,title='Show RSI Mid Band',group='RSI ') showgrid=input.bool(false,title='Show RSI Levels',group='RSI Levels') grid=input.color(color.rgb(26, 22, 22, 34),'RSI LEVELS',group='RSI Levels') rsilen=input.int(14,'RSI LENGTH',group='RSI') rsima=input.int(100,'RSI 50 level',group='RSI') emalen=input.int(20,'RSI EMA Length',group='RSI') orsi=ta.rsi(close,rsilen) adjrsi=close+ta.atr(100)*orsi/100 rma=ta.ema(adjrsi,rsima) r1=plot(showrsi?adjrsi:na,display=display.all,title='RSI') r2=plot(rma,color=open>rma?#00ff08:open<rma?#ff0404:color.white,title='RSI MA',linewidth=2) fill(r1,r2,color=adjrsi>rma?color.rgb(76, 175, 79, 70):color.rgb(255, 82, 82, 75),title='RSI Cloud',display=showrsi?display.all:display.none) level2=input.float(10,'RSI LEVEL2',minval=10,maxval=100,group='RSI Levels') rmau=rma+ta.atr(100)*level2/10 rmal=rma-ta.atr(100)*level2/10 u=plot(rmau,display=showgrid?display.all:display.none,title='70',color=grid) l=plot(rmal,display=showgrid?display.all:display.none,title='30',color=grid) fill(u,l,color=color.rgb(232, 237, 242, 82),title='RSI ZeroBand',display=showmidband?display.all:display.none) level3=input.float(40,'RSI LEVEL3',minval=10,maxval=100,group='RSI Levels') rmau3=rma+ta.atr(100)*level3/10 rmal3=rma-ta.atr(100)*level3/10 o8=plot(rmau3,display=showgrid?display.all:display.none,title='80',color=grid) o2=plot(rmal3,display=showgrid?display.all:display.none,title='20',color=grid) level5=input.float(50,'RSI LEVEL5',minval=10,maxval=100,group='RSI Levels') rmau5=rma+ta.atr(100)*level5/10 rmal5=rma-ta.atr(100)*level5/10 ul=plot(rmau5,color=grid,display=showgrid?display.all:display.none,title='100') ll=plot(rmal5,color=grid,display=showgrid?display.all:display.none,title='0') fill(o8,ul,color=color.rgb(232, 4, 205, 45),title='OverBought') fill(o2,ll,color=color.rgb(9, 198, 15, 53),title='OverSold') fill(r2,ul,color=color.rgb(76, 175, 79, 85),title='UP TREND') fill(r2,ll,color=color.rgb(175, 76, 167, 85),title='DOWN TREND') rsiMA=ta.ema(adjrsi,emalen) plot(rsiMA,color=color.yellow)
프로필 이미지
흑수돌
2023-04-26
1043
글번호 168491
지표
답변완료

수식부탁드립니다

예스트레이더 코인을 사용하고 있습니다. 일간 시가저가고가종가의 시간기준을 00~24시로 변경하여 구한 값을 차트의 분봉에 적용하여 사용하고자합니다 부탁드려요
프로필 이미지
왓썹
2023-04-26
750
글번호 168490
지표
답변완료

문의드립니다

input : n(1),손절틱수(0),익절틱수(0); var : cnt(0),hh(0),ll(0); hh = 0; ll = 0; For cnt = 0 to n-1 { if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then hh = DayHigh(cnt); if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then ll = DayLow(cnt); } Buy("b",AtLimit,hh-(hh-ll)*0.510); ExitLong("sx",AtLimit,hh-(hh-ll)*-0.500); SetStopLoss(PriceScale*손절틱수,PointStop); SetStopProfittarget(PriceScale*익절틱수,PointStop); ------------- 첨부파일의 내용과 위 수식어는 참고될 수식어 입니다.
프로필 이미지
푸른
2023-04-26
817
글번호 168489
시스템
답변완료

자동주문 관련 재문의

(그림1) 시스템은 진입과청산이 1회 있어야 진입이 된다고 하셧는데,예를들어서 분봉에서 3000이평을 하향돌파를 하면은 매도진입을 하고,500틱 수익 확보후 2000이평 붕괴시 청산한다고 할때, ,전략 실행차트는 10000바 밖에 나오지 않고,그림과 같이 반대의 추세길이가 길어 과거데이터로는 진입청산신호가 나오지 않는 경우 현재 신호가 나오면은 진입이 안되나요? (시물레이션 차트나 시험차트에서는 진입이 되는 것으로 나오던데요?) 시스템상 무포지션일 경우는 신호가 나오면 진입이 되는 것이 아닌가요? 전략실행차트의 바수를 10000바 이상은 할 수 없나요? (그림2,3) input : 시작일(20230425),시작시간(090000); input : 이평1(30),이평2(60),이평3(120),이평4(240); input : 윌리엄스R기간값(14); input : 손절틱수(100),트레일링스탑틱수(5),목표틱수(100); var : mav1(0),mav2(0),mav3(0),mav4(0),WR(0); if Bdate >= 시작일 and sTime >= 시작시간 Then Condition1 = true; MAV1 = MA(c,이평1); MAV2 = MA(c,이평2); MAV3 = MA(c,이평3); MAV4 = MA(c,이평4); WR = WILLR(윌리엄스R기간값); if Condition1 == true Then { if MarketPosition == 0 and c < mav4 and CrossDown(WR, -20) Then Sell("s"); if MarketPosition == -1 Then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*목표틱수 Then { if CrossUp(C,mav2) Then ExitShort("sx"); ExitShort("str",AtStop,EntryPrice-PriceScale*트레일링스탑틱수); } } SetStopLoss(PriceScale*손절틱수,PointStop); } 이베스트에서 해외선물을 거래를 합니다. 10000바를 기준으로 테스트를 하였습니다. 날짜와시간은 국내시간을 기준으로 하였습니다. 1,답변을 주신대로 시작되는 날짜와 시간을 시스템 시작 시점에 맞추고 시스템을 작동을 시험적용을 두고 테스트를 했습니다. 마찬가지로 지표는 신호가 나왔지만 시스템은 진입신호가 나오지를 않았습니다. (그림2,골드) 2,반대로 과거의 데이터에 신호가 나오게 하고,시스템 테스트를 하니 진입신호가 나왔습니 다.(그림3,크루드오일) * 시스템 전략상 지표상 신호가 나왔는데, 시스템은 신호가 안나오고 진입도 안되니 아주 난감합니다. 여기서 궁금한것이 있습니다. 1,해외선물 시스템상 진입 신호가 없으면 청산을 하지 못한다고 알고 있습니다. (주식은 매수,청산 , 선물은 매수,매도를 순환하면서 되는데,,) 청산 신호(매수)가 과거에 데이터가 없으면 진입(매도)을 못하나요? --시작날짜와 시작시간을 정하니 어떠한 과거신호도 존재하지 않습니다. 즉, 청산 신호가 과거에 없으면 시스템 시작시 진입을 못하나요? 아니면 과거 데이터 포함 무포지션 상태이면 진입을 하나요? 2.시스템에서 과거데이터 포함 매도신호유지이면은 계좌는 무포지션인데, 시스템은 매도포지션으로 인식을 하나요? 3, 시작일과 시작시간으로 인하여 최소봉수 미충족으로 지표를 계산하지 못하여 진입신호가 나오지 않는 것 인가요? (차트상, 모든지표는 나옵니다) 이것이 문제라고 하면은 지표의 인식은 과거데이터로 하고, 진입과청산만 시작일 시작시간으로 하는 방법은 없나요? *결론적으로 어떠한 경우는 진입이 되고, 어떠한 경우는 진입이 안되는지를 정리를 해주시면 감사하겠습니다. (시스템 시작전 과거데이터까지 포함해서 구체적으로 정리를 해주시면 감사하겠습니다) 1,3 번이 문제라고 하면은 스윙트레이딩을 시스템으로 하기에는 문제가 있을거 같습니다. 스윙트레이딩은 단타랑 틀려서 진입과청산이 가끔 신호가 나오는데요.. 또한 진입을 하기 위해서 가상의 과거의 청산 신호를 만들고, 진입 후 시스템을 원래의 전략대로 수정을 하고, 다시 시스템을 돌려야 되는 번거러움이 있을 거 같습니다. 혹시 다른 방법 있다면 다른방법을 제안을 해주시면 감사하겠습니다. 과거 신호에 영향없이 진입을 자유롭게 할 수 있는 방법을 제안을 해주시면 감사하겠습니다. 4,피라미딩을 해놓고 진입을 하는 방법도 생각을 해 보았습니다. 여기서 궁금한 것이 있습니다. - 피라미딩을 하려면 시스템상의 무포지션일때의 진입 수식을 없애야 되나요? (무포지션 수식을 없애면 어떠한 문제점이 있나요?) - 과거의 데이터로 인해서 현재 매도포지션 유지인데, 피라미딩 허용을 하면은 매도 신호가 나오면 진입이 되나요? - 과거의 데이터 모두를 피라미딩 수량,진입횟수로 포함하나요? 아님 시스템 시작 이후부터 수량,진입횟수로 포함하나요? - 시험적용에서도 테스트가 가능한가요? 아님 실전에서만 가능한가요? (시물레이션 차트에서는 불가능 한것 같습니다) - 진입 후 피라미딩을 허용을 안함으로 바꾸게 되면 변경된 시스템으로 적용이 되나요? 3,시스템상 시작일, 시작시간은 국내시간 기준인가요? 아니면 현지 시간 기준인가요? 4,수동으로 진입이 되어 있는 시스템으로 청산이 안된다고 하셧는데, 시스템에서 진입이 되어 있는 상태에서 컴을 끄고 다시 키면 청산은 되나요? 5,해외선물은 시세 변화가 빨라서 현재가에서 진입이 안되는 경우가 많은데요.. 시장가 진입이 유리한가요? 아니면 현재가+(-)5호가가 유리한가요? 6, 매매설정창에서 주문시작신호를 진입신호,모든신호가 있는데,주식에서는 한방향이라 의미가 있을거 같은데,해외선물에서도 의미가 있나요? 수고하세요..
프로필 이미지
블루3
2023-04-26
898
글번호 168488
시스템
답변완료

엉터리 시스템 였네요

// 안녕하세요 아래식 엉터리 로 짜셨군요 // 몇시간째 거래후 시스템 재설정이나 컴을 끄고 재로고인하면 시스템 성능보고서 // 거래 내역이 변화가 일어납니다 이건 못써요 재수정 부탁 드리겠습니다 input : StartTime(70000),EndTime(70000); var : Tcond(false); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; IF Endtime <= starttime Then { SetStopEndofday(0); } } Inputs: VtyPercent(0.16),ATRperiod(50); If MarketPosition() <> 1 Then Buy ("Vty_LE", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then ExitLong ("Vty_SE)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() == 1 Then Buy ("Vty_LE1", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() == -1 Then ExitLong ("Vty_SE1)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> 1 Then ExitShort ("Vty_LE2", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then Sell ("Vty_SE2)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() == 1 Then ExitShort ("Vty_LE3", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() == -1 Then Sell ("Vty_SE3)", AtStop, Close - (VtyPercent * ATR(ATRperiod)));
프로필 이미지
신들의전쟁
2023-04-26
800
글번호 168487
시스템
답변완료

시스템 수식 문의 드립니다.

https://blog.naver.com/chartist/222656653057 이 지표를 활용하여 "BuyStart"일때 매도청산 "SellStart"일때 매수청산 으로 활용하고 싶습니다. 이를 위해 기존시스템에 아래의 수식을 추가하였고 input : SwingPeriod(2), AtrPeriod(10), ATrMult(3); var : PH(0), PL(0), lastpp(0), center(0), alPHa(0), source(0), ATrV(0); var : UpCh(0), DnCh(0), Trend(0), TuP(0), Tdown(0), TrailingSL(0); # 스윙하이와 스윙로우를 이용하여 중심선 계산 PH = swingHigh(1,H,SwingPeriod,SwingPeriod,SwingPeriod*2+1); PL = swingLow(1,L,SwingPeriod,SwingPeriod,SwingPeriod*2+1); if PH <> -1 Then lastpp = PH; if PL <> -1 Then lastpp = PL; if PH <> -1 or PL <> -1 Then center = (center*2 + lastpp)/3; # ATR계산(True Range를 RMA로 평균) if CurrentBar > 0 Then { alPHa = 1 / AtrPeriod ; source = max(H - L, abs(H - C[1]), abs(L - C[1])); ATrV = alPHa * source + (1 - alPHa) * ATrV[1]; } # 상하단 채널과 추세에 따른 추세채널 UpCh = center - (ATrMult * ATrV); DnCh = center + (ATrMult * ATrV); Tup = IFf(C[1] > TUp[1],max(UpCh, TUp[1]),UpCh ); Tdown = IFf(C[1] < TDown[1],min(DnCh, TDown[1]),DnCh ); if C > TDown[1] Then Trend = 1; if C < TuP[1] Then Trend = -1; Trailingsl = IFf(Trend == 1, Tup, Tdown); 매도청산식을 아래와 같이 작성하였으나 청산식이 작동하지 않았습니다. if MarketPosition==-1 and Trend == 1 and Trend[1] == -1 Then Exitshort("SX2",AtMarket); 이유와 해결법을 알고 싶습니다. 항상 감사드립니다.
프로필 이미지
마녀58
2023-04-26
960
글번호 168486
시스템
답변완료

문의드립니다

예비신호(차트 상 텅빈 화살표)는 봉이 완성되지 않았지만 (다음봉 시가가 수신되지 않았지만) if 조건을 만족시키면, 차트에 속이 텅빈 화살표 & 시스템모니터링 상에 예비신호 두가지로로 뜬다고 알고 있습니다 1분봉차트에서, 아래 식의 경우 if NextBarSdate != sDate and C > LatestEntryPrice(0)*1.1 Then Buy("b4",OnClose); 당일에 동시호가 끝나고 확정된 종가가 C > LatestEntryPrice(0)*1.1를 만족할 경우에, 아직 다음날이 되지는 않았으니(=다음날 시가 분봉이 수신되지 않았으니) 당일 봉이 완성되지는 않은 상태이나, if 조건은 만족시키니... 당일 장마감 이후부터 다음날 장 오픈때까지는, 실전차트의 15시31분봉에 예비신호(텅빈화살표)가 표시되어 있는지 궁금합니다
프로필 이미지
루라라라
2023-04-26
1093
글번호 168485
시스템
답변완료

다음 수식을 예스랭귀지로 변환부탁드려요.

A = (npredayclose(3)+npredayclose(2)+npredayclose(1))/3; A1 = (npredaylow(3)+npredaylow(2)+npredaylow(1))/3; A2 = (npredayhigh(3)+npredayhigh(2)+npredayhigh(1))/3; K= (A+ A1+A2)/3; B = (npredayclose(2)+npredayclose(1)+dayclose())/3; B1 =(npredayhigh(2)+npredayhigh(1)+dayhigh())/3; B2 = (npredaylow(2)+npredaylow(1)+daylow())/3; K1 = (B+B1+B2)/3; S = (K+K1)/2;
프로필 이미지
redcon
2023-04-25
1345
글번호 168484
사용자 함수
답변완료

수식부탁합니다

장대음봉이 나온후 그 장대음봉의 저가보다 높은가격으로 20일 이동평균선 아래에서 봉들이 형성되어 진행되다가 20일 이동평균선을 돌파할때 매수하는 수식을 부탁드립니다 감사합니다
프로필 이미지
비마
2023-04-25
1088
글번호 168483
시스템