커뮤니티
문의드립니다
2011-09-26 15:46:30
596
글번호 43036
문의드립니다.
아래의 수식은 일봉에서 월봉 및 주봉의 수식을 불러온 내용입니다.
아래의 내용중 월봉 및 주봉의 볼린저밴드를 0봉전으로 수정코자 합니다.
지표식으로 표기할 때 수식에 문제점이 있는지 의도대로 정확히 표현이
안되네요... 수정부탁합니다.
1. 월봉 및 주봉의 볼린저밴드를 0봉전으로 수정
2. 일봉에서 지표식으로 표기할때 정확이 구현이 안됨
3. 아래내용중 월봉,주봉,일봉의 중간값이 정확한지 확인 부탁드립니다.
input : p1(2),mLENGTH1(20),mLENGTH2(60), ## 월봉
LENGTH11(20),LENGTH12(60), ## 주봉
LENGTH21(20),LENGTH22(60), ## 일봉
mPeriod1(20),mPeriod2(60), ## 월봉
Period11(20),Period12(60), ## 주봉
Period21(20),Period22(60); ## 일봉
var : mTCHAN1(0),mTCHAN2(0), ## 월봉
TCHAN11(0),TCHAN12(0), ## 주봉
TCHAN21(0),TCHAN22(0); ## 일봉
Var : mSum1(0), mCounter1(0), mCSum1(0),mWma1(0),mSumSqrt1(0),mStd1(0); ## 월봉
Var : mSum2(0), mCounter2(0), mCSum2(0),mWma2(0),mSumSqrt2(0),mStd2(0);
Array : mHH[70](0),mCC[70](0),mLL[70](0);
if sdate > sdate[1]+30 Then{
mHH[0] = H;
mLL[0] = L;
for mcnt = 1 to 61{
mHH[mcnt] = mHH[mcnt-1][1];
mCC[mcnt] = mCC[mcnt-1][1];
mLL[mcnt] = mLL[mcnt-1][1];
}
}
if H > mHH[0] Then mHH[0] = H;
if L < mLL[0] Then mLL[0] = L;
mCC[0] = C;
mTCHAN1 = mHH[1]; ## 월봉 price channel[1]
for mcnt = 1 to mLENGTH1 {
if mHH[mcnt] > mTCHAN1 Then
mTCHAN1 = mHH[mcnt];
}
mSum1 = 0; mCSum1 = 0;
For mcounter1 = 1 To mPeriod1{
mSum1 = mSum1 + ((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) * (mPeriod1 - (mcounter1-1));
mCSum1 = mCSum1 + mPeriod1 - (mcounter1-1);
}
mWMA1 = mSum1/mCSum1;
mSumSqrt1 = 0;
For mCounter1 = 1 To mPeriod1 {
mSumSqrt1 = mSumSqrt1 + (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1) * (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1);
}
mStd1 = SquareRoot(mSumSqrt1 / mPeriod1);
var1 = mwma1+(p1*mSTD1); ## 월봉 b.b[1]
var2 = (mHH[0]+mLL[0])/2; ## 월봉 중간값
var3 = (HH[0]+LL[0])/2; ## 주봉 중간값
## 주봉
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0); ## 주봉
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0);
Array : HH[70](0),CC[70](0),LL[70](0);
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 61{
HH[cnt] = HH[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then HH[0] = H;
if L < LL[0] Then LL[0] = L;
CC[0] = C;
TCHAN11 = HH[1]; ## 주봉 pc
for cnt = 1 to LENGTH11 {
if HH[cnt] > TCHAN11 Then
TCHAN11 = HH[cnt];
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 1 To Period11{
Sum11= Sum11 + ((HH[counter11]+LL[counter11]+CC[counter11])/3) * (Period11 - (counter11-1));
CSum11 = CSum11 + Period11 - (counter11-1);
}
WMA11 = Sum11/ CSum11;
SumSqrt11 = 0;
For Counter11 = 1 To Period11 {
SumSqrt11 = SumSqrt11 + (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11) * (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
var11 = wma11+(p1*STD11); ## 주봉 b.b[1]
var12 = (HH[0]+LL[0])/2; ## 주봉 중간값
var13 = (DayHigh+DayLow)/2; ## 일봉 중간값
답변 1
예스스탁 예스스탁 답변
2011-09-27 11:45:15
안녕하세요
예스스탁입니다.
input : p1(2),mLENGTH1(20),mLENGTH2(60), ## 월봉
LENGTH11(20),LENGTH12(60), ## 주봉
LENGTH21(20),LENGTH22(60), ## 일봉
mPeriod1(20),mPeriod2(60), ## 월봉
Period11(20),Period12(60), ## 주봉
Period21(20),Period22(60); ## 일봉
var : mTCHAN1(0),mTCHAN2(0), ## 월봉
TCHAN11(0),TCHAN12(0), ## 주봉
TCHAN21(0),TCHAN22(0); ## 일봉
Var : mSum1(0), mCounter1(0), mCSum1(0),mWma1(0),mSumSqrt1(0),mStd1(0); ## 월봉
Var : mSum2(0), mCounter2(0), mCSum2(0),mWma2(0),mSumSqrt2(0),mStd2(0),mcnt(0);
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0); ## 주봉
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0),cnt(0);
Array : mHH[70](0),mCC[70](0),mLL[70](0);
Array : HH[70](0),CC[70](0),LL[70](0);
if sdate > sdate[1]+30 Then{
mHH[0] = H;
mLL[0] = L;
for mcnt = 1 to 61{
mHH[mcnt] = mHH[mcnt-1][1];
mCC[mcnt] = mCC[mcnt-1][1];
mLL[mcnt] = mLL[mcnt-1][1];
}
}
if H > mHH[0] Then mHH[0] = H;
if L < mLL[0] Then mLL[0] = L;
mCC[0] = C;
mTCHAN1 = mHH[0]; ## 월봉 price channel[1]
for mcnt = 0 to mLENGTH1-1 {
if mHH[mcnt] > mTCHAN1 Then
mTCHAN1 = mHH[mcnt];
}
mSum1 = 0;
mCSum1 = 0;
For mcounter1 = 0 To mPeriod1-1{
mSum1 = mSum1 + ((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) * (mPeriod1-mcounter1);
mCSum1 = mCSum1 + (mPeriod1-mcounter1);
}
mWMA1 = mSum1/mCSum1;
mSumSqrt1 = 0;
For mCounter1 = 0 To mPeriod1-1 {
mSumSqrt1 = mSumSqrt1 + (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1) * (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1);
}
mStd1 = SquareRoot(mSumSqrt1 / mPeriod1);
var1 = mwma1+(p1*mSTD1); ## 월봉 b.b[1]
var2 = (mHH[0]+mLL[0])/2; ## 월봉 중간값
## 주봉
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 61{
HH[cnt] = HH[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then HH[0] = H;
if L < LL[0] Then LL[0] = L;
CC[0] = C;
TCHAN11 = HH[1]; ## 주봉 pc
for cnt = 0 to LENGTH11-1 {
if HH[cnt] > TCHAN11 Then
TCHAN11 = HH[cnt];
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 0 To Period11-1{
Sum11= Sum11 + ((HH[counter11]+LL[counter11]+CC[counter11])/3) * (Period11-counter11);
CSum11 = CSum11 + (Period11-counter11);
}
WMA11 = Sum11/ CSum11;
SumSqrt11 = 0;
For Counter11 = 0 To Period11-1 {
SumSqrt11 = SumSqrt11 + (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11) * (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
var11 = wma11+(p1*STD11); ## 주봉 b.b[1]
var12 = (HH[0]+LL[0])/2; ## 주봉 중간값
var13 = (DayHigh+DayLow)/2; ## 일봉 중간값
plot1(var1);
plot2(var2);
plot3(var11);
plot4(var12);
plot5(var13);
식을 수정했습니다.
월봉값 주봉값 모두 정확히 나오고 있습니다.
즐거운 하루되세요
> 맥스 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 문의드립니다.
아래의 수식은 일봉에서 월봉 및 주봉의 수식을 불러온 내용입니다.
아래의 내용중 월봉 및 주봉의 볼린저밴드를 0봉전으로 수정코자 합니다.
지표식으로 표기할 때 수식에 문제점이 있는지 의도대로 정확히 표현이
안되네요... 수정부탁합니다.
1. 월봉 및 주봉의 볼린저밴드를 0봉전으로 수정
2. 일봉에서 지표식으로 표기할때 정확이 구현이 안됨
3. 아래내용중 월봉,주봉,일봉의 중간값이 정확한지 확인 부탁드립니다.
input : p1(2),mLENGTH1(20),mLENGTH2(60), ## 월봉
LENGTH11(20),LENGTH12(60), ## 주봉
LENGTH21(20),LENGTH22(60), ## 일봉
mPeriod1(20),mPeriod2(60), ## 월봉
Period11(20),Period12(60), ## 주봉
Period21(20),Period22(60); ## 일봉
var : mTCHAN1(0),mTCHAN2(0), ## 월봉
TCHAN11(0),TCHAN12(0), ## 주봉
TCHAN21(0),TCHAN22(0); ## 일봉
Var : mSum1(0), mCounter1(0), mCSum1(0),mWma1(0),mSumSqrt1(0),mStd1(0); ## 월봉
Var : mSum2(0), mCounter2(0), mCSum2(0),mWma2(0),mSumSqrt2(0),mStd2(0);
Array : mHH[70](0),mCC[70](0),mLL[70](0);
if sdate > sdate[1]+30 Then{
mHH[0] = H;
mLL[0] = L;
for mcnt = 1 to 61{
mHH[mcnt] = mHH[mcnt-1][1];
mCC[mcnt] = mCC[mcnt-1][1];
mLL[mcnt] = mLL[mcnt-1][1];
}
}
if H > mHH[0] Then mHH[0] = H;
if L < mLL[0] Then mLL[0] = L;
mCC[0] = C;
mTCHAN1 = mHH[1]; ## 월봉 price channel[1]
for mcnt = 1 to mLENGTH1 {
if mHH[mcnt] > mTCHAN1 Then
mTCHAN1 = mHH[mcnt];
}
mSum1 = 0; mCSum1 = 0;
For mcounter1 = 1 To mPeriod1{
mSum1 = mSum1 + ((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) * (mPeriod1 - (mcounter1-1));
mCSum1 = mCSum1 + mPeriod1 - (mcounter1-1);
}
mWMA1 = mSum1/mCSum1;
mSumSqrt1 = 0;
For mCounter1 = 1 To mPeriod1 {
mSumSqrt1 = mSumSqrt1 + (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1) * (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1);
}
mStd1 = SquareRoot(mSumSqrt1 / mPeriod1);
var1 = mwma1+(p1*mSTD1); ## 월봉 b.b[1]
var2 = (mHH[0]+mLL[0])/2; ## 월봉 중간값
var3 = (HH[0]+LL[0])/2; ## 주봉 중간값
## 주봉
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0); ## 주봉
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0);
Array : HH[70](0),CC[70](0),LL[70](0);
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 61{
HH[cnt] = HH[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then HH[0] = H;
if L < LL[0] Then LL[0] = L;
CC[0] = C;
TCHAN11 = HH[1]; ## 주봉 pc
for cnt = 1 to LENGTH11 {
if HH[cnt] > TCHAN11 Then
TCHAN11 = HH[cnt];
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 1 To Period11{
Sum11= Sum11 + ((HH[counter11]+LL[counter11]+CC[counter11])/3) * (Period11 - (counter11-1));
CSum11 = CSum11 + Period11 - (counter11-1);
}
WMA11 = Sum11/ CSum11;
SumSqrt11 = 0;
For Counter11 = 1 To Period11 {
SumSqrt11 = SumSqrt11 + (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11) * (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
var11 = wma11+(p1*STD11); ## 주봉 b.b[1]
var12 = (HH[0]+LL[0])/2; ## 주봉 중간값
var13 = (DayHigh+DayLow)/2; ## 일봉 중간값