예스스탁
예스스탁 답변
2025-12-11 12:38:16
안녕하세요
예스스탁입니다.
input 변수 StandardDeviation로 추가해 드립니다.
input : smooth(1),length1(25);
var : src(0),offset(0),sigma1(0),pchange(0),avpchange(0);
var : mm(0),s(0),norm(0),sum(0),i(0),weight(0);
var : r(0),rsiL(False),rsiS(False);
src = close;
offset = 0.85;
sigma1 = 7;
pchange = (src-src[smooth]) / src * 100;
mm = offset * (length1 - 1);
s = length1 / sigma1;
norm = 0.0;
sum = 0.0;
for i = 0 to length1 - 1
{
weight = exp(-1 * pow(i - mm, 2) / (2 * pow(s, 2)));
norm = norm + weight;
sum = sum + pchange[length1 - i - 1] * weight;
}
avpchange = sum / norm;
//RSI
r = rsi(14);
rsiL = r > r[1];
rsiS = r < r[1];
var : length11(0),src1(0),momm(0),sm1(0),sm2(0),chandeMO(0);
var : m1(0),m2(0),cL(False),cS(False);
length11 = 9;
src1 = close;
momm = src1-src1[1];
m1 = IFF(momm>=0,momm,0);
m2 = IFF(momm>=0,0,-momm);
sm1 = AccumN(m1, length11);
sm2 = AccumN(m2, length11);
chandeMO = 100 * (sm1-sm2)/(sm1+sm2);
cL = chandeMO > chandeMO[1];
cS = chandeMO < chandeMO[1];
input : length(14);
input : adaptive(true);
input : volatilityPeriod(20);
input : StandardDeviation(1);
var : gma(0),sumOfWeights(0),sigma(0),value(0),gmaColor(0),Emav(0);
var : tx(0);
gma = 0.0;
sumOfWeights = 0.0;
sigma = iff(adaptive , std(close, volatilityPeriod) ,StandardDeviation);
for i = 0 to length - 1
{
weight = exp(-pow(((i - (length - 1)) / (2 * sigma)), 2) / 2);
value = highest(avpchange, i + 1) + lowest(avpchange, i + 1);
gma = gma + (value * weight);
sumOfWeights = sumOfWeights + weight;
}
gma = (gma / sumOfWeights) / 2;
gma = ema(gma, 7);
gmaColor = iff(avpchange >= gma , Green , Red);
emav = ema(close, 7);
plot1(emav, "Gaussian Moving Average",gmaColor);
if CrossUp(avpchange,gma) Then
{
tx = Text_New(sDate[1],sTime[1],L[1],"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Green);
}
if CrossDown(avpchange,gma) Then
{
tx = Text_New(sDate[1],sTime[1],H[1],"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Red);
}
즐거운 하루되세요