답변완료
예스 트레이더 에서 쓸수 있게 고쳐 주세요 감사함미다
트레이딩 뷰에 있는 지표 임미다
indicator(title="Range Filter Buy and Sell 5min", shorttitle="Range Filter", overlay=true)
upColor = color.white
midColor = #90bff9
downColor = color.blue
src = input(defval=close, title="Source")
auto_per = input.bool(defval=true, title="Auto-adjust Sampling Period based on timeframe")
per_input = input.int(defval=100, minval=1, title="Sampling Period (if not auto)")
base_timeframe = 5 // Base timeframe in minutes (5min chart)
base_per = 100 // Base sampling period for 5min chart
per = auto_per and timeframe.isintraday ? math.max(1, math.round(base_per * (base_timeframe / timeframe.multiplier))) : per_input
mult = input.float(defval=3.0, minval=0.1, title="Range Multiplier")
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x[1]), t)
smoothrng = ta.ema(avrng, wper) * m
smoothrng
smrng = smoothrng(src, per, mult)
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt[1]) ? x - r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x - r :
x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r
rngfilt
filt = rngfilt(src, smrng)
upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])
downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])
hband = filt + smrng
lband = filt - smrng
// Colors
filtcolor = upward > 0 ? upColor : downward > 0 ? downColor : midColor
barcolor = src > filt and src > src[1] and upward > 0 ? upColor :
src > filt and src < src[1] and upward > 0 ? upColor :
src < filt and src < src[1] and downward > 0 ? downColor :
src < filt and src > src[1] and downward > 0 ? downColor : midColor
filtplot = plot(filt, color=filtcolor, linewidth=2, title="Range Filter")
// Target Bands
hbandplot = plot(hband, color=color.new(upColor, 70), title="High Target")
lbandplot = plot(lband, color=color.new(downColor, 70), title="Low Target")
// Fills
fill(hbandplot, filtplot, color=color.new(upColor, 90), title="High Target Range")
fill(lbandplot, filtplot, color=color.new(downColor, 90), title="Low Target Range")
// Bar Color
barcolor(barcolor)
// Break Outs
longCond = bool(na)
shortCond = bool(na)
longCond := src > filt and src > src[1] and upward > 0 or
src > filt and src < src[1] and upward > 0
shortCond := src < filt and src < src[1] and downward > 0 or
src < filt and src > src[1] and downward > 0
CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]
longCondition = longCond and CondIni[1] == -1
shortCondition = shortCond and CondIni[1] == 1
// Alerts
plotshape(longCondition, title="Buy Signal", text="Buy", textcolor=color.white, style=shape.labelup, size=size.small, location=location.belowbar, color=color.new(#aaaaaa, 20))
plotshape(shortCondition, title="Sell Signal", text="Sell", textcolor=color.white, style=shape.labeldown, size=size.small, location=location.abovebar, color=color.new(downColor, 20))
alertcondition(longCondition, title="Buy alert on Range Filter", message="Buy alert on Range Filter")
alertcondition(shortCondition, title="Sell alert on Range Filter", message="Sell alert on Range Filter")
alertcondition(longCondition or shortCondition, title="Buy and Sell alert on Range Filter", message="Buy and Sell alert on Range Filter")
지표로 볼수있게 부탁 드려요 건강하세요
2025-05-18
269
글번호 190924
지표
답변완료
부탁드립니다 항상 감사합니다
10// ✅ 예스트레이더 코인용 최종 안정화 Plot 버전 (Invalid argument(22) 완전 차단)
Input: 익절비율(1.02), 손절비율(0.992), 기준거래량배수(2),
atrMult(3.0), atrLen(10);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false), 기준거래량(0);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
ATR = Average(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * ATR;
Dn = (High + Low)/2 - atrMult * ATR;
If CurrentBar = 1 Then PrevST = 0;
If Close > PrevST Then ST = Dn Else ST = Up;
PrevST = ST;
// 지표 계산
기준거래량 = Average(Volume, 20);
RSI값 = RSI(Close, 14);
BB상단 = BollBandUp(Close, 20, 2);
BB하단 = BollBandDn(Close, 20, 2);
BB중심 = Average(Close, 20);
// === 롱 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 * 기준거래량배수
and Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 * 익절비율;
손절가 = 진입가 * 손절비율;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 숏 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 * 기준거래량배수
and Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 * (2 - 익절비율);
손절가 = 진입가 * (2 - 손절비율);
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 롱 청산 ===
If 진입중 = true Then
Begin
If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then
Begin
If Close >= 익절가 Then 승거래 += 1;
진입중 = false;
총거래 += 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then
Begin
If Close <= 익절가 Then 승거래 += 1;
숏진입중 = false;
총거래 += 1;
End;
End;
// === Plot 시각화 (안정성 강화 버전) ===
진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
2.// ✅ E-mini Nasdaq 100 전용 안정화 Plot 버전 (포인트 기반 청산)
Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000),
atrMult(3.0), atrLen(10);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// SuperTrend 계산
ATR = Average(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * ATR;
Dn = (High + Low)/2 - atrMult * ATR;
If CurrentBar = 1 Then PrevST = 0;
If Close > PrevST Then ST = Dn Else ST = Up;
PrevST = ST;
// 지표 계산
RSI값 = RSI(Close, 14);
BB상단 = BollBandUp(Close, 20, 2);
BB하단 = BollBandDn(Close, 20, 2);
BB중심 = Average(Close, 20);
// === 롱 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량
and Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 + 익절포인트 * MinMove;
손절가 = 진입가 - 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 숏 진입 ===
If 진입중 = false and 숏진입중 = false and Volume > 기준거래량
and Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 - 익절포인트 * MinMove;
손절가 = 진입가 + 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 롱 청산 ===
If 진입중 = true Then
Begin
If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then
Begin
If Close >= 익절가 Then 승거래 += 1;
진입중 = false;
총거래 += 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then
Begin
If Close <= 익절가 Then 승거래 += 1;
숏진입중 = false;
총거래 += 1;
End;
End;
// === Plot 시각화 (안정성 강화 버전) ===
진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
3.
// ? E-mini Nasdaq 100 전용: 수동 손익비 조절 박스 포함 안정화 버전 (문법 오류 수정 포함)
Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000),
atrMult(3.0), atrLen(10),
수동진입가(0), 수동익절가(0), 수동손절가(0), 수동모드(false);
Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false);
Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0);
Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0);
Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0);
Var: Plot익절(0), Plot손절(0), Plot승률(0);
// 외부 함수 정의 필요
External: BollBandUp, BollBandDn;
External: MinMove;
// SuperTrend 계산
If CurrentBar = 1 Then PrevST = Close;
ATR = Average(TrueRange, atrLen);
Up = (High + Low)/2 + atrMult * ATR;
Dn = (High + Low)/2 - atrMult * ATR;
If Close > PrevST Then ST = Dn Else ST = Up;
PrevST = ST;
// 지표 계산
RSI값 = RSI(Close, 14);
BB상단 = BollBandUp(Close, 20, 2);
BB하단 = BollBandDn(Close, 20, 2);
BB중심 = Average(Close, 20);
// === 자동 진입 조건 ===
If 수동모드 = false and 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and
Close > BB상단 and RSI값 < 70 and Close > ST Then
Begin
진입가 = Close;
익절가 = 진입가 + 익절포인트 * MinMove;
손절가 = 진입가 - 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
If 수동모드 = false and 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and
Close < BB하단 and RSI값 > 30 and Close < ST Then
Begin
진입가 = Close;
익절가 = 진입가 - 익절포인트 * MinMove;
손절가 = 진입가 + 손절포인트 * MinMove;
If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then
손익비 = (진입가 - 익절가) / (손절가 - 진입가);
숏진입중 = true;
End;
// === 수동 모드 진입 ===
If 수동모드 = true and 진입중 = false and 숏진입중 = false and
수동진입가 > 0 and 수동익절가 > 0 and 수동손절가 > 0 and
AbsValue(수동진입가 - 수동손절가) > 0.00001 Then
Begin
진입가 = 수동진입가;
익절가 = 수동익절가;
손절가 = 수동손절가;
손익비 = (익절가 - 진입가) / (진입가 - 손절가);
진입중 = true;
End;
// === 롱 청산 ===
If 진입중 = true Then
Begin
If 익절가 > 0 and 손절가 > 0 and
(Close >= 익절가 or Close <= 손절가 or RSI값 >= 75) Then
Begin
If Close >= 익절가 Then 승거래 += 1;
진입중 = false;
총거래 += 1;
End;
End;
// === 숏 청산 ===
If 숏진입중 = true Then
Begin
If 익절가 > 0 and 손절가 > 0 and
(Close <= 익절가 or Close >= 손절가 or RSI값 <= 25) Then
Begin
If Close <= 익절가 Then 승거래 += 1;
숏진입중 = false;
총거래 += 1;
End;
End;
// === Plot 시각화 ===
진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0);
Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0);
Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0);
Plot승률 = IFF(총거래 > 0 and 승거래 >= 0, 100 * 승거래 / 총거래, 0);
Plot1(진입상태, "진입여부");
Plot2(Plot익절, "익절가");
Plot3(Plot손절, "손절가");
Plot4(Plot승률, "승률(%)");
둘다 각 차트에 구현되게 부탁드립니다
2025-05-18
223
글번호 190921
지표