커뮤니티

글번호 228815 관련 문의

프로필 이미지
knoll
2025-12-15 01:59:57
47
글번호 228992
답변완료

안녕하세요. 수고 많으십니다

글번호 228815를 시스템으로 만들어 주시면감사하겠습니다.

챠트에 적색선, 초록색선은 표시 안되게 부탁드려요.


시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-12-15 16:55:13

안녕하세요 예스스탁입니다. 어떤 조건에서 진입/청산하고자 하시는지 알수 없습니다. 해당지표가 dir값이 변경이 될때 차트에 글자 및 점이 모두 후행적으로 과거봉에 텍스트 함수로 표시됩니다. 신호는 과거봉에 표시를 할 수 없습니다. dir값이 0위로 올라가면 매수, dir값이 0 아래로 내려가면 매도하게 작성해 드립니다. input : prd(50); input : baseAPT(20); input : useAdapt(false); input : volBias(10.0); input : highS(lime); input : lowS(red); input : S(lime); input : R(red); input : xx(2); var : b(0); var : ph(Nan),pl(Nan),phl(0),plL(0),prev(Nan),dir(0); var : atrLen(50); var : aha(0),atr(0),apa(0),atrAvg(0),ratio(0); var : aptRaw(0),aptClamped(0),aptSeries(0); var : hlc3(0),p(0),vol(0); b = index; ph = iff(nthhighestbar(1,high, prd) == 0 , high , ph); pl = iff(nthlowestbar(1,low, prd) == 0 , low , pl); phL = iff(nthhighestbar(1,high, prd) == 0 , b , phL); plL = iff(nthlowestbar(1,low, prd) == 0 , b , plL); dir = iff(phL > plL , 1 , -1); aha = 1 / atrLen ; atr = IFf(IsNan(atr[1]) == true, ma(TrueRange,atrLen) , aha * TrueRange + (1 - aha) * IFf(isnan(atr[1])==true,0,atr[1])); apa = 1/atrLen; atrAvg = IFf(IsNan(atrAvg[1]) == true , ma(atr, atrLen) , apa * atr + (1 - apa) * iff(IsNan(atrAvg[1]) == true,0,atrAvg[1])); ratio = iff(atrAvg > 0 , atr / atrAvg , 1.0); aptRaw = iff(useAdapt , baseAPT / pow(ratio, volBias) , baseAPT); aptClamped = max(5.0, min(300.0, aptRaw)); aptSeries = round(aptClamped,0); hlc3 = (h+l+c)/3; if Index == 0 Then { P = hlc3 * volume; vol = volume; } var : x(0),y(0),loc(0),col(0),txt(""),barsback(0),vap(0),i(0); var : apt_i(0),alpha(0),pxv(0),v_i(0),vappe(0),decay(0),apt_0(0),v0(0); var : aa(0),tx(0),txx(0); if dir != dir[1] Then { x = iff(dir > 0 , plL , phL); y = iff(dir > 0 , pl , ph); loc = iff(dir > 0 , 0,1); col = iff(dir > 0 , highS , lowS); if dir > 0 and pl < prev Then { txt = "LL"; Buy(); } Else { if dir > 0 and pl > prev Then txt = "HL"; Else { if dir < 0 and ph < prev Then txt = "LH"; Else { if dir < 0 and ph > prev Then { txt = "HH"; Sell(); } Else txt = ""; } } } tx = Text_New(sDate[Index-x],sTime[Index-x],y,txt); Text_SetStyle(tx,2,loc); Text_SetColor(tx,col); prev = iff(dir > 0 , ph[1] , pl[1]); barsback = b - x; p = y * volume[barsback]; vol = volume[barsback]; vap = p / vol; for i = barsback downto 0 { apt_i = aptSeries[i]; decay = exp(-log(2.0) /max(1.0, apt_i)); alpha =1.0 - decay; pxv = hlc3[i] * volume[i]; v_i = volume[i]; p = (1.0 - alpha) * p + alpha * pxv; vol = (1.0 - alpha) * vol + alpha * v_i; vappe = iff(vol > 0 , p / vol , Nan); #txx = Text_New(sDate[i],sTime[i],vappe,"·"); Text_SetStyle(txx,2,2); Text_SetSize(txx,18); Text_SetColor(txx,iff(dir > 0 , R , S)); } } else { apt_0 = aptSeries; decay = exp(-log(2.0) /max(1.0, apt_0)); alpha =1.0 - decay; pxv = hlc3 * volume; v0 = volume; p = (1.0 - alpha) * p + alpha * pxv; vol = (1.0 - alpha) * vol + alpha * v0; vap = iff(vol > 0 , p / vol , Nan); #txx = Text_New(sDate,sTime,vap,"·"); Text_SetStyle(txx,2,2); Text_SetSize(txx,18); Text_SetColor(txx,iff(dir > 0 , R , S)); } if dir != dir[1] and dir == 1 Then Buy(); if dir != dir[1] and dir == -1 Then Sell(); 즐거운 하루되세요