커뮤니티

지표식변형...

프로필 이미지
다다
2011-05-13 07:45:16
662
글번호 38566
답변완료
항상답변감사들입니다.... 가격이 아니다른 데이타에 지표를 작용하는걸 공부하고 있습니다... 현재는 지표식을 적용하면 data1의 값을 가지고 지표를 표현해주는데 data1이나 참조로 표시할수없는 어떤 특정한 가격을 구하여 var1 저장하고 이가격을 가지고 적용해보려합니다.... 알려주신대로 sto,macd,모멘텀등은 구했습니다... 다른 지표들 부탁드려요... var1값을 가지고 엔벨로프,볼린저밴드,cci,rsi,파라볼릭을 만들고 싶습니다... 가능한것만 알려주시면 감사하겠습니다.... 감사합니다....
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-05-13 14:30:19

안녕하세요 예스스탁입니다. 각 식의 var1에 대한 정의가 들어가야 합니다. #엔벨로프 상하단. input : Percent(20); var : Eup(0),Edn(0); var1 = ~~~~~; EUp = var1 + var1 * (Percent / 100); EDn = var1 - var1 * (Percent / 100); #볼린져밴드 #엔벨로프 상하단. input : Period(20),Dv(2); var : BBup(0),BBmd(0),BBdn(0); BBUp = ma(var1, Period) + (Dv * std(var1, Period)); BBmd = ma(var1,Period); BBUp = ma(var1, Period) - (Dv * std(var1, Period)); #CCI Inputs: Length(10); Variables: Sum(0), Counter(0), MD(0), Avgvalue(0),CCIv(0); If Length > 0 Then Begin Avgvalue = Ma(var1, Length); MD = 0; For counter = 0 To Length - 1 Begin MD = MD + Abs(var1[counter] - Avgvalue); End; MD = MD / Length; If MD == 0 Then CCIv = 0; Else CCIv = (var1 - Avgvalue) / (0.015 * MD); End Else CCIv = 0; #CCI Inputs: Length(10); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),RSIv(0); If CurrentBar == 1 AND Length > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = var1[Counter] - var1[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End Else If CurrentBar > 1 AND Length > 0 Then Begin UpAmt = var1[0] - var1[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; #파라볼릭 input : AF(0.02), AFMAX(0.2); Var : Direction(0), SAR_Value(0), AF_Value(.02), HighValue(-9999999999), LowValue(99999999999), EP(0),Vsar(0); if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if var1 > HighValue then { HighValue = var1; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if var1 < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = low; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if var1 < LowValue then { LowValue = var1; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if var1 > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = var1; } } vSar = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if var1 > HighValue then { HighValue = var1; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if var1 < LowValue then { LowValue = var1; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } vSar = SAR_Value; } else { if Direction == 0 then { if var1 > var1[1] then Direction = 1; else if var1 < var1[1] then Direction = -1; } else { if Direction == 1 then { if var1 < var1[1] then { Direction = -1; SAR_Value = HighValue; vSar = SAR_Value; } } if Direction == -1 then { if var1 > var1[1] then { Direction = 1; SAR_Value = LowValue; vSar = SAR_Value; } } } LowValue = min(var1, LowValue); HighValue = max(var1, HighValue); } } 즐거운 하루되세요 > 다다 님이 쓴 글입니다. > 제목 : 지표식변형... > 항상답변감사들입니다.... 가격이 아니다른 데이타에 지표를 작용하는걸 공부하고 있습니다... 현재는 지표식을 적용하면 data1의 값을 가지고 지표를 표현해주는데 data1이나 참조로 표시할수없는 어떤 특정한 가격을 구하여 var1 저장하고 이가격을 가지고 적용해보려합니다.... 알려주신대로 sto,macd,모멘텀등은 구했습니다... 다른 지표들 부탁드려요... var1값을 가지고 엔벨로프,볼린저밴드,cci,rsi,파라볼릭을 만들고 싶습니다... 가능한것만 알려주시면 감사하겠습니다.... 감사합니다....