커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

박스 캔들 꼬리

input : 타주기분(1); var : S1(0),D1(0),TM(0),TF(0),box(0); var : oo(0),hh(0),ll(0),TL1(0),TL2(0),clr(0),ii(0); Plot1(c); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { oo = O; hh = H; ll = L; box = Box_New(sDate,sTime,oo,NextBarSdate,NextBarStime,c); TL1 = TL_New(sDate,sTime,max(C,oo),sDate,sTime,hh); TL2 = TL_New(sDate,sTime,min(C,oo),sDate,sTime,ll); ii = 1; } Else { ii = ii +1; if h > hh Then hh = h; if l < ll Then ll = l; var1 = Round(ii/2,1); Box_SetEnd(box,sDate,sTime,C); TL_SetBegin(TL1,sDate[var1],sTime[var1],max(c,oo)); TL_SetEnd(TL1,sDate[var1],sTime[var1],hh); TL_SetBegin(TL2,sDate[var1],sTime[var1],min(c,oo)); TL_SetEnd(TL2,sDate[var1],sTime[var1],ll); } if C > oo Then clr = Red; else if C < oo Then clr = Blue; Else clr = Green; Box_SetColor(box,clr); Box_SetSize(box,1); Box_SetFill(box,true,255); #박스채움 투명도 설정 0(투명) ~ 255(불투명), 마지막 True 봉 뒤 배치 TL_SetStyle(TL1,5); # 윗꼬리 아랫꼬리 점선처리 TL_SetStyle(TL2,5); # 윗꼬리 아랫꼬리 점선처리 TL_SetColor(tl1,clr); TL_SetColor(tl2,clr); } 1), 윗꼬리 아랫꼬리를, equivolume 차트처럼 위 아래 끝까지 몸통과 동일 색의 박스로 연장 처리. 2), 수정한 1번 차트를, 봉 차트처럼 몸통 두께를 똑같이 하는 별도 수식. 감사합니다.
프로필 이미지
고성
2023-05-04
1159
글번호 168700
지표
답변완료

문의 드립니다.

늘감사합니다. 매수 : 1차매수 : 일봉에서 1일전 종가가 rsi 하단 아래 있고, 오늘 시가가 rsi 하단 위에서 5% 이상 갭 발생시. 2차매수 : 이후 하락해서 rsi 하단 터치시 3차매수 : 전일 고가 가격 터치시 4차매수 : 전일 종가 가격 터치시 ** 봉 완성시 매수가아닌 도달시 즉시 주문 구현이 되면 좋겠습니다. 안될시. 1분봉에서 위 내용이 구현 되게 해주시면 감사 하겠습니다. 매수 금액 : 회차당 1백만 감가합니다
프로필 이미지
하늘북
2023-05-04
892
글번호 168699
시스템
답변완료

수치표시좀 부탁 드립니다.

* 좋은 주말 됫십시요^^ * 아래 수식 에서 지그제그선이 나올때 수치가 나오게 수정 좀 부탁 드립니다. 마지막 선도 변하는 그대로 나오게 좀 부탁 드립니다. <아래 수식> input :Peodd(10),d색상두께(50),d두께c(1),긁씨크기d(10); Var:상승색j(Red), 하락색j(LimE); Var:JW(0),JWT(0),dTL5사각(0),dText1사각(0); Var: h고11(0),h고12(0),h시간11(0),h시간12(0),H선TL1(0),H선TL(0),pvv(0),dTL(0), h고21(0),h고22(0),h시간21(0),h시간22(0),hVlue11(0),hVlue12(0), h고31(0),h고32(0),h시간31(0),h시간32(0); Array:h고Val[20](0),L저val[20](0),h고Bar[20](0),L저Bar[20](0); Array:Ldr[7](0),Ldfr[7](0); var : Udbox(0),Udbox1(0); Ldr[0] = 0; Ldr[1] = 2; Ldr[2] = 3.; Ldr[3] = -1; Ldr[4] = -2.; Ldr[5] = 1; Ldr[6] = 0.5; For JW = 0 To 19 { h고Bar[JW] = h고Bar[JW] + 1; L저Bar[JW] = L저Bar[JW] + 1; } if crossup(c,highest(H,Peodd)[1]) Then JWT = 1; if CrossDown(c,Lowest(L,Peodd)[1]) Then JWT = -1; If JWT == -1 Then { If JWT[1] != -1 Then { For JW = 18 DownTo 0 { L저val[JW+1] = L저val[JW]; L저Bar[JW+1] = L저Bar[JW]; //ZZ[j+1] = ZZ[j]; } L저val[0] = L; L저Bar[0] = 0; //ZZ[0] = L; h고11 = Date[h고Bar[0]]; h시간11 = stime[h고Bar[0]]; hVlue11 = h고Val[0]; h고12 = Date[L저Bar[0]]; h시간12 = stime[L저Bar[0]]; hVlue12 = L저val[0]; h고21 = Date[h고Bar[0]]; h시간21 = stime[h고Bar[0]]; h고22 = Date[0]; h시간22 = stime[0]; for JW = 0 to 6 { Ldfr[JW] = L저val[1] + ((h고Val[0] - L저val[1]) * Ldr[JW]); } Box_SetEnd(Udbox,h고11,h시간11,hVlue11); Udbox = box_new(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12); Box_SetColor(Udbox,하락색j); Box_SetFill(Udbox,true,d색상두께); dTL5사각 = TL_New(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12); TL_SetSize(dTL5사각,d두께c); TL_SetColor(dTL5사각,Blue); } If L저val[0] > L Then { L저val[0] = L; L저Bar[0] = 0; //ZZ[0] = L; h고12 = Date[L저Bar[0]]; h시간12 = stime[L저Bar[0]]; hVlue12 = L저val[0]; h고22 = Date[0]; h시간22 = stime[0]; // Box_SetEnd(Udbox,h고12,h시간12,hVlue12); TL_SetEnd(dTL5사각,h고12,h시간12,hVlue12); } Box_SetEnd(Udbox,NextBarSdate,NextBarStime,hVlue12); } If JWT == 1 Then { If JWT[1] != 1 Then { For JW = 18 DownTo 0 { h고Val[JW+1] = h고Val[JW]; h고Bar[JW+1] = h고Bar[JW]; //ZZ[j+1] = ZZ[j]; } h고Val[0] = H; h고Bar[0] = 0; //ZZ[0] = H; h고11 = Date[L저Bar[0]]; h시간11 = stime[L저Bar[0]]; hVlue11 = L저val[0]; h고12 = Date[h고Bar[0]]; h시간12 = stime[h고Bar[0]]; hVlue12 = h고Val[0]; h고31 = Date[L저Bar[0]]; h시간31 = stime[L저Bar[0]]; h고32 = Date[0]; h시간32 = stime[0]; for JW = 0 to 5 { Ldfr[JW] = L저val[0] + ((h고Val[1] - L저val[0]) * Ldr[JW]); } Box_SetEnd(Udbox,h고11,h시간11,hVlue12); Udbox = box_new(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12); Box_SetColor(Udbox,상승색j); Box_SetFill(Udbox,true,d색상두께); dTL5사각 = TL_New(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12); TL_SetSize(dTL5사각,d두께c); TL_SetColor(dTL5사각,Red); } If h고Val[0] < H Then { h고Val[0] = H; h고Bar[0] = 0; //ZZ[0] = H; h고12 = Date[h고Bar[0]]; h시간12 = stime[h고Bar[0]]; hVlue12 = h고Val[0]; h고32 = Date[0]; h시간32 = stime[0]; // Box_SetEnd(Udbox,h고12,h시간12,hVlue12); TL_SetEnd(dTL5사각,h고12,h시간12,hVlue12); } Box_SetEnd(Udbox,NextBarSdate,NextBarStime,hVlue12); } 고맙습니다. 좋은 주말 되십시요.
프로필 이미지
요타
2023-05-04
1277
글번호 168698
강조
답변완료

수식도움 부탁드립니다.

수고하십니다. 아래수식을 이용한 예스챠트에서는 지표가 출렁거리는데, 그림 아래와 같이 해당타주기분의 종가완성봉 기준으로 지표가 출력되도록 수정부탁드립니다.(그림참조) 감사합니다. //================= input : 분(NumericSimple),useClose(NumericSimple),length(NumericSimple),mult(NumericSimple); var : ATrv(0),longStop(0),longStopprev(0),shortStop(0),shortStopPrev(0); var : dir(0),dir1(0); var : truehighv(0),TrueLowv(0),hsatr(0) ; var : xClose(0),xOpen(0),xHigh(0),xLow(0); var : xClose1(0),xOpen1(0),xHigh1(0),xLow1(0); var : S1(0),D1(0),TM(0),TF(0),cnt(0),ii(0); var : sum(0),longStop1(0),shortStop1(0),hv(0),lv(0); Array : TrueRangev[100](0),AccumValue[100](0); Array : oo[100](0),hh[100](0),ll[100](0),cc[100](0),hsc[100](0); ////상위분 if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; /// TF = TM%분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then { ii = ii +1; For cnt = 99 DownTo 1 { TrueRangev[cnt] = TrueRangev[cnt-1]; oo[cnt] = oo[cnt-1]; hh[cnt] = hh[cnt-1]; ll[cnt] = ll[cnt-1]; cc[cnt] = cc[cnt-1]; hsc[cnt] = hsc[cnt-1]; AccumValue[cnt] = AccumValue[cnt-1]; } AccumValue[0] = AccumValue[0]+1; oo[0] = o; hh[0] = h; ll[0] = l; Xopen1 = xopen[1]; Xhigh1 = xhigh[1]; Xlow1 = xlow[1]; Xclose1 = xclose[1]; longStop1 = longStop[1]; ShortStop1 = shortStop[1]; dir1 = dir[1]; } if hh[0] > 0 and h > hh[0] Then hh[0] = h; if ll[0] > 0 and l < ll[0] Then ll[0] = l; cc[0] = c; if ii == 1 then { xOpen = oo[0]; xClose = (oo[0]+hh[0]+ll[0]+cc[0])/4; xHigh = MaxList(hh[0], xOpen, xClose); xLow = MinList(ll[0], xOpen,xClose); } else { xClose = (oo[0]+hh[0]+ll[0]+cc[0])/4; xOpen = (xOpen1 + xClose1)/2 ; xHigh = MaxList(hh[0], xOpen, xClose) ; xLow = MinList(ll[0], xOpen, xClose) ; } hsc[0] = xclose ; if ii > 1 Then { If xClose1 > xHigh then TrueHighv = xClose1; else TrueHighv = xHigh; If xClose1 < xLow then TrueLowv = xClose1; else TrueLowv = xLow; TrueRangev[0] = TrueHighv - TrueLowv; } if ii > 2 Then { if TrueRangev[length-1] > 0 Then { sum = 0; For cnt = 0 to length-1 { sum = sum + TrueRangev[cnt]; } hsatr = sum/length; } atrv = mult * hsatr; hv = 0; lv = 0; For cnt = 0 to length-1 { if useClose == 1 Then { if hv == 0 or (hv > 0 and hsc[cnt] > hv) Then hv = hsc[cnt]; if lv == 0 or (lv > 0 and hsc[cnt] < lv) Then lv = hsc[cnt]; } Else { if hv == 0 or (hv > 0 and hh[cnt] > hv) Then hv = hh[cnt]; if lv == 0 or (lv > 0 and ll[cnt] < lv) Then lv = ll[cnt]; } } longStop = hv - atrv; longStopPrev = longStop1; longStop = iff(hsc[1] > longStopPrev , max(longStop, longStopPrev) , longStop); shortStop = lv + atrv; shortStopPrev = shortStop1; shortStop = iff(hsc[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop); dir = iff(hsc[0] > shortStopPrev , 1 ,iff(hsc[0] < longStopPrev , -1 , dir1)); } } //====================
프로필 이미지
당일선물
2023-05-04
1605
글번호 168697
지표
답변완료

문의드립니다

안녕하세요? 아래수식에서 plot1은잘되는데 소리출력이되지않습니다 ,소리출력 부탁드립니다 감사합니다 if ss==-1 and ss!=ss[1] and tt==1 and tt !=tt[1] Then plot1(var1); if var1==1 Then PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
프로필 이미지
새벽에
2023-05-04
1511
글번호 168696
지표
답변완료

매수후 수동청산후 다시 매수로 진입하는 방법?

예를들어) 매수후에 수동으로 청산후 다시 매수로 재진입 할려고 하면 매수가 안되고 매도신호가 나온후에 다시 매수신호에 진입하는데... 수동청산후 매수신호에 바로 매수하는 수식이나 방법이 있나요?
프로필 이미지
그린랜드
2023-05-04
1228
글번호 168695
시스템
답변완료

시스템식 요청드립니다.

전에 아래와 같이 질문을 남겼었는데 답변을 주셨는데 안되는 부분이 있어 다시 올려봅니다. 1번에 2번에 답변을 보면 이전 직전에 대한 청산이 있어야 처음 매수매도진입이 가능한 걸로 나오는데.... 처음에 시스템을 적용했더니. 가장 처음에 청산이 없다보니 아예 매수매도 진입이 안되더라구요 가능한 방법이 있는지 확인 부탁드리겠습니다. ------------------------------------------------------------------------------ 질문 1) 아래의 해당식에서 조건을 추가하고 싶은 내용이 있는데 확인 부탁 드리겠습니다. if MarketPosition == 0 and CrossDown(C,var3) Then buy("매수1"); 위 식에서는 포지션 가지고 있는게 없고, 변수3을 종가가 하향 돌파하면 매수하는 식인데, 추가하고 싶은 조건은 청산한지 30분 후 부터 적용 입니다. 예를들어 오후 11시 20분에 '익절청산' 이 되었다면, 11시 50분 전까지는 변수3을 종가가 하향 돌파하면 매수되지 않다가 50분 이후부터 적용하게 되도록 부탁드립니다. 질문 2) if MarketPosition == 0 and CrossDown(C,var3) Then buy("매수1"); if MarketPosition == 0 and CrossUp(C,var1) Then Sell("매도2"); 위의 식처럼 진입식이 있고, ExitLong("매수-손절",AtStop,AvgEntryPrice-100); ExitShort("매도-손절",AtStop,AvgEntryPrice+100); 위의 식처럼 손절청산 식이 있습니다. 매수 진입 후 매수-손절 로 청산 되었다면 그 다음은 매도 포지션으로 진입하고 싶어서 진입식을 아래와 같이 수정했습니다. if MarketPosition == 0 and CrossDown(C,var3) and IsExitName("매도-손절",1) == true Then buy("매수1"); 이렇게 수정하였더니, 가장 처음 시스템 적용했을때, 앞에 청산이 없어서 적용이 안됩니다.ㅜ.ㅜ 어떻게 적용해야 할까요?? ------------------------------------------------------------------------------ 답변 ---------------------------------------------------------------------------- 1 if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades == 1 and TimeToMinutes(sTime) >= TimeToMinutes(ExitTime(1))+30)) Then buy("매수1"); 2 if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades >= 1 and IsExitName("매도-손절",1) == true)) Then buy("매수1"); if MarketPosition == 0 and CrossUp(C,var1) and (TotalTrades == 0 or (TotalTrades >= 1 and IsExitName("매수-손절",1) == true)) Then Sell("매도2"); ExitLong("매수-손절",AtStop,AvgEntryPrice-100); ExitShort("매도-손절",AtStop,AvgEntryPrice+100); -----------------------------------------------------------------------------------
프로필 이미지
맴맴잉
2023-05-04
1223
글번호 168694
시스템
답변완료

부탁 드립니다...

날씨가 아침은 약간 춥다는 생각이 들지만, 오후에는 넘 따듯하네요. 환절기 몸 조심 하세요.. 부탁 드립니다. 1) 일봉상 20% (종가상) 캔들이 나온 후, 첫 눌림 후, 다시 5일선 돌파한(종가상) 양봉을 찾 고 싶습니다. 2) 상한가 나온 후 , 다시 5일선 돌파 한 양봉을 찾고 싶습니다. 부탁 드릴께요~~~
프로필 이미지
그리워
2023-05-03
1043
글번호 168693
종목검색
답변완료

갭 돌파후 지지받는 종목 검색식좀 알려주세요

수식4: valuewhen(1,daylow()>predayhigh()*1.01,daylow()) 수식5: valuewhen(1,daylow()>predayhigh()*1.01,predayhigh()) 갭 돌파후 상단 지지받는 종목 검색식좀 알려주세요. 그럼 수고하세요
프로필 이미지
동그래미3
2023-05-03
1284
글번호 168690
종목검색
답변완료

수식 문의

아래의 트뷰 지표를 변환하고 싶습니다. 안되는 부분이 있다면 설명해 주시면 다시 찾아 보겠습니다. 항상 감사드립니다. overlay=true,max_bars_back=1000,max_lines_count=500,max_labels_count=500) length = input.float(500,'Window Size',maxval=500,minval=0) h = input.float(8.,'Bandwidth') mult = input.float(3.) src = input.source(close,'Source') up_col = input.color(#39ff14,'Colors',inline='col') dn_col = input.color(#ff1100,'',inline='col') disclaimer = input(false, 'Hide Disclaimer') //---- n = bar_index var k = 2 var upper = array.new_line(0) var lower = array.new_line(0) lset(l,x1,y1,x2,y2,col)=> line.set_xy1(l,x1,y1) line.set_xy2(l,x2,y2) line.set_color(l,col) line.set_width(l,2) if barstate.isfirst for i = 0 to length/k-1 array.push(upper,line.new(na,na,na,na)) array.push(lower,line.new(na,na,na,na)) //---- line up = na line dn = na //---- cross_up = 0. cross_dn = 0. if barstate.islast y = array.new_float(0) sum_e = 0. for i = 0 to length-1 sum = 0. sumw = 0. for j = 0 to length-1 w = math.exp(-(math.pow(i-j,2)/(h*h*2))) sum += src[j]*w sumw += w y2 = sum/sumw sum_e += math.abs(src[i] - y2) array.push(y,y2) mae = sum_e/length*mult for i = 1 to length-1 y2 = array.get(y,i) y1 = array.get(y,i-1) up := array.get(upper,i/k) dn := array.get(lower,i/k) lset(up,n-i+1,y1 + mae,n-i,y2 + mae,up_col) lset(dn,n-i+1,y1 - mae,n-i,y2 - mae,dn_col) if src[i] > y1 + mae and src[i+1] < y1 + mae label.new(n-i,src[i],'▼',color=#00000000,style=label.style_label_down,textcolor=dn_col,textalign=text.align_center) if src[i] < y1 - mae and src[i+1] > y1 - mae label.new(n-i,src[i],'▲',color=#00000000,style=label.style_label_up,textcolor=up_col,textalign=text.align_center) cross_up := array.get(y,0) + mae cross_dn := array.get(y,0) - mae alertcondition(ta.crossover(src,cross_up),'Down','Down') alertcondition(ta.crossunder(src,cross_dn),'Up','Up') //---- var tb = table.new(position.top_right, 1, 1 , bgcolor = #35202b) if barstate.isfirst and not disclaimer table.cell(tb, 0, 0, 'Nadaraya-Watson Envelope [LUX] Repaints' , text_size = size.small , text_color = #cc2f3c)
프로필 이미지
흑수돌
2023-05-03
1336
글번호 168689
지표