예스스탁
예스스탁 답변
2020-07-27 16:37:29
안녕하세요
예스스탁입니다.
1
Plot9(Hma2+abs(Hma2-Lma2)*2, "20고가+진동폭");
Plot10(Lma2-abs(Hma2-Lma2)*2, "20저가-진동폭");
첨부된 그림은 올려주신 수식에 위 내용 추가해서 적용한 차트입니다.
10분봉이고 봉 조회갯수는 1만개 입니다.
10개의 선이 그려지는 것을 보실수 있습니다.
2
타주기를 그리는 경우에는 차트의 데이타가
지정한 타주기를 계산할만큼 충분하지 못하면
값을 계산할수 없어 그리지 못합니다.
차트의 봉을 1만개로 지정해보시고 해당 지표가 나오지 않으면
해당 지표를 계산할만큼 데이타가 충분치 않아 지표가 계산을 하지 못하는것입니다.
해당 부분은 수식을 수정해서 처리가 되는 부분이 아닙니다.
3
차트에 적용한 수식입니다
Input : ntime(60),Length1(5),Length2(20);
var : S1(0),D1(0),TM(0),TF(0);
Var : TLen1(0),TLen2(0),i1(0),i2(0),cnt(0);
var : Hsum1(0),Hsum2(0),Havg1(0),Hma1(0);
var : Lsum1(0),Lsum2(0),Lavg1(0),Lma1(0);
var : HLsum1(0),HLsum2(0),HLavg1(0),HLma1(0);
var : Hcum1(0),Hcum2(0),Havg2(0),Hma2(0);
var : Lcum1(0),Lcum2(0),Lavg2(0),Lma2(0);
var : HLcum1(0),HLcum2(0),HLavg2(0),HLma2(0);
array : HH[100](0),LL[100](0);
TLen1 = Ceiling((Length1 + 1) * .5);
TLen2 = Ceiling((Length2 + 1) * .5);
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 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if HH[0] > 0 and H > HH[0] then
HH[0] = H;
if LL[0] > 0 and L < LL[0] then
LL[0] = L;
if HH[TLen1*2] > 0 and LL[TLen1*2] > 0 then
{
Hsum2 = 0;
Lsum2 = 0;
HLsum2 = 0;
for i1 = 0 to TLen1-1
{
Hsum1 = 0;
Lsum1 = 0;
HLsum1 = 0;
for i2 = i1+0 to TLen1-1+i1
{
Hsum1 = Hsum1 + HH[i2];
Lsum1 = Lsum1 + LL[i2];
HLsum1 = HLsum1 + (HH[i2]+LL[i2])/2;
}
Havg1 = Hsum1/TLen1;
Hsum2 = Hsum2 + Havg1;
Lavg1 = Lsum1/TLen1;
Lsum2 = Lsum2 + Lavg1;
HLavg1 = HLsum1/TLen1;
HLsum2 = HLsum2 + HLavg1;
}
Hma1 = Hsum2/TLen1;
Lma1 = Lsum2/TLen1;
HLma1 = HLsum2/TLen1;
}
if HH[TLen2*2] > 0 and LL[TLen2*2] > 0 then
{
Hcum2 = 0;
Lcum2 = 0;
HLcum2 = 0;
for i1 = 0 to TLen2-1
{
Hcum1 = 0;
Lcum1 = 0;
HLcum1 = 0;
for i2 = i1+0 to TLen2-1+i1
{
Hcum1 = Hcum1 + HH[i2];
Lcum1 = Lcum1 + LL[i2];
HLcum1 = HLcum1 + (HH[i2]+LL[i2])/2;
}
Havg2 = Hcum1/TLen2;
Hcum2 = Hcum2 + Havg2;
Lavg2 = Lcum1/TLen2;
Lcum2 = Lcum2 + Lavg2;
HLavg2 = HLcum1/TLen2;
HLcum2 = HLcum2 + HLavg2;
}
Hma2 = Hcum2/TLen2;
Lma2 = Lcum2/TLen2;
HLma2 = HLcum2/TLen2;
}
Plot1(Hma1, "고가삼각가중1");
Plot2(Hma2, "고가삼각가중2");
Plot3(Lma1, "저가삼각가중1");
Plot4(Lma2, "저가삼각가중2");
Plot5(HLma1, "중간삼각가중1");
Plot6(HLma2, "중간삼각가중2");
Plot7(Hma2+abs(Hma2-Lma2), "20고가+진동폭");
Plot8(Lma2-abs(Hma2-Lma2), "20저가-진동폭");
Plot9(Hma2+abs(Hma2-Lma2)*2, "20고가+진동폭");
Plot10(Lma2-abs(Hma2-Lma2)*2, "20저가-진동폭");
}
즐거운 하루되세요
> 에리카 님이 쓴 글입니다.
> 제목 : 재문의
> 질문입니다
1>60분의 식을 10분에 적용시
라인이 나오지않아 재검토부탁드립니다
2>월주일식도 10분에 적용해보았읍니다
월식적용(주일60분10분등등)
주식적용(일60분10분등등)
일식적용(60분10분등등)
적용중입니다
분봉식
Input : ntime(60),Length1(5),Length2(20);
var : S1(0),D1(0),TM(0),TF(0);
Var : TLen1(0),TLen2(0),i1(0),i2(0),cnt(0);
var : Hsum1(0),Hsum2(0),Havg1(0),Hma1(0);
var : Lsum1(0),Lsum2(0),Lavg1(0),Lma1(0);
var : HLsum1(0),HLsum2(0),HLavg1(0),HLma1(0);
var : Hcum1(0),Hcum2(0),Havg2(0),Hma2(0);
var : Lcum1(0),Lcum2(0),Lavg2(0),Lma2(0);
var : HLcum1(0),HLcum2(0),HLavg2(0),HLma2(0);
array : HH[100](0),LL[100](0);
TLen1 = Ceiling((Length1 + 1) * .5);
TLen2 = Ceiling((Length2 + 1) * .5);
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 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if HH[0] > 0 and H > HH[0] then
HH[0] = H;
if LL[0] > 0 and L < LL[0] then
LL[0] = L;
if HH[TLen1*2] > 0 and LL[TLen1*2] > 0 then
{
Hsum2 = 0;
Lsum2 = 0;
HLsum2 = 0;
for i1 = 0 to TLen1-1
{
Hsum1 = 0;
Lsum1 = 0;
HLsum1 = 0;
for i2 = i1+0 to TLen1-1+i1
{
Hsum1 = Hsum1 + HH[i2];
Lsum1 = Lsum1 + LL[i2];
HLsum1 = HLsum1 + (HH[i2]+LL[i2])/2;
}
Havg1 = Hsum1/TLen1;
Hsum2 = Hsum2 + Havg1;
Lavg1 = Lsum1/TLen1;
Lsum2 = Lsum2 + Lavg1;
HLavg1 = HLsum1/TLen1;
HLsum2 = HLsum2 + HLavg1;
}
Hma1 = Hsum2/TLen1;
Lma1 = Lsum2/TLen1;
HLma1 = HLsum2/TLen1;
}
if HH[TLen2*2] > 0 and LL[TLen2*2] > 0 then
{
Hcum2 = 0;
Lcum2 = 0;
HLcum2 = 0;
for i1 = 0 to TLen2-1
{
Hcum1 = 0;
Lcum1 = 0;
HLcum1 = 0;
for i2 = i1+0 to TLen2-1+i1
{
Hcum1 = Hcum1 + HH[i2];
Lcum1 = Lcum1 + LL[i2];
HLcum1 = HLcum1 + (HH[i2]+LL[i2])/2;
}
Havg2 = Hcum1/TLen2;
Hcum2 = Hcum2 + Havg2;
Lavg2 = Lcum1/TLen2;
Lcum2 = Lcum2 + Lavg2;
HLavg2 = HLcum1/TLen2;
HLcum2 = HLcum2 + HLavg2;
}
Hma2 = Hcum2/TLen2;
Lma2 = Lcum2/TLen2;
HLma2 = HLcum2/TLen2;
}
Plot1(Hma1, "고가삼각가중1");
Plot2(Hma2, "고가삼각가중2");
Plot3(Lma1, "저가삼각가중1");
Plot4(Lma2, "저가삼각가중2");
Plot5(HLma1, "중간삼각가중1");
Plot6(HLma2, "중간삼각가중2");
Plot7(Hma2+abs(Hma2-Lma2), "20고가+진동폭");
Plot8(Lma2-abs(Hma2-Lma2), "20저가-진동폭");
}