커뮤니티

문의드립니다

프로필 이미지
뉴스타트
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,"기준선");