예스스탁
예스스탁 답변
2022-01-27 10:03:35
안녕하세요
예스스탁입니다.
일봉에서 월봉,주봉을 모두 계산해야 하므로 봉수가 많이 필요합니다
속성에서 검색에 필요한 최소시간에 500봉 지정하고 검색하시기 바랍니다.
종목검색은 최대 500봉까지 제공되므로
볼밴기간을 크게 잡으시면 검색이 봉수가 부족해 계산하지 못ㅎ바니다.
1
input : Period(10),Dv(2);
var : cnt(0);
var : Msum(0),Mmav(0),MBBup(0),MBBdn(0),Mmav1(0),MBBup1(0),MBBdn1(0),MSumSqrt(0),MStdv(0);
Array : monthC[100](0);
var : Wsum(0),Wmav(0),WBBup(0),WBBdn(0),Wmav1(0),WBBup1(0),WBBdn1(0),WSumSqrt(0),WStdv(0);
Array : WeekC[100](0);
var : mav(0),bbup(0),bbdn(0);
mav = ma(C,Period);
bbup = BollBandUp(Period,dv);
bbdn = BollBandDown(Period,dv);
if sdate != sdate[1] Then
{
if sdate != sdate[1]+30 Then
{
for cnt = 1 to 99
{
monthC[cnt] = monthC[cnt-1][1];
}
}
if dayofweek(sdate) < DayOfWeek(sdate[1]) Then
{
for cnt = 1 to 99
{
WeekC[cnt] = WeekC[cnt-1][1];
}
}
Mmav1 = Mmav[1];
MBBup1 = MBBup[1];
MBBdn1 = MBBdn[1];
Wmav1 = Wmav[1];
WBBup1 = WBBup[1];
WBBdn1 = WBBdn[1];
}
monthC[0] = C;
WeekC[0] = C;
If monthC[Period-1] > 0 and WeekC[Period-1] > 0 Then
{
Msum = 0;
Wsum = 0;
for cnt = 0 to Period-1
{
Msum = Msum+monthC[cnt];
Wsum = Wsum+WeekC[cnt];
}
Mmav = Msum/Period;
Wmav = Wsum/Period;
MSumSqrt = 0;
WSumSqrt = 0;
For cnt = 0 To Period - 1
{
MSumSqrt = MSumSqrt + (monthC[cnt] - Mmav)^2;
WSumSqrt = WSumSqrt + (WeekC[cnt] - Wmav)^2;
}
MStdv = SquareRoot(MSumSqrt / Period);
MBBup = Mmav + (Dv * MStdv);
MBBdn = Mmav - (Dv * MStdv);
WStdv = SquareRoot(WSumSqrt / Period);
WBBup = Wmav + (Dv * WStdv);
WBBdn = Wmav - (Dv * WStdv);
Condition1 = Mmav1 > 0 and WMav1 > 0 and
Mmav > Mmav1 and Mbbup > Mbbup1 and Mbbdn < Mbbdn1 and
Wmav > Wmav1 and Wbbup > Wbbup1 and Wbbdn < Wbbdn1 and
mav > mav[1] and bbup > bbup[1];
if Condition1 == true Then
Find(1);
}
2
input : Period(10),Dv(2),N(10);
var : cnt(0);
var : Msum(0),Mmav(0),MBBup(0),MBBdn(0),Mmav1(0),MBBup1(0),MBBdn1(0),MSumSqrt(0),MStdv(0);
Array : monthC[100](0);
var : Wsum(0),Wmav(0),WBBup(0),WBBdn(0),Wmav1(0),WBBup1(0),WBBdn1(0),WSumSqrt(0),WStdv(0);
Array : WeekC[100](0);
var : mav(0),bbup(0),bbdn(0);
mav = ma(C,Period);
bbup = BollBandUp(Period,dv);
bbdn = BollBandDown(Period,dv);
if sdate != sdate[1] Then
{
if sdate != sdate[1]+30 Then
{
for cnt = 1 to 99
{
monthC[cnt] = monthC[cnt-1][1];
}
}
if dayofweek(sdate) < DayOfWeek(sdate[1]) Then
{
for cnt = 1 to 99
{
WeekC[cnt] = WeekC[cnt-1][1];
}
}
Mmav1 = Mmav[1];
MBBup1 = MBBup[1];
MBBdn1 = MBBdn[1];
Wmav1 = Wmav[1];
WBBup1 = WBBup[1];
WBBdn1 = WBBdn[1];
}
monthC[0] = C;
WeekC[0] = C;
If monthC[Period-1] > 0 and WeekC[Period-1] > 0 Then
{
Msum = 0;
Wsum = 0;
for cnt = 0 to Period-1
{
Msum = Msum+monthC[cnt];
Wsum = Wsum+WeekC[cnt];
}
Mmav = Msum/Period;
Wmav = Wsum/Period;
MSumSqrt = 0;
WSumSqrt = 0;
For cnt = 0 To Period - 1
{
MSumSqrt = MSumSqrt + (monthC[cnt] - Mmav)^2;
WSumSqrt = WSumSqrt + (WeekC[cnt] - Wmav)^2;
}
MStdv = SquareRoot(MSumSqrt / Period);
MBBup = Mmav + (Dv * MStdv);
MBBdn = Mmav - (Dv * MStdv);
WStdv = SquareRoot(WSumSqrt / Period);
WBBup = Wmav + (Dv * WStdv);
WBBdn = Wmav - (Dv * WStdv);
Condition1 = Mmav1 > 0 and WMav1 > 0 and
Mmav > Mmav1 and Mbbup > Mbbup1 and Mbbdn < Mbbdn1 and
Wmav > Wmav1 and Wbbup > Wbbup1 and Wbbdn < Wbbdn1 and
mav > mav[1] and bbup > bbup[1];
if Condition1 == true and countif(Condition1 == true,N) == 1 Then
Find(1);
}
즐거운 하루되세요
> 해피오 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 볼밴기준선은 기간은 10, 2를 설정합니다
1. 월봉기준으로 볼밴상단선과 중심선은은 우상향하고 하단선은 우하향해야한다
2. 주봉기준으로 볼밴상단선과 중심선은은 우상향하고 하단선은 우하향해야한다
3. 일봉기준으로는 볼밴상단선과 중심선은은 우상향하는 종목
위 기준을 만족하는 종목검색식을 부탁드리고요, 추가적으로 10봉이전에는 위 종목검색이
안되고 0봉전기준으로 처음검색되는 종목조항도 별도로 수식만들어주세요