커뮤니티
지표식변형...
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,파라볼릭을 만들고 싶습니다...
가능한것만 알려주시면 감사하겠습니다....
감사합니다....
다음글
이전글