답변완료
수식작성 부탁드립니다.
안녕하세요. 운영자님
이번에 꼭좀 부탁드릴 사항은 다음의 트레이딩뷰 지표를 예스트레이더로 변환을 해주십사합니다.
Bollinger Bands Percentile + Stdev Channels (BBPct) [AlgoAlpha]
//@version=5
indicator(shorttitle="◭ BBPCT% [AlgoAlpha]", title="◭ Bollinger Bands Percent", overlay=false)
//Symmetrical Standard Deviation Channels
neon = input.bool(title = 'Neon Color Theme', defval = true)
upper1 = close + 0.05 * close
lower1 = close - 0.05 * close
stdL = close > lower1
stdS = close < upper1
//BBPCT
length = input.int(20, minval=1, group='Bollinger Band')
src = input(close, title="Source", group='Bollinger Band')
mult = input.float(2.0, minval=0.001, maxval=50, title="Multiplier", group='Bollinger Band')
lookback = 750
showStdev = input.bool(false, title='Show Bollinger Band Stdev %', group='Settings')
var stdevArray = array.new_float(lookback,0.0)
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
positionBetweenBands = 100 * (src - lower)/(upper - lower)
array.push(stdevArray, dev/close)
if array.size(stdevArray)>=lookback
array.remove(stdevArray, 0)
rank = array.percentrank(stdevArray, lookback-1)
hist = 100*dev/close
bullcolor = neon ? #00ffbb : #00b712
bearcolor = neon ? #ff1100 : #c30010
//PLOTS
plot1 = plot(positionBetweenBands, color = color.new(color.white, 100))
obupper = plot(130, color = color.new(bearcolor, 0), display = display.none)
oblower = plot(110, color = color.new(bearcolor, 0), display = display.none)
obmid = plot(95, display = display.none)
osupper = plot(-10, color = color.new(bullcolor, 30), display = display.none)
oslower = plot(-30, color = color.new(bullcolor, 30), display = display.none)
osmid = plot(5, color = color.new(bullcolor, 70), display = display.none)
hline(50)
z = plot(positionBetweenBands, "Z", positionBetweenBands > 50 ? bullcolor : bearcolor)
mid = plot(50, display = display.none, editable = false)
fill(z, mid, positionBetweenBands > 50 ? positionBetweenBands : 50, positionBetweenBands > 50 ? 50 : positionBetweenBands, positionBetweenBands > 50 ? bullcolor : #00000000, positionBetweenBands > 50 ? #00000000 : bearcolor)
fill(obupper, oblower, color.new(bearcolor, 80))
fill (oblower, obmid, color.new(bearcolor, 87))
fill(osupper, oslower, color.new(bullcolor, 87))
fill(osupper, osmid, color.new(bullcolor, 93))
plotshape(ta.crossover(positionBetweenBands,-8) and stdL, style = shape.triangleup, color = bullcolor, location = location.bottom, size = size.tiny)
plotshape(ta.crossunder(positionBetweenBands,108) and stdS, style = shape.triangledown, color = bearcolor, location = location.top, size = size.tiny)
plot(showStdev ? hist : na, style=plot.style_columns, color=(hist[1] < hist ? #26A69A : #B2DFDB) , title='Stdev %')
//Alerts
alertcondition(ta.crossover(positionBetweenBands,-10), title="Bullish Reversal", message="Bullish Reversal {{exchange}}:{{ticker}}")
alertcondition(ta.crossunder(positionBetweenBands,110), title="Bearish Reversal", message="Bearish Reversal {{exchange}}:{{ticker}}")
alertcondition(ta.crossover(positionBetweenBands,50), title="Bullish Trend", message="Bullish Trend {{exchange}}:{{ticker}}")
alertcondition(ta.crossunder(positionBetweenBands,50), title="Bearish Trend", message="Bearish Trend {{exchange}}:{{ticker}}")
2024-01-22
1238
글번호 175961
지표
답변완료
분할 엑시트
안녕하세요,
아래의 수식이 분봉에서는 작동하는데 틱(10또는 20)챠트에서 작동하지 않는데 부탁드립니다.
if stime == 151000 Then
{
if MarketPosition == 1 Then
ExitLong("bx1",AtMarket,def,"",Floor(MaxContracts*0.25),1);
if MarketPosition == -1 Then
ExitShort("sx1",AtMarket,def,"",Floor(MaxContracts*0.25),1);
}
if stime == 151500 Then
{
if MarketPosition == 1 Then
ExitLong("bx2",AtMarket,def,"",Floor(MaxContracts*0.25),1);
if MarketPosition == -1 Then
ExitShort("sx2",AtMarket,def,"",Floor(MaxContracts*0.25),1);
}
if stime == 152000 Then
{
if MarketPosition == 1 Then
ExitLong("bx3",AtMarket,def,"",Floor(MaxContracts*0.25),1);
if MarketPosition == -1 Then
ExitShort("sx3",AtMarket,def,"",Floor(MaxContracts*0.25),1);
}
if stime == 152500 Then
{
if MarketPosition == 1 Then
ExitLong("bx4",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx4",AtMarket);
}
2024-01-22
874
글번호 175958
시스템
답변완료
85334번 관련 부탁드립니다 ~^^
수식 고맙습니다.
만들어 주신 수식에
아래 사항을 변수로 만들어 입력 할 수 있게 부탁 드립니다.
C(1) : 기준이 되는 고점 종가의 날짜 설정(C(1)의 경우 변수=1)
C(3) : 기준이 되는 저점 종가의 날짜 설정(C(3)의 경우 변수‘=3)
진입 시 5틱 : 하락 후 저점 대비 상승 틱 수 설정
익절 청산 시 5틱 : 상승 후 고점 대비 하락 틱 수 설정
손절 청산 시 5틱 : 지정값 대비 하락 틱 수 설정
3십만원 : 1차 매수 금액(또는 수량) 설정
6십만원 : 2차 매수 금액(또는 수량) 설정
감사합니다~^^
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 부탁드립니다 ~^^
> 안녕하세요
예스스탁입니다.
올려주신 내용은 차트가 일봉이면 구현이 불가능합니다.
하나의 봉 봉미완성시에 특정값까지 하락후 상승하는 것은 체크를 하지 못합니다.
분봉차트에 일봉값 체크해서 신호발생하게 구현하셔야 합니다.
var : ll(0),hh(0);
if DayClose(1) > DayClose(3) Then
{
var1 = DayClose(1) - (DayClose(1) - DayClose(3))*1/4;
var2 = DayClose(1) - (DayClose(1) - DayClose(3))*2/4;
var3 = DayClose(1) - (DayClose(1) - DayClose(3))*3/4;
if MarketPosition == 0 and DayLow <= var1 then
Buy("b",AtStop,DayLow+PriceScale*5,Floor(300000/max(NextBarOpen,DayLow+PriceScale*5)));
}
if MarketPosition == 1 Then
{
if MarketPosition[1] != 1 Then
{
value1 = var1;
Value2 = Var2;
Value3 = Var3;
Value4 = DayClose(1);
ll = l;
hh = h;
}
if h > hh Then
hh = h;
if l < ll Then
ll = l;
if MaxEntries == 1 and ll <= var2 then
Buy("bb",AtStop,ll+PriceScale*5,Floor(500000/max(NextBarOpen,DayLow+PriceScale*5)));
ExitLong("bx",AtStop,Value3-PriceScale*5);
if hh > value4 Then
ExitLong("bx2",AtStop,hh-PriceScale*5);
}
즐거운 하루되세요
> 개성상인 님이 쓴 글입니다.
> 제목 : 부탁드립니다 ~^^
> 항상 도움 주셔서 감사합니다.
종목 : 주식(종목 사용자 선택)
차트 : 일봉
아래 조건에 맞는 시스템식 부탁드립니다.
// C(1) : 전일 종가, C(3) : 3일전 종가
1. C(1) - (C(1) - C(3))*1/4 이하 하락 후 저점 대비 5틱 이상 상승 시 3십만원 1차 시장가 매수
2. C(1) - (C(1) - C(3))*2/4 이하 하락 후 저점 대비 5틱 이상 상승 시 6십만원 2차 시장가 매수
3. C(1) - (C(1) - C(3))*3/4 대비 5틱 이상 하락 시 보유수량 전부 시장가 매도 손절 청산 후 추가 진입금지
4. C(1) 이상 상승 후 고점 대비 5틱 이상 하락 시 보유수량 전부 시장가 매도 익절 청산 후 추가 진입금지
5. 날짜가 바뀌어도 처음 세팅 된 값 유지.
# 1차 매수 후 2차 매수 지점까지 하락하지 않고 C(1)까지 상승하여 전부 매도 청산되면 2차 매수하지 않고 추가 진입금지.
감사합니다.
2024-01-22
1186
글번호 175956
시스템