커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

지표 작성 부탁드릴게요

참조데이터를 사용하여 특정종목과 특정종목이 포함된 지수의 상대강도를 비교하고 싶습니다. 아래는 어떤 분의 질문에 운영자님이 작성해 주셨던 것인데요... input : N(20); var : RSD(0),MAV(0),MRS(0); RSD = Data1(c)/data2(c) * 100; mav = Data1(ma(RSD,N)); MRS = ((RSD /mav) - 1 ) * 100; Plot1(MRS); plot2(0); 위의 식은 20일의 기간 동안 2개종목의 비율과 해당 비율을 단순평균한 값으로 하나의 mrs가 계산되게 되어 있는데 트레이딩뷰에서 보니 63일(3달), 126일(6달), 252일(12달)로 세개의 RS를 나타내면서 단순평균이 아니라 설정한 기간값의 구간별로 가중값을 주어 가중평균하여 나타내는 지표가 있더라구요 아래는 트레이딩뷰에서 발췌한 것인데 예스트레이더에서 똑같이 구현해 보고 싶습니다. 바쁘시겠지만 지표 작성 꼭 좀 부탁드리겠습니다. //@version=3 study("IBD RS", overlay=true) src = security(ticker, "D", close) mo_12 = 0.4*((src)/src[63]) + 0.2*((src)/src[126]) + 0.2*((src)/src[189]) + 0.2*((src)/src[252]) mo_6 = 0.4*((src)/src[21]) + 0.2*((src)/src[63]) + 0.2*((src)/src[84]) + 0.2*((src)/src[126]) mo_3 = 0.4*((src)/src[11]) + 0.2*((src)/src[21]) + 0.2*((src)/src[42]) + 0.2*((src)/src[63]) plot(100*mo_12, style=line, linewidth=3, color=#1E90FF, transp=0) plot(100*mo_6, style=line, linewidth=2, color=#1E90FF, transp=0) plot(100*mo_3, style=line, linewidth=1, color=#1E90FF, transp=0) ※ 참고로 mo_12는 12개월을 의미하며 한달을 21일로 잡을때 63은 3개월, 126은 6개월의 기간을 의미하는 식입니다.
프로필 이미지
분노의물타기
2023-03-28
1551
글번호 167628
지표

2wnwn 님에 의해서 삭제되었습니다.

프로필 이미지
2wnwn
2023-03-29
18
글번호 167625
지표
답변완료

질문 드립니다

답변에 정말 감사드립니다 ~~~~~~~~~~~~~~~~질문~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 아래 수식이 <81414>번의 2질문에 해당답변같으나 응용할려니 이해부족으로 수고쓰럽지만 각종 부호의뜻과 숫자 뜻!부연 좀 부탁드립니다~~ 그리고 ("매수2청",1)<--여기서 1 은 무엇을뜻하는지요?? if MarketPosition <= 0 and 5 > 50 Then buy("매수1진입"); if MarketPosition == 0 and IsExitName("매수2청",1) == true and 10 > 60 Then buy("매수2진입"); ~~~~~~~~~~~~~~~~~~질문~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 저는 매수2진입 수식을 아래처럼 별도로 작성해놓은 상태에서 (손실)매수2청때만은 매수2진입 하라는 명령을 하고싶은데 아래처럼해도 돠는지요??~~ if MarketPosition == 0 and IsExitName("매수2청",1) == true Then buy("매수2진입"); if 10 > 60 Then buy("매수2진입"); //////////////////////////////////////////////////////////////////////// <81414번>질문~2~ (손절된 2청산 때) ("매수2진입")진행은 직전 청산에서 ("매수2청")으로 청산된것만 매수2진입 적용!! ("매도2진입")진행은 직전 청산에서 ("매도2청")으로 청산된것만 매도2진입 적용!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if 5 > 50 Then buy("매수1진입"); if 10 > 60 Then buy("매수2진입"); if 20 < 50 Then exitlong("매수1청"); if 30 < 60 Then exitlong("매수2청"); 꼭~부탁드립니다~~
프로필 이미지
째일
2023-03-29
741
글번호 167624
시스템

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2023-03-28
588
글번호 167621
지표
답변완료

문의합니다.

바쁜 업무에 항상 빠른 대응 감사합니다. 아래 지표식을 부탁합니다. 1) 일봉에서 월봉의 시가/저가/고가 2) 임의의 변수 AA,BB가 있으며 아래의 수식을 지표식으로 부탁합니다. LowestSince(1, CrossDown(BB,20), AA); 3) 임의의 변수 AA,BB가 있으며 아래의 수식을 지표식으로 부탁합니다. HighestSince(1, CrossUp(BB,20), AA); ■ LowestSince(n,condition,data) => condition이 n번째 만족된이후data의 최저가 ■ HighestSince(n,condition,data) => condition이 n번째 만족된이후data의 최고가 감사합니다.~~^^
프로필 이미지
배움이
2023-03-28
1055
글번호 167617
지표
답변완료

수식 문의 드립니다

매수: 5이평선 상향시 매수 매도 : RSI(9) 가 60 이상이고 매수 가격보다 당일 1415시 가격이 + 가격이면 아침 시가 즉시 매도 매도 : RSI(9) 가 60 이하이고 매수 가격보다 당일 1415시 가격이 - 가격이면 당일 1415시 즉시매도
프로필 이미지
기관장
2023-03-28
1148
글번호 167611
시스템

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

프로필 이미지
고성
2023-03-28
9
글번호 167610
지표
답변완료

수식작성 부탁드립니다.

안녕하세요. 운영자님 아래와 같은 트레이딩뷰 수식을 예스트레이더 수식으로 변환 부탁드립니다. 감사합니다. //@version=4 study("Mobo Bands", overlay=false) price = input(hl2, "Price") colorNormLength = input(3, "colorNormLength", input.integer) dpoLength = input(13, "dpoLength", input.integer) moboDisplace = input(0, "moboDisplace", input.integer) moboLength = input(10, "moboLength", input.integer) numDevDn = input(-0.8, "numDevDn", input.float) numDevUp = input(0.8, "numDevUp", input.float) coloredMobo = input(true, "coloredMobo") coloredFill = input(true, "coloredFill") breakArrows = input(true, "breakArrows") moboShowMid = input(true, "moboShowMid") //def DPO = price - Average(price[DPO_length / 2 + 1], DPO_length); xsma = sma(price[dpoLength / 2 + 1], dpoLength) //xsma = sma(price, dpoLength) DPO = price - xsma Midline = sma(DPO, moboLength) sDev = stdev(DPO, moboLength) LowerBand = Midline + numDevDn * sDev UpperBand = Midline + numDevUp * sDev plot(DPO, color=color.yellow,linewidth=2) plot(Midline, color=Midline > Midline[1] ? color.lime : color.red,linewidth=2) Upper = plot(UpperBand, color=color.black,linewidth=1) Lower = plot(LowerBand, color=color.black,linewidth=1) plot(0, color=color.white,linewidth=1) Signal1 = DPO > UpperBand and DPO[1] < UpperBand[1] Signal2 = DPO < LowerBand and DPO[1] > LowerBand[1] wasUp = 1 wasDn = 1 wasUp := Signal1 ? 1 : (Signal2 ? 0 : nz(wasUp[1])) wasDn := Signal2 ? 1 : (Signal1 ? 0 : nz(wasDn[1])) //plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.arrowup, location=location.absolute, size=size.normal, color=color.red) //plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.arrowdown, location=location.absolute, size=size.normal, color=color.green) plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.labelup, location=location.absolute, size=size.normal, color=color.green, text="Buy",textcolor=color.white) plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.labeldown, location=location.absolute, size=size.normal, color=color.red, text="Sell",textcolor=color.white) fill(Upper, Lower, color=color.purple) alertcondition(Signal1 and wasDn[1], "Break Out Arrow", "Break Out Arrow") alertcondition(Signal2 and wasUp[1], "Break Down Arrow", "Break Down Arrow")
프로필 이미지
고박사122
2023-03-28
1075
글번호 167609
지표
답변완료

문의 드립니다.

아래에서 수량 추가 할 수 있도록 부탁드립니다. input : 익절틱수(20); var1 = BollBandUp(20,2); Var2 = BollBandDown(20,2); if CrossUp(c,var1) Then Buy(); if CrossDown(c,var1) Then ExitLong(); if CrossDown(c,var2) Then Sell(); if CrossUp(c,var2) Then ExitShort(); SetStopProfittarget(PriceScale*익절틱수,PointStop);
프로필 이미지
선물대장
2023-03-28
1321
글번호 167608
시스템
답변완료

질문이 많아 죄송합니다.

밑에 식의 문제가 이익볼때는 몇번이고 계속 이익보고 손실볼때는 몇번이고 계속 손실보는데요. 이번 매매 손실보면 다음번 매매부터 매수매도를 토글 시킬는 시스템을 구현할수 도 있나요?(손실 청산하고 조금 텀을 주더라도) 항상 감사드립니다. 항상 행복하고 건강하시길 바랍니다~^^ ↓↓##전번에 알려주신 지그재그식 ##↓↓ input : Period(5); Array : HD[10](0),HT[10](0),HV[10](0); //고점 날짜, 시간, 가격 저장할 배열 Array : LD[10](0),LT[10](0),LV[10](0); //저점 날짜, 시간, 가격 저장할 배열 var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0); var : ZigZagTL(0),HTL(0),LTL(0),HTX(0),LTX(0); HPrice = H; LPrice = L; if Index == 0 Then { //초기 최고값 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //초기 최저값 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; } Else { UpTrend = HPrice >= Highest(HPrice,Period)[1]; DownTrend = LPrice <= Lowest(LPrice,Period)[1]; //상승추세 전환 if trend <= 0 and UpTrend == true Then { //추세구분 1 trend = 1; Buy(); //과거 고점의 날짜, 시간, 값을 다음 배열방으로 이동 For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } //0번방에 날짜, 시간, 가격 저장 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //직전 저점에서 현재 고점까지 연결선 출력 ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); //색상은 Red TL_SetColor(ZigZagTL,Gray); //추세선 굵기는 1 TL_SetSize(ZigZagTL,1); HTL = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL_SetColor(HTL,Red); HTX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0],2)); Text_SetStyle(HTX,2,1); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { //추세구분은 -1 trend = -1; Sell(); //과거 저점의 날짜, 시간, 값을 다음 배열방으로 이동 For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } //0번방에 날짜, 시간, 가격 저장 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; //직전 고점에서 현재 저점까지 연결선 출력 ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); //색상은 Blue TL_SetColor(ZigZagTL,Gray); //굴긱는 1 TL_SetSize(ZigZagTL,1); LTL = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(LTL,Blue); LTX = text_new(LD[0],LT[0],LV[0],NumToStr(LV[0],2)); Text_SetStyle(LTX,2,0); } Else { //상승구간 if trend == 1 Then { //고점이 갱신되면 if HPrice > HV[0] Then { //갱신된 봉의 날짜/시간/가격으로 변경 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //지그재그 추세선의 끝점을 현재봉으로 이동 TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); //고점 수평 추세선의 끝점을 현재봉으로 이동 TL_SetBegin(HTL,HD[0],HT[0],HV[0]); Text_SetString(HTX,NumToStr(HV[0],2)); Text_SetLocation(HTX,HD[0],HT[0],HV[0]); } } //하락구간 if trend == -1 Then { //저점이 갱신되면 if LPrice < LV[0] Then { //갱신된 봉의 날짜/시간/가격으로 변경 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; //지그재그 추세선의 끝점을 현재봉으로 이동 TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); //저점 수평 추세선의 끝점을 현재봉으로 이동 TL_SetBegin(LTL,LD[0],LT[0],LV[0]); Text_SetString(LTX,NumToStr(LV[0],2)); Text_SetLocation(LTX,LD[0],LT[0],LV[0]); } } TL_SetEnd(HTL,sDate,sTime,HV[0]); TL_SetEnd(LTL,sDate,sTime,LV[0]); } }
프로필 이미지
말비
2023-03-28
1646
글번호 167601
시스템