커뮤니티

수식 전환 부탁드립니다

프로필 이미지
seayun1
2024-04-30 22:11:23
1066
글번호 179076
답변완료
안녕하세요 항상 감사합니다 수식 전환 부탁드립니다 // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // &#169; Zeiierman //@version=5 indicator("2B Reversal Pattern (Expo)",overlay=true,max_lines_count=500) // ~~ ToolTips { t1 = "Set the pivot period." t2 = "Set the maximum bars until the pattern should be completed. This means establishing a limit on the number of bars allowed for the completion of the pattern. A high value returns more signals." t3 = "Set the minimum bars before the breakout. This means establishing a minimum number of bars that must be completed before the breakout. A low value returns more signals." //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Inputs { prd = input.int(20, title="Period",minval=1, tooltip=t1) max = input.int(10, title="Maximum Break Length",minval=1, tooltip=t2) min = input.int(3, title="Minimum Break Length",minval=1, tooltip=t3) bUp = input.color(#6ce5a0,"", inline="col"), bDn = input.color(#f23645,"", inline="col"), pCol = input.color(color.new(color.aqua,0),"",inline="col") //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Variables { b = bar_index var ph = float(na) var pl = float(na) var phL = int(na) var plL = int(na) var bo = float(na) var boL= int(na) breakoutup = false breakoutdn = false var array<line> lines = array.new<line>(0) var active= line(na) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Pivots { pvtHi = ta.pivothigh(high,prd,prd) pvtLo = ta.pivotlow(low,prd,prd) if pvtHi ph := high[prd] phL:= b[prd] if pvtLo pl := low[prd] plL:= b[prd] //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Pattern Detection { if ta.crossover(close,ph) bo := low boL:= b lines.push(line.new(phL,ph,b,ph,color=pCol,style=line.style_dashed)) ph := float(na) if ta.crossunder(close,pl) bo := high boL:= b lines.push(line.new(plL,pl,b,pl,color=pCol,style=line.style_dashed)) pl := float(na) if ta.crossunder(close,bo) and b-boL<=max and b-boL>=min line.delete(active) lines.push(line.new(boL,bo,b,bo,color=bDn,style=line.style_solid,width=2)) breakoutdn := true bo := float(na) if ta.crossover(close,bo) and b-boL<=max and b-boL>=min line.delete(active) lines.push(line.new(boL,bo,b,bo,color=bUp,style=line.style_solid,width=2)) breakoutup := true bo := float(na) if ta.cross(close,bo) bo := float(na) p2 = lines.pop() line.delete(p2) if not na(bo) active := line.new(boL,bo,b,bo,color=pCol,style=line.style_solid,width=2) line.delete(active[1]) if b-boL>max bo := float(na) p2 = lines.pop() line.delete(p2) line.delete(active) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Plots { plotshape(breakoutup?low:na, title="Breakout Up", color=bUp, style=shape.triangleup,location=location.belowbar,size=size.small) plotshape(breakoutdn?high:na, title="Breakout Down", color=bDn, style=shape.triangledown,location=location.abovebar,size=size.small) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Alerts { alertcondition(breakoutup, 'Breakout Up', 'Breakout Up') alertcondition(breakoutdn, 'Breakout Down', 'Breakout Down') //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-05-02 16:08:05

안녕하세요 예스스탁입니다. input : prd(20); input : maxi(10); input : mini(3); input : bUp(Green); input : bdn(Red); input : pCol(Cyan); var : b(0); var : pvtHi(0),pvtLo(0),breakoutdn(False),breakoutup(False); var : ph(Nan),pl(Nan),phL(Nan),plL(Nan),bo(Nan),boL(Nan); var : TL1(0),TL2(0),TX(0); b = index; pvtHi = SwingHigh(1,H,prd,prd,prd*2+1); pvtLo = SwingLow(1,L,prd,prd,prd*2+1); breakoutdn = False; breakoutup = false; if pvtHi > 0 Then { ph = high[prd]; phL = b[prd]; } if pvtLo > 0 Then { pl = low[prd]; plL = b[prd]; } if CrossUp(close,ph) Then { tl1 = TL_New(sDate[b-phl],sTime[b-phl],ph,sDate,sTime,ph); TL_SetColor(TL1,pcol); TL_SetStyle(TL1,2); bo = low; boL = b; ph = Nan; } if CrossDown(close,pl) Then { tl1 = TL_New(sDate[b-pll],sTime[b-pll],pl,sDate,sTime,pl); TL_SetColor(TL1,pcol); TL_SetStyle(TL1,2); bo = high; boL = b; pl = Nan; } if CrossDown(close,bo) and b-boL<=maxi and b-boL>=mini Then { tl2 = TL_New(sDate[b-bol],sTime[b-Bol],bo,sDate,sTime,bo); TL_SetColor(TL1,bup); TL_SetStyle(TL1,2); breakoutdn = true; bo = Nan; } if CrossUp(close,bo) and b-boL<=maxi and b-boL>=mini Then { tl2 = TL_New(sDate[b-bol],sTime[b-Bol],bo,sDate,sTime,bo); TL_SetColor(TL1,bdn); TL_SetStyle(TL1,2); breakoutup = true; bo = Nan; } if CrossUp(close,bo) or CrossDown(close,bo) Then { bo = Nan; if b-boL < mini Then TL_Delete(TL1); } if IsNan(bo) == False Then { if b-boL>maxi Then { bo = Nan; TL_Delete(TL1); } } if breakoutup == true Then { tx = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx,2,0); Text_SetColor(tx,bup); Text_SetSize(tx,20); } if breakoutdn == true Then { tx = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx,2,1); Text_SetColor(tx,bdn); Text_SetSize(tx,20); } 즐거운 하루되세요 > seayun1 님이 쓴 글입니다. > 제목 : 수식 전환 부탁드립니다 > 안녕하세요 항상 감사합니다 수식 전환 부탁드립니다 // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // &#169; Zeiierman //@version=5 indicator("2B Reversal Pattern (Expo)",overlay=true,max_lines_count=500) // ~~ ToolTips { t1 = "Set the pivot period." t2 = "Set the maximum bars until the pattern should be completed. This means establishing a limit on the number of bars allowed for the completion of the pattern. A high value returns more signals." t3 = "Set the minimum bars before the breakout. This means establishing a minimum number of bars that must be completed before the breakout. A low value returns more signals." //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Inputs { prd = input.int(20, title="Period",minval=1, tooltip=t1) max = input.int(10, title="Maximum Break Length",minval=1, tooltip=t2) min = input.int(3, title="Minimum Break Length",minval=1, tooltip=t3) bUp = input.color(#6ce5a0,"", inline="col"), bDn = input.color(#f23645,"", inline="col"), pCol = input.color(color.new(color.aqua,0),"",inline="col") //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Variables { b = bar_index var ph = float(na) var pl = float(na) var phL = int(na) var plL = int(na) var bo = float(na) var boL= int(na) breakoutup = false breakoutdn = false var array<line> lines = array.new<line>(0) var active= line(na) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Pivots { pvtHi = ta.pivothigh(high,prd,prd) pvtLo = ta.pivotlow(low,prd,prd) if pvtHi ph := high[prd] phL:= b[prd] if pvtLo pl := low[prd] plL:= b[prd] //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Pattern Detection { if ta.crossover(close,ph) bo := low boL:= b lines.push(line.new(phL,ph,b,ph,color=pCol,style=line.style_dashed)) ph := float(na) if ta.crossunder(close,pl) bo := high boL:= b lines.push(line.new(plL,pl,b,pl,color=pCol,style=line.style_dashed)) pl := float(na) if ta.crossunder(close,bo) and b-boL<=max and b-boL>=min line.delete(active) lines.push(line.new(boL,bo,b,bo,color=bDn,style=line.style_solid,width=2)) breakoutdn := true bo := float(na) if ta.crossover(close,bo) and b-boL<=max and b-boL>=min line.delete(active) lines.push(line.new(boL,bo,b,bo,color=bUp,style=line.style_solid,width=2)) breakoutup := true bo := float(na) if ta.cross(close,bo) bo := float(na) p2 = lines.pop() line.delete(p2) if not na(bo) active := line.new(boL,bo,b,bo,color=pCol,style=line.style_solid,width=2) line.delete(active[1]) if b-boL>max bo := float(na) p2 = lines.pop() line.delete(p2) line.delete(active) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Plots { plotshape(breakoutup?low:na, title="Breakout Up", color=bUp, style=shape.triangleup,location=location.belowbar,size=size.small) plotshape(breakoutdn?high:na, title="Breakout Down", color=bDn, style=shape.triangledown,location=location.abovebar,size=size.small) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Alerts { alertcondition(breakoutup, 'Breakout Up', 'Breakout Up') alertcondition(breakoutdn, 'Breakout Down', 'Breakout Down') //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}