답변완료
부탁 드립니다.
도움에 감사 드립니다.
1)타주기(분봉용_예를 들어 10분봉 차트에서 60분봉 지표),
2)타주기(일봉용_예를 들어 60분봉 차트에서 일봉 지표) 부탁 드립니다.
미리 경배로 감사 인사 올립니다.
주)참조 지표는 유사한 지표를 이전에 작성해주신것입니다.
input:fastLength(10);
input :fl(10);
var : fastma(0),slowma(0),macdv(0),stdv(0),Upper(0),Lower(0),mc(0),mc1(0);
var : src(0),sp(0),dt(0),i1(0),ji(0),jq(0),i2_(0),q2_(0),re_(0);
var : im_(0),re(0),im(0),p1(0),p2(0),p3(0),p(0),q1(0),i2(0),q2(0);
var : spp(0),phase(0),dphase_(0),dphase(0),mama(0),fama(0),alpha_(0),alpha(0);
src = (H+L)/2;
sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0;
if CurrentBar >= 1 then
{
dt = (.0962*sp + .5769*(sp[2]) - .5769*(sp[4])- .0962*(sp[6]))*(.075*(p[1]) + .54);
q1 = (.0962*dt + .5769*(dt[2]) - .5769*(dt[4])- .0962*(dt[6]))*(.075*(p[1]) + .54);
i1 = (dt[3]);
jI = (.0962*i1 + .5769*(i1[2]) - .5769*(i1[4])- .0962*(i1[6]))*(.075*(p[1]) + .54);
jq = (.0962*q1 + .5769*(q1[2]) - .5769*(q1[4])- .0962*(q1[6]))*(.075*(p[1]) + .54);
i2_ = i1 - jq;
q2_ = q1 + jI;
i2 = .2*i2_ + .8*(i2[1]);
q2 = .2*q2_ + .8*(q2[1]);
re_ = i2*(i2[1]) + q2*(q2[1]);
im_ = i2*(q2[1]) - q2*(i2[1]);
re = .2*re_ + .8*(re[1]);
im = .2*im_ + .8*(im[1]);
p1 = iff(im!=0 and re!=0, 360/atan(im/re), (p[1]));
p2 = iff(p1 > 1.5*(p1[1]), 1.5*(p1[1]), iff(p1 < 0.67*(p1[1]), 0.67*(p1[1]), p1));
p3 = iff(p2<6, 6, iff (p2 > 50, 50, p2));
p = .2*p3 + .8*(p3[1]);
spp = .33*p + .67*(spp[1]);
phase = atan(q1 / i1);
dphase_ = (phase[1]) - phase;
dphase = iff(dphase_< 1, 1, dphase_);
alpha_ = fl / dphase;
alpha = iff(alpha_ < fl, fl, iff(alpha_ > fl, fl, alpha_));
mama = alpha*src + (1 - alpha)*(mama[1]);
fastMA = ema(mama, fastLength);
slowMA = ema(mama, fastLength*2);
macdv = fastMA - slowMA;
Stdv = std(macdv, fastLength*2);
Upper = (Stdv * 2 + (ma(macdv, fastLength*2)));
Lower = ((ma(macdv, fastLength*2)) - (Stdv * 2));
var1=(upper+lower)/2;
var33=macdv-var1;
}
참조지표)
var : src(0),sp(0),dt(0);
src = (H+L)/2;
sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0;
if CurrentBar >= 1 then
{
dt = (.0962*sp + .5769*(sp[2]));
}
1.타주기(분)
input : ntime(10),P(4);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),Csum1(0),dt(0);
Array : HH[50](0),LL[50](0),SP[50](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
SP[cnt] = SP[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if LL[P-1] > 0 Then
{
Sum1 = 0;
CSum1 = 0;
For cnt = 0 To P - 1
{
Sum1 = Sum1 + ((HH[cnt]+LL[cnt])/2) * (P - cnt);
CSum1 = CSum1 + P - cnt;
}
If CSum1 > 0 Then
SP[0] = Sum1/CSum1;
Else
SP[0] = 0;
}
if SP[2] > 0 Then
{
dt = (.0962*SP[0] + .5769*(SP[2]));
Plot1(dt);
}
}
2.타주기(일)
input : P(4);
var : cnt(0),sum(0),Csum(0),SP(0);
var : sum2(0),Csum2(0),SP2(0),dt(0);
Sum = 0;
CSum = 0;
Sum2 = 0;
CSum2 = 0;
For cnt = 0 To P - 1
{
Sum = Sum + ((DayHigh(cnt)+DayLow(cnt))/2) * (P - cnt);
CSum = CSum + P - cnt;
Sum2 = Sum2 + ((DayHigh(cnt+2)+DayLow(cnt+2))/2) * (P - cnt);
CSum2 = CSum2 + P - cnt;
}
SP = Sum/CSum;
SP2 = Sum2/CSum2;
if SP2 > 0 Then
{
dt = (.0962*SP + .5769*(SP2));
Plot1(dt);
}
2020-08-27
744
글번호 141841
지표