커뮤니티
부탁 드립니다.
2018-10-15 17:26:50
170
글번호 122701
항상 도움주심에 감사 드립니다.
다음의 타주기 틱용 수식을
1)일봉에서의 지표를 분용 차트에
2)주봉에서의 지표를 분용 차트에
3)월봉에서의 지표를 분용 차트에 표시되도록 부탁 드립니다.
주)참고수식을 덧붙입니다.
미리 경배로 감사 드립니다.
/*
Inputs: 전환선기간(9),sig(5);
Variables: 전환선(0);
전환선 = (Highest(High, 전환선기간) + Lowest(Low, 전환선기간)) / 2;
var1=c-전환선;
var2=ma(var1,sig);
plot1(var2);
*/
input : Nbars(3),전환선기간(9),sig(26);
var : TF(0),S1(0),D1(0),TM(0),cnt(0),idx(0);
var : H1(0),L1(0),전환선(0),sum(0),mav(0);
Array : HH[100](0),LL[100](0),diff[100](999999999);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
idx = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%Nbars;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[전환선기간-1] > 0 and LL[전환선기간-1] > 0 then
{
H1 = HH[0];
L1 = LL[0];
for cnt = 0 to 전환선기간-1
{
if HH[cnt] > H1 Then
H1 = HH[cnt];
if LL[cnt] < L1 Then
L1 = LL[cnt];
}
전환선 = (H1 + L1)/2;
diff[0] = C-전환선;
}
if diff[sig-1] < 999999999 Then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
mav = sum/sig;
plot1(mav);
}
}
참고수식)
Input : Period(5),sig(20);
Var : Ep1(0),Ep2(0);
var : didx(0),emad(0),sigd(0),pred(0),preds(0),emads(0);
var : widx(0),emaw(0),sigw(0),prew(0),prews(0),emaws(0);
var : midx(0),emam(0),sigm(0),prem(0),prems(0),emams(0);
Ep1 = 2/(Period+1);
Ep2 = 2/(sig+1);
if bdate != bdate[1] then
{
didx = didx + 1;
pred = emad[1];
preds = sigd[1];
}
if didx <= 1 then
{
emad = C;
sigd = emad;
}
else
{
emad = C * EP1 + pred * (1-EP1);
sigd = emad * EP2 + preds * (1-EP2);
}
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) then
{
widx = widx + 1;
prew = emaw[1];
prews = sigw[1];
}
if widx <= 1 then
{
emaw = C;
sigw = emaw;
}
else
{
emaw = C * EP1 + prew * (1-EP1);
sigw = emaw * EP2 + prews * (1-EP2);
}
if bdate > bdate[1]+30 then
{
midx = midx + 1;
prem = emam[1];
prems = sigm[1];
}
if midx <= 1 then
{
emam = C;
sigm = emam;
}
else
{
emam = C * EP1 + prem * (1-EP1);
sigm = emam * EP2 + prems * (1-EP2);
}
plot1(sigd,"일봉");
plot2(sigw,"주봉");
plot3(sigm,"월봉");
답변 1
예스스탁 예스스탁 답변
2018-10-16 10:54:05
안녕하세요
예스스탁입니다.
1 일봉
Inputs: 전환선기간(9),sig(5);
var : cnt(0),hh(0),ll(0),sum(0),ii(0);
sum = 0;
for ii = 0 to sig-1
{
hh = DayHigh(ii);
ll = DayLow(ii);
for cnt = ii+0 to ii+(전환선기간-1)
{
if DayHigh(cnt) > hh Then
hh = DayHigh(cnt);
if DayLow(cnt) < ll Then
ll = DayLow(cnt);
}
var1 = DayClose(ii)-(hh+ll)/2;
sum = sum + var1;
}
var2 = sum/sig;
plot1(var2);
2 주
Inputs: 전환선기간(9),sig(5);
var : cnt(0),hh(0),ll(0),sum(0),mav(0);
Array : wh[50](0),wl[50](0),diff[50](999999999);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
{
wh[0] = h;
wl[0] = l;
for cnt = 1 to 49
{
wh[cnt] = wh[cnt-1][1];
wl[cnt] = wl[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if h > wh[0] Then
wh[0] = h;
if l < wl[0] Then
wl[0] = l;
if wh[전환선기간-1] > 0 and wl[전환선기간-1] > 0 then
{
hh = wh[0];
ll = wl[0];
for cnt = 0 to 전환선기간-1
{
if wh[cnt] > hh Then
hh = wh[cnt];
if wl[cnt] < ll Then
ll = wl[cnt];
}
diff[0] = C-(hh+ll)/2;
}
if diff[sig-1] != 999999999 then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
mav = sum/sig;
plot1(mav);
}
3 월
Inputs: 전환선기간(9),sig(5);
var : cnt(0),hh(0),ll(0),sum(0),mav(0);
Array : mh[50](0),ml[50](0),diff[50](999999999);
if bdate > bdate[1]+30 Then
{
mh[0] = h;
ml[0] = l;
for cnt = 1 to 49
{
mh[cnt] = mh[cnt-1][1];
ml[cnt] = ml[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if h > mh[0] Then
mh[0] = h;
if l < ml[0] Then
ml[0] = l;
if mh[전환선기간-1] > 0 and ml[전환선기간-1] > 0 then
{
hh = mh[0];
ll = ml[0];
for cnt = 0 to 전환선기간-1
{
if mh[cnt] > hh Then
hh = mh[cnt];
if ml[cnt] < ll Then
ll = ml[cnt];
}
diff[0] = C-(hh+ll)/2;
}
if diff[sig-1] != 999999999 then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
mav = sum/sig;
plot1(mav);
}
즐거운 하루되세요
> yes 님이 쓴 글입니다.
> 제목 : 부탁 드립니다.
> 항상 도움주심에 감사 드립니다.
다음의 타주기 틱용 수식을
1)일봉에서의 지표를 분용 차트에
2)주봉에서의 지표를 분용 차트에
3)월봉에서의 지표를 분용 차트에 표시되도록 부탁 드립니다.
주)참고수식을 덧붙입니다.
미리 경배로 감사 드립니다.
/*
Inputs: 전환선기간(9),sig(5);
Variables: 전환선(0);
전환선 = (Highest(High, 전환선기간) + Lowest(Low, 전환선기간)) / 2;
var1=c-전환선;
var2=ma(var1,sig);
plot1(var2);
*/
input : Nbars(3),전환선기간(9),sig(26);
var : TF(0),S1(0),D1(0),TM(0),cnt(0),idx(0);
var : H1(0),L1(0),전환선(0),sum(0),mav(0);
Array : HH[100](0),LL[100](0),diff[100](999999999);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
idx = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%Nbars;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[전환선기간-1] > 0 and LL[전환선기간-1] > 0 then
{
H1 = HH[0];
L1 = LL[0];
for cnt = 0 to 전환선기간-1
{
if HH[cnt] > H1 Then
H1 = HH[cnt];
if LL[cnt] < L1 Then
L1 = LL[cnt];
}
전환선 = (H1 + L1)/2;
diff[0] = C-전환선;
}
if diff[sig-1] < 999999999 Then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
mav = sum/sig;
plot1(mav);
}
}
참고수식)
Input : Period(5),sig(20);
Var : Ep1(0),Ep2(0);
var : didx(0),emad(0),sigd(0),pred(0),preds(0),emads(0);
var : widx(0),emaw(0),sigw(0),prew(0),prews(0),emaws(0);
var : midx(0),emam(0),sigm(0),prem(0),prems(0),emams(0);
Ep1 = 2/(Period+1);
Ep2 = 2/(sig+1);
if bdate != bdate[1] then
{
didx = didx + 1;
pred = emad[1];
preds = sigd[1];
}
if didx <= 1 then
{
emad = C;
sigd = emad;
}
else
{
emad = C * EP1 + pred * (1-EP1);
sigd = emad * EP2 + preds * (1-EP2);
}
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) then
{
widx = widx + 1;
prew = emaw[1];
prews = sigw[1];
}
if widx <= 1 then
{
emaw = C;
sigw = emaw;
}
else
{
emaw = C * EP1 + prew * (1-EP1);
sigw = emaw * EP2 + prews * (1-EP2);
}
if bdate > bdate[1]+30 then
{
midx = midx + 1;
prem = emam[1];
prems = sigm[1];
}
if midx <= 1 then
{
emam = C;
sigm = emam;
}
else
{
emam = C * EP1 + prem * (1-EP1);
sigm = emam * EP2 + prems * (1-EP2);
}
plot1(sigd,"일봉");
plot2(sigw,"주봉");
plot3(sigm,"월봉");
다음글
이전글