커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식변형 부탁드립니다

예스트레어더에서 사용할수 있게 수식 변형좀 해주시면 감사하겠습니다. // // @author LonesomeTheBlue // //@version=3 study("Higher High Lower Low Strategy", overlay =true) lb = input(2, title="Left Bars", minval = 1) rb = input(2, title="Right Bars", minval = 1) showsupres = input(true, title="Show Support/Resistance") changebarcol = input(true, title="Change Bar Color") mb = lb + rb + 1 ph = iff(not na(high[mb]), iff(highestbars(high, mb) == -lb, high[lb], na), na) // Pivot High pl = iff(not na(low[mb]), iff(lowestbars(low, mb) == -lb, low[lb], na), na) // Pivot Low hl = na hl := iff(ph, 1, iff(pl, -1, na)) // Trend direction zz = na zz := iff(ph, ph, iff(pl, pl, na)) // similar to zigzag but may have multiple highs/lows zz :=iff(pl and hl == -1 and valuewhen(hl, hl, 1) == -1 and pl > valuewhen(zz, zz, 1), na, zz) zz :=iff(ph and hl == 1 and valuewhen(hl, hl, 1) == 1 and ph < valuewhen(zz, zz, 1), na, zz) hl := iff(hl==-1 and valuewhen(hl, hl, 1)==1 and zz > valuewhen(zz, zz, 1), na, hl) hl := iff(hl==1 and valuewhen(hl, hl, 1)==-1 and zz < valuewhen(zz, zz, 1), na, hl) zz := iff(na(hl), na, zz) findprevious()=> // finds previous three points (b, c, d, e) ehl = iff(hl==1, -1, 1) loc1 = 0.0, loc2 = 0.0, loc3 = 0.0, loc4 = 0.0 xx = 0 for x=1 to 1000 if hl[x]==ehl and not na(zz[x]) loc1 := zz[x] xx := x + 1 break ehl := hl for x=xx to 1000 if hl[x]==ehl and not na(zz[x]) loc2 := zz[x] xx := x + 1 break ehl := iff(hl==1, -1, 1) for x=xx to 1000 if hl[x]==ehl and not na(zz[x]) loc3 := zz[x] xx := x + 1 break ehl := hl for x=xx to 1000 if hl[x]==ehl and not na(zz[x]) loc4 := zz[x] break [loc1, loc2, loc3, loc4] a = na, b = na, c = na, d = na, e = na if not na(hl) [loc1, loc2, loc3, loc4] = findprevious() a := zz b := loc1 c := loc2 d := loc3 e := loc4 _hh = zz and (a > b and a > c and c > b and c > d) _ll = zz and (a < b and a < c and c < b and c < d) _hl = zz and ((a >= c and (b > c and b > d and d > c and d > e)) or (a < b and a > c and b < d)) _lh = zz and ((a <= c and (b < c and b < d and d < c and d < e)) or (a > b and a < c and b > d)) plotshape(_hl, text="HL", title="Higher Low", style=shape.labelup, color=lime, textcolor=black, location=location.belowbar, transp=0, offset = -lb) plotshape(_hh, text="HH", title="Higher High", style=shape.labeldown, color=lime, textcolor=black, location=location.abovebar, transp=0, offset = -lb) plotshape(_ll, text="LL", title="Lower Low", style=shape.labelup, color=red, textcolor=white, location=location.belowbar, transp=0, offset = -lb) plotshape(_lh, text="LH", title="Lower High", style=shape.labeldown, color=red, textcolor=white, location=location.abovebar, transp=0, offset = -lb) res = na, sup = na res := iff(_lh, zz, res[1]) sup := iff(_hl, zz, sup[1]) trend = na trend := iff(close > res, 1, iff(close < sup, -1, nz(trend[1]))) res := iff((trend == 1 and _hh) or (trend == -1 and _lh), zz, res) sup := iff((trend == 1 and _hl) or (trend == -1 and _ll), zz, sup) plot(showsupres ? res : na, title="Resistance", color= na(res) ? na : red, linewidth=2, style=circles, offset = -lb) plot(showsupres ? sup : na, title="Support", color= na(sup) ? na : blue, linewidth=2, style=circles, offset = -lb) barcolor(color = iff(changebarcol, iff(trend == 1, blue, black), na))
프로필 이미지
무한대7
2020-03-09
436
글번호 136688
지표
답변완료

부탁좀 드리겠습니다.

1. 아래수식 변환 부탁드립니다. 강세 PVI(c) >= eavg(PVI(c),period) 약세 PVI(c) < eavg(PVI(c),period) period : 10 2. 아래수식 변환부탁드립니다 2-1 지표식 2-2 시스템 수식1 HighestSince(1, CrossUp(Trix(period),0),HIGH) 수식2 LowestSince(1, CrossDown(Trix(period),0),LOW) period : 10 3. 아래수식 변환부탁드립니다 3-1 지표식 3-2 시스템 수식1 a=avg(c,20); valuewhen(1,a>=a(1),a) 수식2 valuewhen(1,a<a(1),a)
프로필 이미지
더월
2020-03-09
388
글번호 136687
지표
답변완료

부탁드립니다.

-분봉차트에서 특정시간(예: @17:00:00)을 기준하여 이틀전 특정시간(예: d-2 @16:59:00)까지 즉 48시간내의 최고가와 최저가를 구하는 지표를 부탁드립니다.
프로필 이미지
예시
2020-03-08
371
글번호 136686
지표
답변완료

확인 부탁드리겠습니다.

아래 내용은 제가 답변을 받은 내용입니다. Data1 / Data2 / Data3 를 사용하는데 Data1과 Data2에 같은 지표(?)를 사용하지만 Data1과 Data2에 적용을 시키면 지표가 다르게 나옵니다. Data2에 적용되는 지표도 Data1의 지표를 기준으로 적용되어 진입이 되는거 같습니다만, 이 부분을 수정해 주실 수 있을까요? 부탁드리겠습니다. 감사합니다. Input:변동률(0.2),레벨(4),선두께(3),P(20),익절틱수(20),손절틱수(20); Var:행(0,data1),열(0,data1),고점(1,data1),저점(-1,data1),신규(1,data1),연장(2,data1),연속(3,data1),삼선(4,data1),cnt(0,data1), 고라인기울기(0,data1),고라인시작(0,data1),고라인끝(0,data1), 저라인기울기(0,data1),저라인시작(0,data1),저라인끝(0,data1), 시작일(0,data1),시작시각(0,data1),V1(0,data1),val1(0,data1),val2(0,data1); Array:고[10,44](0,data1),저[10,44](0,data1), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime 최종상태[5](0,data1),처리구분[5](0,data1),TL[3](0,data1),TL1[2](0,data1),고0[10,4](0,data1),저0[10,4](0,data1),결과리턴[8](0,data1); //=========================================================// If 레벨 <= 4 Then { v1 = 레벨 * 10; val1 = data1(ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분)); If 최종상태[레벨] == 고점 Then { If 처리구분[레벨] == 신규 Then TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); If 처리구분[레벨] == 연장 Then TL_SetEnd(TL[2],고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); If 처리구분[레벨] == 연속 Then { TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); } If 처리구분[레벨] == 삼선 Then { TL[0] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1], 고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1]); TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); } } If 최종상태[레벨] == 저점 Then { If 처리구분[레벨] == 신규 Then TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); If 처리구분[레벨] == 연장 Then TL_SetEnd(TL[2],저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); If 처리구분[레벨] == 연속 Then { TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); } If 처리구분[레벨] == 삼선 Then { TL[0] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1], 저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1]); TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); } } } Else { Alert("4레벨까지만 가능합니다!!"); } //=========================================================// cnt = cnt + 1; If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then { For 행 = 1 To 10 { For 열 = 1 To 4 { // 추세채널을 판단할 레벨만 사용자함수에 전달 고0[행,열] = 고[행,v1 + 열]; 저0[행,열] = 저[행,v1 + 열]; } } val2 = data1(YHS_Channel(고0,저0,결과리턴)); If val2 == 1 Then { // 추세대가 형성되었다면 시작일 = 결과리턴[0]; 시작시각 = 결과리턴[1]; 고라인기울기 = 결과리턴[2]; 고라인시작 = 결과리턴[3]; 고라인끝 = 결과리턴[4]; 저라인기울기 = 결과리턴[5]; 저라인시작 = 결과리턴[6]; 저라인끝 = 결과리턴[7]; If 고라인시작[1] == 고라인시작 and 고라인기울기[1] == 고라인기울기 Then { // 겹쳐 그리지 않도록 TL_SetEnd(TL1[0],sDate,sTime,고라인끝); } Else { TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝); TL_SetColor(TL1[0],IFF(고라인기울기<0,RED,BLUE)); TL_SetSize(TL1[0],선두께); } If 저라인시작[1] == 저라인시작 and 저라인기울기[1] == 저라인기울기 Then { TL_SetEnd(TL1[1],sDate,sTime,저라인끝); } Else { TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝); TL_SetColor(TL1[1],IFF(고라인기울기<0,RED,BLUE)); TL_SetSize(TL1[1],선두께); } cnt = 0; #Plot1(고라인끝,"고점추세선",IFF(고라인기울기<0,RED,BLUE)); #Plot2(저라인끝,"저점추세선",IFF(고라인기울기<0,RED,BLUE)); if max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝) and max(고라인끝,저라인끝) >= data2(c) and data2(c) >= min(고라인끝,저라인끝) and data2(c> ma(C,P)) and data3(C>C[1]) Then buy(); } } If cnt > 0 and cnt < (레벨 + 1) * 20 Then { 고라인끝 = 고라인끝 + 고라인기울기; 저라인끝 = 저라인끝 + 저라인기울기; #If 고라인끝 > 0 Then Plot1(고라인끝,"고점추세선",IFF(고라인기울기<0,RED,BLUE)); #If 저라인끝 > 0 Then Plot2(저라인끝,"저점추세선",IFF(고라인기울기<0,RED,BLUE)); if max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝) and max(고라인끝,저라인끝) >= data2(c) and data2(c) >= min(고라인끝,저라인끝) and data2(c< ma(C,P)) and data3(C<C[1]) Then sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
maker
2020-03-08
397
글번호 136685
시스템

수색대대 님에 의해서 삭제되었습니다.

프로필 이미지
수색대대
2020-03-08
2
글번호 136684
시스템
답변완료

수고많으십니다~ 공부중인대 너무 어려워서 도움 좀 청합니다..

수고많으십니다. 코딩 연습하고있는대요. 궁금점이 있습니다. 첨부된 파일보면 60분 봉인대요..차트상에 0시 이후로만 신호가 나오고 0시 이전으로는 신 호가 안나오는대 이유가 무엇인지 궁금합니다. 특정시간대에만 하루에 딱한번만 진입하기 위해 stime 함수도 이용해봤는대 검증이 완료됐 다고 나오지만 불러오면 아무 신호도 안나오는대 이 이유는 무엇인지요? 마지막으로 수식 부탁드립니다. 1일 1진입으로 제한하고 15시에 진입하는 조건으로, 14:00~15:00시에 완성되는 봉이 양봉 이면 매수, 음봉이면 매도 하는 수식 좀 부탁드립니다~ 수고하세요~
프로필 이미지
머어얼
2020-03-08
398
글번호 136683
시스템
답변완료

수식문의 드립니다.

종가가 최근 20봉중 5회이상 볼린저밴드 하단보다 작고 5일 이평선이 20일 이평선을 첫번째로 상향 돌파할때만 매수하고 종가가 최근 20봉중 5회이상 볼린저밴드 상단보다 크고 5일 이평선이 20일 이평선을 첫번째로 하향 돌파할때만 매도 하려고 합니다. if countif(c > bbup,20)==5 이게 잘못된것 같은데.. 어떻게 바꿔야 할지 모르겠네요 수정 좀 부탁드립니다. Input : Period(20), MultiD(2),P1(5),P2(20); var : BBmd(0),BBup(0),BBdn(0),mav1(0),mav2(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); mav1 = ma(C,P1); mav2 = ma(C,P2); if crossup(c,bbup) Then var1 = 0; if countif(c > bbup,20)==5 and CrossDown(mav1,mav2) Then { var1 = var1+1; if var1 == 1 Then sell(); } if CrossDown(c,bbdn) Then var2 = 0; if countif(c < bbdn,20)==5 and CrossUp(mav1,mav2) Then { var2 = var2+1; if var2 == 1 Then buy(); }
프로필 이미지
우니야
2020-03-08
403
글번호 136682
시스템
답변완료

문의드립니다.

안녕하세요. 시스템 문의드립니다. 5분봉차트에서 실행예정입니다. 1. ADR > 100(9시 25분)이고, 어제 종가보다 오늘 시가가 높으면 매도호가에 9시 30분에 예수금의 50% 매수, 3시에 매수호가에 청산하는 시스템 부탁드립니다. 2. 시장의 상승종목수 > 하락종목수 x 1.2 이고, 어제 종가보다 오늘 시가가 높으면 매도호가에 9시 30분에 예수금의 50% 매수, 3시에 매수호가에 청산하는 시스템 부탁드립니다.
프로필 이미지
무료한나날
2020-03-08
347
글번호 136681
시스템
답변완료

문의드립니다

안녕하세요? 아래수식을 선그래프로표현했을경우 2가지의(plot1,plot2) 수평선이 각각 꺽임이발생할시 완성후 소리출력이 한번만 되는경우와 꺽임이시작부터 완성될때까지 발생하는 2가지경우를 원합니다 감사합니다. Input : af(0.02), maxAF(0.2); var1 = SAR(af,maxAF); if crossup(c,var1) Then value1 = var1; if CrossDown(c,var1) Then value2 = var1; plot1(value1); plot2(value2);
프로필 이미지
새벽에
2020-03-08
470
글번호 136680
지표
답변완료

검색식 작성중에,,,

수고하십니다 검색식 작성중에 "종목선택" 화면에서 KOSPI지수를 불러오고 싶은데,,, &#52287;아보니 안보입니다 "KP200 선물연결" 만 보이는데 KOSPI 지수를 직접 불러올수는 없나요??? 감사합니다
프로필 이미지
atmskill
2020-03-08
424
글번호 136679
검색