커뮤니티
문의드립니다
2017-01-09 02:14:40
193
글번호 105679
문의드립니다.
#==============================================================================#
# 지 표 명 : Range Bar Bollinger Bands
# 작 성 자 : 수식지왕
# 내 용 : Range Bar Chart의 값으로 계산한 Bollinger Bands
# 분봉 차트에 적용
# 블 로 그 : http://yahoosir.blog.me
#==============================================================================#
Input:tick(20);
Input:BBPeriod(12), MultiD(2);
Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0);
var:Sum(0),SumPow(0),MApow(0),STDv(0);
Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0);
Array:MAv[1000](0),BBup[1000](0),BBdn[1000](0);
#==============================================================================#
# Range Bar Chart 계산
#==============================================================================#
If Index == 0 Then
{
tickVal = tick * PriceScale;
oneTick = PriceScale;
OO[0] = O;
HH[0] = O;
LL[0] = O;
CC[0] = O;
}
count = 0;
val[0] = O;
val[3] = C;
If O > C Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If O < C Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] > O Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] < O Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == 1 Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == -1 Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
For k = 0 To 3
{
If HH[0] > 0 && HH[0] < val[k] Then
{
While val[k] - LL[0] > tickVal
{
HH[0] = LL[0] + tickVal;
CC[0] = HH[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = HH[1] + oneTick;
LL[0] = OO[0];
}
If val[k] - LL[0] <= tickVal Then
{
HH[0] = val[k];
CC[0] = val[k];
}
}
Else If LL[0] > val[k] Then
{
While HH[0] - val[k] > tickVal
{
LL[0] = HH[0] - tickVal;
CC[0] = LL[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = LL[1] - oneTick;
HH[0] = OO[0];
}
If HH[0] - val[k] <= tickVal Then
{
LL[0] = val[k];
CC[0] = val[k];
}
}
Else
{
CC[0] = val[k];
}
}
#==============================================================================#
# Range Bar Chart BollBand 값 계산
#==============================================================================#
If count > 0 && CC[BBPeriod - 1 + count] > 0 Then
{
For n = count DownTo 1
{
For j = 998 DownTo 1
{
MAv[j+1] = MAv[j];
BBup[j+1] = BBup[j];
BBdn[j+1] = BBdn[j];
}
Sum = 0; SumPow = 0;
For j = n To BBPeriod - 1 + n
{
Sum = Sum + CC[j];
SumPow = SumPow + Pow(CC[j],2);
}
MAv[1] = Sum/BBPeriod;
MApow = SumPow/BBPeriod;
STDv = SqRt(MApow - Pow(MAv[1],2));
BBup[1] = MAv[1] + (MultiD * STDv);
BBdn[1] = MAv[1] - (MultiD * STDv);
}
}
Else
{
Sum = 0; SumPow = 0;
For j = 0 To BBPeriod - 1
{
Sum = Sum + CC[j];
SumPow = SumPow + Pow(CC[j],2);
}
MAv[0] = Sum/BBPeriod;
MApow = SumPow/BBPeriod;
STDv = SqRt(MApow - Pow(MAv[0],2));
BBup[0] = MAv[0] + (MultiD * STDv);
BBdn[0] = MAv[0] - (MultiD * STDv);
}
If DayIndex == 0 Then remain = 0;
remain = remain + count;
n = remain;
If MAv[n] > 0 Then Plot1(MAv[n], "이평");
If BBup[n] > 0 Then Plot2(BBup[n], "상단밴드");
If BBdn[n] > 0 Then Plot3(BBdn[n], "하단밴드");
If remain > 0 Then remain = remain - 1;
..................
위의 지표식에서 하단부분의 볼린저밴드대신에
1.일목균형표와
2.Awesome 으로 각각 변경부탁드립니다.
input : ShortPeriod(5),LongPeriod(34),Signalperiod(5);
var : Mid(0),AO(0),Signal(0);
Mid = (H+L)/2;
AO = Ma(Mid,ShortPeriod)-Ma(Mid,LongPeriod);
Signal = Ma(AO,Signalperiod);
If AO[1] < AO Then
Plot1(AO, "상승Awosome");
If AO[1] > AO Then
Plot2(AO, "하락Awosome");
plot3(Signal,"시그널");
PlotBaseLine1(0,"기준선");
답변 1
예스스탁 예스스탁 답변
2017-01-09 15:07:02
안녕하세요
예스스탁입니다.
1.
Input:tick(20);
Input:BBPeriod(12), MultiD(2);
Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0);
var:Sum(0),SumPow(0),MApow(0),STDv(0);
Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0);
Array:MAv[1000](0),BBup[1000](0),BBdn[1000](0);
#==============================================================================#
# Range Bar Chart 계산
#==============================================================================#
If Index == 0 Then
{
tickVal = tick * PriceScale;
oneTick = PriceScale;
OO[0] = O;
HH[0] = O;
LL[0] = O;
CC[0] = O;
}
count = 0;
val[0] = O;
val[3] = C;
If O > C Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If O < C Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] > O Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] < O Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == 1 Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == -1 Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
For k = 0 To 3
{
If HH[0] > 0 && HH[0] < val[k] Then
{
While val[k] - LL[0] > tickVal
{
HH[0] = LL[0] + tickVal;
CC[0] = HH[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = HH[1] + oneTick;
LL[0] = OO[0];
}
If val[k] - LL[0] <= tickVal Then
{
HH[0] = val[k];
CC[0] = val[k];
}
}
Else If LL[0] > val[k] Then
{
While HH[0] - val[k] > tickVal
{
LL[0] = HH[0] - tickVal;
CC[0] = LL[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = LL[1] - oneTick;
HH[0] = OO[0];
}
If HH[0] - val[k] <= tickVal Then
{
LL[0] = val[k];
CC[0] = val[k];
}
}
Else
{
CC[0] = val[k];
}
}
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : cnt(0),H1(0),L1(0),H11(0),L11(0),H2(0),L2(0),H22(0),L22(0),H3(0),L3(0);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
if HH[선행스팬2기간+25] > 0 and LL[선행스팬2기간+25] > 0 then{
H1 = HH[0];
L1 = LL[0];
H11 = HH[25];
L11 = LL[25];
H2 = HH[0];
L2 = LL[0];
H22 = HH[25];
L22 = LL[25];
H3 = HH[25];
L3 = LL[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if HH[cnt] > H1 Then
H1 = HH[cnt];
if LL[cnt] < L1 Then
L1 = LL[cnt];
if HH[cnt+25] > H11 Then
H11 = HH[cnt+25];
if LL[cnt+25] < L11 Then
L11 = LL[cnt+25];
}
if cnt < 기준선기간 Then{
if HH[cnt] > H2 Then
H2 = HH[cnt];
if LL[cnt] < L2 Then
L2 = LL[cnt];
if HH[cnt+25] > H22 Then
H22 = HH[cnt+25];
if LL[cnt+25] < L22 Then
L22 = LL[cnt+25];
}
if HH[cnt+25] > H3 Then
H3 = HH[cnt+25];
if LL[cnt+25] < L3 Then
L3 = LL[cnt+25];
}
전환선 = (H1 + L1)/2;
기준선 = (H2 + L2)/2;
선행스팬1 = ((H11+L11)/2 + (H22+L22)/2) / 2 ;
선행스팬2 = (H3+L3) / 2;
plot1(전환선);
plot2(기준선);
plot3(선행스팬1);
plot4(선행스팬2);
}
2
Input:tick(20);
Input:BBPeriod(12), MultiD(2);
Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0);
var:Sum(0),SumPow(0),MApow(0),STDv(0);
Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0);
Array:MAv[1000](0),BBup[1000](0),BBdn[1000](0);
#==============================================================================#
# Range Bar Chart 계산
#==============================================================================#
If Index == 0 Then
{
tickVal = tick * PriceScale;
oneTick = PriceScale;
OO[0] = O;
HH[0] = O;
LL[0] = O;
CC[0] = O;
}
count = 0;
val[0] = O;
val[3] = C;
If O > C Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If O < C Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] > O Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] < O Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == 1 Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == -1 Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
For k = 0 To 3
{
If HH[0] > 0 && HH[0] < val[k] Then
{
While val[k] - LL[0] > tickVal
{
HH[0] = LL[0] + tickVal;
CC[0] = HH[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = HH[1] + oneTick;
LL[0] = OO[0];
}
If val[k] - LL[0] <= tickVal Then
{
HH[0] = val[k];
CC[0] = val[k];
}
}
Else If LL[0] > val[k] Then
{
While HH[0] - val[k] > tickVal
{
LL[0] = HH[0] - tickVal;
CC[0] = LL[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = LL[1] - oneTick;
HH[0] = OO[0];
}
If HH[0] - val[k] <= tickVal Then
{
LL[0] = val[k];
CC[0] = val[k];
}
}
Else
{
CC[0] = val[k];
}
}
input : ShortPeriod(5),LongPeriod(34),Signalperiod(5);
var : cnt1(0),cnt2(0),sum1(0),sum2(0),mav1(0),mav2(0),diff(0),AO(0),AO1(0),sum3(0),signal(0);
if HH[LongPeriod+Signalperiod] > 0 then{
sum3 = 0;
for cnt1 = 0 to Signalperiod-1{
sum1 = 0;
sum2 = 0;
for cnt2 = 0 to LongPeriod{
if cnt2 < ShortPeriod Then
sum1 = sum1 + (HH[cnt1+cnt2]+LL[cnt1+cnt2])/2;
if cnt2 < LongPeriod Then
sum2 = sum2 + (HH[cnt1+cnt2]+LL[cnt1+cnt2])/2;
}
mav1 = sum1/ShortPeriod;
mav2 = sum2/LongPeriod;
diff = mav1-mav2;
if cnt1 == 0 Then
AO = diff;
if cnt1 == 1 Then
AO1 = diff;
sum3 = sum3+diff;
}
signal = sum3/Signalperiod;
if AO1 < AO Then
plot1(AO,"AO",RED);
Else
plot1(AO,"AO",blue);
plot2(signal);
}
즐거운 하루되세요
> 뉴스타트 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 문의드립니다.
#==============================================================================#
# 지 표 명 : Range Bar Bollinger Bands
# 작 성 자 : 수식지왕
# 내 용 : Range Bar Chart의 값으로 계산한 Bollinger Bands
# 분봉 차트에 적용
# 블 로 그 : http://yahoosir.blog.me
#==============================================================================#
Input:tick(20);
Input:BBPeriod(12), MultiD(2);
Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0);
var:Sum(0),SumPow(0),MApow(0),STDv(0);
Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0);
Array:MAv[1000](0),BBup[1000](0),BBdn[1000](0);
#==============================================================================#
# Range Bar Chart 계산
#==============================================================================#
If Index == 0 Then
{
tickVal = tick * PriceScale;
oneTick = PriceScale;
OO[0] = O;
HH[0] = O;
LL[0] = O;
CC[0] = O;
}
count = 0;
val[0] = O;
val[3] = C;
If O > C Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If O < C Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] > O Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] < O Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == 1 Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == -1 Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
For k = 0 To 3
{
If HH[0] > 0 && HH[0] < val[k] Then
{
While val[k] - LL[0] > tickVal
{
HH[0] = LL[0] + tickVal;
CC[0] = HH[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = HH[1] + oneTick;
LL[0] = OO[0];
}
If val[k] - LL[0] <= tickVal Then
{
HH[0] = val[k];
CC[0] = val[k];
}
}
Else If LL[0] > val[k] Then
{
While HH[0] - val[k] > tickVal
{
LL[0] = HH[0] - tickVal;
CC[0] = LL[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = LL[1] - oneTick;
HH[0] = OO[0];
}
If HH[0] - val[k] <= tickVal Then
{
LL[0] = val[k];
CC[0] = val[k];
}
}
Else
{
CC[0] = val[k];
}
}
#==============================================================================#
# Range Bar Chart BollBand 값 계산
#==============================================================================#
If count > 0 && CC[BBPeriod - 1 + count] > 0 Then
{
For n = count DownTo 1
{
For j = 998 DownTo 1
{
MAv[j+1] = MAv[j];
BBup[j+1] = BBup[j];
BBdn[j+1] = BBdn[j];
}
Sum = 0; SumPow = 0;
For j = n To BBPeriod - 1 + n
{
Sum = Sum + CC[j];
SumPow = SumPow + Pow(CC[j],2);
}
MAv[1] = Sum/BBPeriod;
MApow = SumPow/BBPeriod;
STDv = SqRt(MApow - Pow(MAv[1],2));
BBup[1] = MAv[1] + (MultiD * STDv);
BBdn[1] = MAv[1] - (MultiD * STDv);
}
}
Else
{
Sum = 0; SumPow = 0;
For j = 0 To BBPeriod - 1
{
Sum = Sum + CC[j];
SumPow = SumPow + Pow(CC[j],2);
}
MAv[0] = Sum/BBPeriod;
MApow = SumPow/BBPeriod;
STDv = SqRt(MApow - Pow(MAv[0],2));
BBup[0] = MAv[0] + (MultiD * STDv);
BBdn[0] = MAv[0] - (MultiD * STDv);
}
If DayIndex == 0 Then remain = 0;
remain = remain + count;
n = remain;
If MAv[n] > 0 Then Plot1(MAv[n], "이평");
If BBup[n] > 0 Then Plot2(BBup[n], "상단밴드");
If BBdn[n] > 0 Then Plot3(BBdn[n], "하단밴드");
If remain > 0 Then remain = remain - 1;
..................
위의 지표식에서 하단부분의 볼린저밴드대신에
1.일목균형표와
2.Awesome 으로 각각 변경부탁드립니다.
input : ShortPeriod(5),LongPeriod(34),Signalperiod(5);
var : Mid(0),AO(0),Signal(0);
Mid = (H+L)/2;
AO = Ma(Mid,ShortPeriod)-Ma(Mid,LongPeriod);
Signal = Ma(AO,Signalperiod);
If AO[1] < AO Then
Plot1(AO, "상승Awosome");
If AO[1] > AO Then
Plot2(AO, "하락Awosome");
plot3(Signal,"시그널");
PlotBaseLine1(0,"기준선");