답변완료
수식변경 부탁드립니다.
수고 하십니다.
Input : Period(20), MultiD(2);
var : diff(0),BBup(0),BBdn(0);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
diff = (BBup-BBdn);
Plot1(BBup, "상단");
Plot2(BBdn, "하단");
plot9(BBup-diff*0.50, "중심");
위 수식에서 중심이평선을 변수에서(1: SMA, 2:EMA, 3:SMMA, 4:WMA, 5:VWMA)를 선택 할 수 있도록 수정 부탁 드립니다
감사합니다.
2025-02-19
415
글번호 188337
지표
답변완료
수식수정
89909글임니다
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
end;
Inputs : DDD(20150309), LEN(300), HL_ED(60), CC(Black);
Vars : DBN1(0), KK1(0), DD1(0), KK2(0), DD2(0);
var : val2(0),v1(0),v2(0);
If STime >= 080000 And STime[1] < 080000 Then Begin
DBN1 = 0;
KK1 = 0;
DD1 = 0;
KK2 = 0;
DD2 = 0;
End;
DBN1 = DBN1 + 1;
If STime >= 083000 And DD1 == 0 Then Begin
Val2 = O;
DD1 = 1;
KK1 = DBN1;
v1 = 0;
v2 = 0;
End;
if DD1 == 1 Then{
if C > val2 and UpWave[1] Then{
buy();
}
if C < val2 and DnWave[1] Then{
sell();
}
}
89909 글입니다
첨부sw2
위식에서 수정부탁드림니다
매수 sw2선 발생후 sw2선을 터치나
하락후 재상승시
매도 매수반대
2025-02-19
491
글번호 188329
시스템
답변완료
지표문의
지표문의
1.HPc일 =Data1(DayClose(0))+Data2(DayClose(0))+Data3(DayClose(0))+data4(DayClose(0))+Data5(DayClose(0))+data6(DayClose(0))+Data7(DayClose(0))+data8(DayClose(0))+data9(DayClose(0))+Data10(DayClose(0));
2.1를 사용자 함수로해서 분봉에표시 첨부 파일 처럼 나옴
고 저가 표시 안됨,분봉값이 표시 안됨
지표를 좀 만들어 주세요
예제)
input : N(5);
var : cnt(0),sum(0),mav(0);
#N일 일봉이평 계산
sum = 0;
For cnt = 0 to N-1
{
sum = sum + HPc일;
}
mav = sum/N;
plot5(mav,"고가",RED);
3.그럼수고하세요
2025-02-19
411
글번호 188328
지표
답변완료
전고 점
안녕하세요.
키움에서 사용하는 지표 수식입니다.
예스트레이더로 변경 부탁 드려요.
Hv = max(O, C);
Lv = min(O, C);
Condition1 = Highest(Hv(barCnt+1),barCnt) <= Hv(barCnt) and Hv(barCnt) > Highest(Hv,barCnt);
조건1=shift(if(Condition1, 1, 0),-barCnt);
전고점값=shift(if(Condition1, max(O(barCnt), C(barCnt)), 0), -barCnt);
Valuewhen(1, 조건1, 전고점값)
barCnt = 10
늘 감사합니다.
좋은 하루 보내세요.
2025-04-30
372
글번호 188324
지표
답변완료
트뷰에서 사용중인 로직 변환 요청드려봅니다.
트뷰에서 활용하고 있는 전략으로 손매매를 하고 있는데 이걸 자동으로 구현했고
혹시나 해당 플랫폼에서 사용할 수 있다면 자동매매로 전환하고 싶어서 문의드립니다.
트레이딩뷰 전략을 끌어와서 자동매매를 시작해보려고 합니다. 변환 부탁드립니다.
//@version=4
strategy(shorttitle = "SQZMOM_LB", title="Squeeze Momentum Indicator [LazyBear]", overlay=true)
length = input(20, title="BB Length")
mult = input(2.0, title="BB MultFactor")
lengthKC = input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)
trailTrigger = input(50, title="트레일링 스탑 활성화 포인트") // 50포 상승 이후 트레일링 스탑 활성화
trailPercent = input(50, title="트레일링 되돌림 비율 (%)") / 100 // 50% 되돌림 시 익절
stopLossPercent = input(0.8, title="손절 비율 (%)") / 100 // 손절 비율 설정
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = (sqzOn == false) and (sqzOff == false)
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0)
bcolor = val > 0 ? (val > nz(val[1]) ? color.green : color.green) : (val < nz(val[1]) ? color.red : color.red)
scolor = noSqz ? color.blue : sqzOn ? color.black : color.gray
plot(val, color=bcolor, linewidth=2)
plot(0, color=scolor, style=plot.style_cross, linewidth=2)
startHour = 15
startMinute = 0
startTimestamp = timestamp("GMT+9", year, month, dayofmonth, startHour, startMinute)
isAfterStartTime = (time >= startTimestamp)
// 거래량 조건 추가: 최근 20기간의 평균 거래량
volumeAvg = sma(volume, 20)
volumeMultiplier = input(1.3, title="Volume Multiplier for Entry") // 거래량이 평균보다 몇 배 이상일 때 진입할지 설정
longCondition = (bcolor == color.green) and (bcolor[1] != color.green) and isAfterStartTime and (volume > volumeAvg * volumeMultiplier)
// 숏 포지션을 더 엄격하게 진입: 강한 하락 신호 추가 (50일 이동평균선 아래에서만)
strongDownSignal = (bcolor == color.red) and (bcolor[1] != color.red) and (close < sma(close, 50)) // 50일 이동평균선 아래에서 하락
shortCondition = strongDownSignal and isAfterStartTime and (volume > volumeAvg * volumeMultiplier)
var float maxProfitLong = na
var float maxProfitShort = na
if (longCondition)
strategy.entry("Long", strategy.long)
maxProfitLong := close // 롱 포지션 진입 시 초기화
if (shortCondition)
strategy.entry("Short", strategy.short)
maxProfitShort := close // 숏 포지션 진입 시 초기화
// 롱 포지션 트레일링 스탑 로직
if (strategy.position_size > 0)
maxProfitLong := max(maxProfitLong, close) // 최고 수익 갱신
trailStopLong = maxProfitLong - (maxProfitLong - strategy.position_avg_price) * trailPercent // 50% 되돌림 계산
stopLossLong = strategy.position_avg_price - (strategy.position_avg_price * stopLossPercent) // 손절 가격 계산
if (close <= trailStopLong and (maxProfitLong - strategy.position_avg_price) >= trailTrigger)
strategy.close("Long")
if (close <= stopLossLong)
strategy.close("Long") // 손절
// 숏 포지션 트레일링 스탑 로직
if (strategy.position_size < 0)
maxProfitShort := min(maxProfitShort, close) // 최저 수익 갱신
trailStopShort = maxProfitShort + (strategy.position_avg_price - maxProfitShort) * trailPercent // 50% 되돌림 계산
stopLossShort = strategy.position_avg_price + (strategy.position_avg_price * stopLossPercent) // 손절 가격 계산
if (close >= trailStopShort and (strategy.position_avg_price - maxProfitShort) >= trailTrigger)
strategy.close("Short")
if (close >= stopLossShort)
strategy.close("Short") // 손절
// 기본적인 색상 변화에 따른 청산 로직
strategy.close("Long", when=bcolor == color.red)
strategy.close("Short", when=bcolor == color.green)
2025-02-19
521
글번호 188315
사용자 함수