커뮤니티

문의

프로필 이미지
nicebs
2024-08-28 17:04:00
984
글번호 182912
답변완료
Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 여기에 StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); 이부분 선언되지 않은 SUM이라는데 왜인지 궁금합니다.
종목검색
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2024-08-29 14:31:21

안녕하세요 예스스탁입니다. 예스랭귀지에는 sum이라는 함수가 없습니다. 봉마다 누적하면 accum, 봉수를 지정해 누적하면 AccumN함수를 사용하셔야 합니다. Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(AccumN(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 즐거운 하루되세요 > nicebs 님이 쓴 글입니다. > 제목 : 문의 > Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 여기에 StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); 이부분 선언되지 않은 SUM이라는데 왜인지 궁금합니다.
프로필 이미지

nicebs

2024-08-29 21:43:09

혹시 이런 검색식이 약간의 수정으로 구현이 될까요? Input: Period(20), Threshold(10000); Var: ForeignBuySum(0), TotalForeignBuy(0); // 최근 Period 동안의 외국인 매수량 합계를 계산 For i = 0 to Period - 1 begin ForeignBuySum = ForeignBuySum + ForeignBuy[i]; end; // 기준 Threshold 이상인 경우 신호 발생 If ForeignBuySum > Threshold Then Find(1); Else Find(0); 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 > 안녕하세요 예스스탁입니다. 예스랭귀지에는 sum이라는 함수가 없습니다. 봉마다 누적하면 accum, 봉수를 지정해 누적하면 AccumN함수를 사용하셔야 합니다. Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(AccumN(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 즐거운 하루되세요 > nicebs 님이 쓴 글입니다. > 제목 : 문의 > Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 여기에 StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); 이부분 선언되지 않은 SUM이라는데 왜인지 궁금합니다.
프로필 이미지

예스스탁 예스스탁 답변

2024-08-30 09:37:27

안녕하세요 예스스탁입니다. 올려주신 수식에서 ForeignBuy라는 변수로 보면 투자주체별 데이터를 이용하고자 하는 내용인 것 같습니다. 종목검색에는 투자주체별 데이터가 제공되지 않아 수식으로 가능하지 않습니다. 즐거운 하루되세요 > nicebs 님이 쓴 글입니다. > 제목 : Re : Re : 문의 > 혹시 이런 검색식이 약간의 수정으로 구현이 될까요? Input: Period(20), Threshold(10000); Var: ForeignBuySum(0), TotalForeignBuy(0); // 최근 Period 동안의 외국인 매수량 합계를 계산 For i = 0 to Period - 1 begin ForeignBuySum = ForeignBuySum + ForeignBuy[i]; end; // 기준 Threshold 이상인 경우 신호 발생 If ForeignBuySum > Threshold Then Find(1); Else Find(0); 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 > 안녕하세요 예스스탁입니다. 예스랭귀지에는 sum이라는 함수가 없습니다. 봉마다 누적하면 accum, 봉수를 지정해 누적하면 AccumN함수를 사용하셔야 합니다. Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(AccumN(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 즐거운 하루되세요 > nicebs 님이 쓴 글입니다. > 제목 : 문의 > Input: BBPeriod(20), BBMultiplier(2), RSIOverbought(70), RSIOversold(30); Var: MiddleBand(0), UpperBand(0), LowerBand(0), RSI(0), StdDev(0), Gain(0), Loss(0), AvgGain(0), AvgLoss(0); MiddleBand = Ema(Close, BBPeriod); StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); UpperBand = MiddleBand + BBMultiplier * StdDev; LowerBand = MiddleBand - BBMultiplier * StdDev; Gain = IFF(Close > Close[1], Close - Close[1], 0); Loss = IFF(Close < Close[1], Close[1] - Close, 0); AvgGain = Ema(Gain, 14); AvgLoss = Ema(Loss, 14); RSI = 100 - (100 / (1 + AvgGain / AvgLoss)); If (Close < LowerBand And RSI < RSIOversold) Or (Close > UpperBand And RSI > RSIOverbought) Then Find(1); 여기에 StdDev = Sqrt(Sum(Power(Close - MiddleBand, 2), BBPeriod) / BBPeriod); 이부분 선언되지 않은 SUM이라는데 왜인지 궁금합니다.