커뮤니티
수고하십니다
2018-01-24 11:38:44
227
글번호 116007
미결재약정에 파라볼릭신호를 적용하려는데
여러가지 방법으로 해도 안되어 도움 부탁드립니다
Input : Period1(5);
Input : af1(0.02), maxAF1(0.2) ;
var : Value(0,data1);
value = data1(Ma(OpenInterest, period1 ));
Var : Value1(0);
Value1 = csar(af1,maxAF1 );
if data1(CrossUp(value(c),value1) ) then
buy("매수");
if data1(CrossDown(value(c),value1) ) then
Sell("매도");
답변 3
예스스탁 예스스탁 답변
2018-01-24 14:32:19
안녕하세요
예스스탁입니다.
문의하신 내용이 미결제약정으로 파라볼릭을 계산해서
사용하고자 하시는 부분이면 아래식 이용하시면 됩니다.
미결제약정이 만기일 마지막봉에서 0이되어
파라볼릭계산에 문제갑 발생해서 마지막봉에서는 전봉값을 사용하게
작성했습니다.
1 지표
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV > HighValue then
{
HighValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = OIV;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = OIV;
}
}
CSarv = 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 OIV > HighValue then
{
HighValue = OIV;
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 OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if OIV > OIV[1] then Direction = 1;
else
if OIV < OIV[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if OIV < OIV[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if OIV > OIV[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(OIV, LowValue);
HighValue = max(OIV, HighValue);
}
}
plot1(OIV,"미결제약정");
plot2(CSARv,"미결파라볼릭"); //속성에서 점그래프
2 시스템
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV > HighValue then
{
HighValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = OIV;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = OIV;
}
}
CSarv = 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 OIV > HighValue then
{
HighValue = OIV;
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 OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if OIV > OIV[1] then Direction = 1;
else
if OIV < OIV[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if OIV < OIV[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if OIV > OIV[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(OIV, LowValue);
HighValue = max(OIV, HighValue);
}
}
if crossup(OIV,CSARV) Then
buy();
if CrossDown(OIV,CSARV) Then
sell();
즐거운 하루되세요
> dkfvkrh7 님이 쓴 글입니다.
> 제목 : 수고하십니다
> 미결재약정에 파라볼릭신호를 적용하려는데
여러가지 방법으로 해도 안되어 도움 부탁드립니다
Input : Period1(5);
Input : af1(0.02), maxAF1(0.2) ;
var : Value(0,data1);
value = data1(Ma(OpenInterest, period1 ));
Var : Value1(0);
Value1 = csar(af1,maxAF1 );
if data1(CrossUp(value(c),value1) ) then
buy("매수");
if data1(CrossDown(value(c),value1) ) then
Sell("매도");
dkfvkrh7
2018-01-25 08:54:55
한가지신호로 여쭤보고 두가지신호로 만들어 보려고 했는데
수식이 너무 어려워서 불가능할것 같아 다시부탁드립니다
번거롭게 해드려서 죄송합니다
AF1(0.02), AFMAX1(0.2)의 적은 크기 파라볼릭과
AF2(0.01), AFMAX2(0.02)의 큰 크기의 파라볼릭을 조합하여
AF1(0.02), AFMAX1(0.2)의 매수 and AF2(0.01), AFMAX2(0.02)의 매수 = 매수
AF1(0.02), AFMAX1(0.2)의 매도 or AF2(0.01), AFMAX2(0.02)의 매도 = 매수청산
AF1(0.02), AFMAX1(0.2)의 매도 and AF2(0.01), AFMAX2(0.02)의 매도 = 매도
AF1(0.02), AFMAX1(0.2)의 매수 or AF2(0.01), AFMAX2(0.02)의 매수 = 매도청산
이렇게 만들고자 하였습니다
--------------------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수고하십니다
>
안녕하세요
예스스탁입니다.
문의하신 내용이 미결제약정으로 파라볼릭을 계산해서
사용하고자 하시는 부분이면 아래식 이용하시면 됩니다.
미결제약정이 만기일 마지막봉에서 0이되어
파라볼릭계산에 문제갑 발생해서 마지막봉에서는 전봉값을 사용하게
작성했습니다.
1 지표
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV > HighValue then
{
HighValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = OIV;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = OIV;
}
}
CSarv = 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 OIV > HighValue then
{
HighValue = OIV;
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 OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if OIV > OIV[1] then Direction = 1;
else
if OIV < OIV[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if OIV < OIV[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if OIV > OIV[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(OIV, LowValue);
HighValue = max(OIV, HighValue);
}
}
plot1(OIV,"미결제약정");
plot2(CSARv,"미결파라볼릭"); //속성에서 점그래프
2 시스템
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV > HighValue then
{
HighValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = OIV;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = OIV;
}
}
CSarv = 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 OIV > HighValue then
{
HighValue = OIV;
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 OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if OIV > OIV[1] then Direction = 1;
else
if OIV < OIV[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if OIV < OIV[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if OIV > OIV[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(OIV, LowValue);
HighValue = max(OIV, HighValue);
}
}
if crossup(OIV,CSARV) Then
buy();
if CrossDown(OIV,CSARV) Then
sell();
즐거운 하루되세요
> dkfvkrh7 님이 쓴 글입니다.
> 제목 : 수고하십니다
> 미결재약정에 파라볼릭신호를 적용하려는데
여러가지 방법으로 해도 안되어 도움 부탁드립니다
Input : Period1(5);
Input : af1(0.02), maxAF1(0.2) ;
var : Value(0,data1);
value = data1(Ma(OpenInterest, period1 ));
Var : Value1(0);
Value1 = csar(af1,maxAF1 );
if data1(CrossUp(value(c),value1) ) then
buy("매수");
if data1(CrossDown(value(c),value1) ) then
Sell("매도");
예스스탁 예스스탁 답변
2018-01-25 10:03:02
안녕하세요
예스스탁입니다.
1 지표
Input : AF1(0.02),AFMAX1(0.2);
Input : AF2(0.01),AFMAX2(0.02);
var : OIV(0);
Var : Direction1(0), SAR_Value1(OI), AF_Value1(.02), HighValue1(OI), LowValue1(OI),EP1(0),CSARV1(0);
Var : Direction2(0), SAR_Value2(OI), AF_Value2(.02), HighValue2(OI), LowValue2(OI),EP2(0),CSARV2(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP1 != 0 Then
{
if Direction1 == 1 then
{
EP1 = HighValue1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV > HighValue1 then
{
HighValue1 = OIV;
AF_Value1 = AF_Value1 + AF1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
if OIV < SAR_Value1 then
{
Direction1 = -1;
SAR_Value1 = EP1;
AF_Value1 = 0;
EP1 = 0;
LowValue1 = OIV;
}
}
else
{
EP1 = LowValue1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV < LowValue1 then
{
LowValue1 = OIV;
AF_Value1 = AF_Value1 + Af1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
if OIV > SAR_Value1 then
{
Direction1 = 1;
SAR_Value1 = EP1;
AF_Value1 = 0;
EP1 = 0;
HighValue1 = OIV;
}
}
CSARV1 = SAR_Value1;
}
else
{
if SAR_Value1 != 0 && EP1 == 0 then
{
if Direction1 == 1 then
{
EP1 = HighValue1;
AF_Value1 = AF1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV > HighValue1 then
{
HighValue1 = OIV;
AF_Value1 = AF_Value1 + AF1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
}
else
{
EP1 = LowValue1;
AF_Value1 = Af1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV < LowValue1 then
{
LowValue1 = OIV;
AF_Value1 = AF_Value1 + AF1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
}
CSARV1 = SAR_Value1;
}
else
{
if Direction1 == 0 then
{
if OIV > OIV[1] then Direction1 = 1;
else
if OIV < OIV[1] then Direction1 = -1;
}
else
{
if Direction1 == 1 then
{
if OIV < OIV[1] then
{
Direction1 = -1;
SAR_Value1 = HighValue1;
CSARV1 = SAR_Value1;
}
}
if Direction1 == -1 then
{
if OIV > OIV[1] then
{
Direction1 = 1;
SAR_Value1 = LowValue1;
CSARV1 = SAR_Value1;
}
}
}
LowValue1 = min(OIV, LowValue1);
HighValue1 = max(OIV, HighValue1);
}
}
if EP2 != 0 Then
{
if Direction2 == 1 then
{
EP2 = HighValue2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV > HighValue2 then
{
HighValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
if OIV < SAR_Value2 then
{
Direction2 = -1;
SAR_Value2 = EP2;
AF_Value2 = 0;
EP2 = 0;
LowValue2 = OIV;
}
}
else
{
EP2 = LowValue2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV < LowValue2 then
{
LowValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
if OIV > SAR_Value2 then
{
Direction2 = 1;
SAR_Value2 = EP2;
AF_Value2 = 0;
EP2 = 0;
HighValue2 = OIV;
}
}
CSARV2 = SAR_Value2;
}
else
{
if SAR_Value2 != 0 && EP2 == 0 then
{
if Direction2 == 1 then
{
EP2 = HighValue2;
AF_Value2 = AF2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV > HighValue2 then
{
HighValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
}
else
{
EP2 = LowValue2;
AF_Value2 = AF2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV < LowValue2 then
{
LowValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
}
CSARV2 = SAR_Value2;
}
else
{
if Direction2 == 0 then
{
if OIV > OIV[1] then Direction2 = 1;
else
if OIV < OIV[1] then Direction2 = -1;
}
else
{
if Direction2 == 1 then
{
if OIV < OIV[1] then
{
Direction2 = -1;
SAR_Value2 = HighValue2;
CSARV2 = SAR_Value2;
}
}
if Direction2 == -1 then
{
if OIV > OIV[1] then
{
Direction2 = 1;
SAR_Value2 = LowValue2;
CSARV2 = SAR_Value2;
}
}
}
LowValue2 = min(OIV, LowValue2);
HighValue2 = max(OIV, HighValue2);
}
}
plot1(OIV,"미결제약정");
plot2(CSARV1,"미결파라볼릭1"); //속성에서 점그래프
plot3(CSARV2,"미결파라볼릭2"); //속성에서 점그래프
2 시스템
Input : AF1(0.02),AFMAX1(0.2);
Input : AF2(0.01),AFMAX2(0.02);
var : OIV(0);
Var : Direction1(0), SAR_Value1(OI), AF_Value1(.02), HighValue1(OI), LowValue1(OI),EP1(0),CSARV1(0);
Var : Direction2(0), SAR_Value2(OI), AF_Value2(.02), HighValue2(OI), LowValue2(OI),EP2(0),CSARV2(0);
var : Bcond(false),Scond(false);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP1 != 0 Then
{
if Direction1 == 1 then
{
EP1 = HighValue1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV > HighValue1 then
{
HighValue1 = OIV;
AF_Value1 = AF_Value1 + AF1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
if OIV < SAR_Value1 then
{
Direction1 = -1;
SAR_Value1 = EP1;
AF_Value1 = 0;
EP1 = 0;
LowValue1 = OIV;
}
}
else
{
EP1 = LowValue1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV < LowValue1 then
{
LowValue1 = OIV;
AF_Value1 = AF_Value1 + Af1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
if OIV > SAR_Value1 then
{
Direction1 = 1;
SAR_Value1 = EP1;
AF_Value1 = 0;
EP1 = 0;
HighValue1 = OIV;
}
}
CSARV1 = SAR_Value1;
}
else
{
if SAR_Value1 != 0 && EP1 == 0 then
{
if Direction1 == 1 then
{
EP1 = HighValue1;
AF_Value1 = AF1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV > HighValue1 then
{
HighValue1 = OIV;
AF_Value1 = AF_Value1 + AF1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
}
else
{
EP1 = LowValue1;
AF_Value1 = Af1;
SAR_Value1 = SAR_Value1 + AF_Value1 * (EP1 - SAR_Value1);
if OIV < LowValue1 then
{
LowValue1 = OIV;
AF_Value1 = AF_Value1 + AF1;
if AF_Value1 >= AFMAX1 then AF_Value1 = AFMAX1;
}
}
CSARV1 = SAR_Value1;
}
else
{
if Direction1 == 0 then
{
if OIV > OIV[1] then Direction1 = 1;
else
if OIV < OIV[1] then Direction1 = -1;
}
else
{
if Direction1 == 1 then
{
if OIV < OIV[1] then
{
Direction1 = -1;
SAR_Value1 = HighValue1;
CSARV1 = SAR_Value1;
}
}
if Direction1 == -1 then
{
if OIV > OIV[1] then
{
Direction1 = 1;
SAR_Value1 = LowValue1;
CSARV1 = SAR_Value1;
}
}
}
LowValue1 = min(OIV, LowValue1);
HighValue1 = max(OIV, HighValue1);
}
}
if EP2 != 0 Then
{
if Direction2 == 1 then
{
EP2 = HighValue2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV > HighValue2 then
{
HighValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
if OIV < SAR_Value2 then
{
Direction2 = -1;
SAR_Value2 = EP2;
AF_Value2 = 0;
EP2 = 0;
LowValue2 = OIV;
}
}
else
{
EP2 = LowValue2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV < LowValue2 then
{
LowValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
if OIV > SAR_Value2 then
{
Direction2 = 1;
SAR_Value2 = EP2;
AF_Value2 = 0;
EP2 = 0;
HighValue2 = OIV;
}
}
CSARV2 = SAR_Value2;
}
else
{
if SAR_Value2 != 0 && EP2 == 0 then
{
if Direction2 == 1 then
{
EP2 = HighValue2;
AF_Value2 = AF2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV > HighValue2 then
{
HighValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
}
else
{
EP2 = LowValue2;
AF_Value2 = AF2;
SAR_Value2 = SAR_Value2 + AF_Value2 * (EP2 - SAR_Value2);
if OIV < LowValue2 then
{
LowValue2 = OIV;
AF_Value2 = AF_Value2 + AF2;
if AF_Value2 >= AFMAX2 then AF_Value2 = AFMAX2;
}
}
CSARV2 = SAR_Value2;
}
else
{
if Direction2 == 0 then
{
if OIV > OIV[1] then Direction2 = 1;
else
if OIV < OIV[1] then Direction2 = -1;
}
else
{
if Direction2 == 1 then
{
if OIV < OIV[1] then
{
Direction2 = -1;
SAR_Value2 = HighValue2;
CSARV2 = SAR_Value2;
}
}
if Direction2 == -1 then
{
if OIV > OIV[1] then
{
Direction2 = 1;
SAR_Value2 = LowValue2;
CSARV2 = SAR_Value2;
}
}
}
LowValue2 = min(OIV, LowValue2);
HighValue2 = max(OIV, HighValue2);
}
}
Bcond = OIV > CSARV1 and OIV > CSARV1;
Scond = OIV < CSARV1 and OIV < CSARV1;
if Bcond == true and Bcond[1] == false Then
buy();
if MarketPosition == 1 and (OIV < CSARV1 or OIV < CSARV1) Then
exitlong();
if Scond == true and Scond[1] == false Then
sell();
if MarketPosition == -1 and (OIV > CSARV1 or OIV > CSARV1) Then
ExitShort();
즐거운 하루되세요
> dkfvkrh7 님이 쓴 글입니다.
> 제목 : Re : Re : 수고하십니다
> 한가지신호로 여쭤보고 두가지신호로 만들어 보려고 했는데
수식이 너무 어려워서 불가능할것 같아 다시부탁드립니다
번거롭게 해드려서 죄송합니다
AF1(0.02), AFMAX1(0.2)의 적은 크기 파라볼릭과
AF2(0.01), AFMAX2(0.02)의 큰 크기의 파라볼릭을 조합하여
AF1(0.02), AFMAX1(0.2)의 매수 and AF2(0.01), AFMAX2(0.02)의 매수 = 매수
AF1(0.02), AFMAX1(0.2)의 매도 or AF2(0.01), AFMAX2(0.02)의 매도 = 매수청산
AF1(0.02), AFMAX1(0.2)의 매도 and AF2(0.01), AFMAX2(0.02)의 매도 = 매도
AF1(0.02), AFMAX1(0.2)의 매수 or AF2(0.01), AFMAX2(0.02)의 매수 = 매도청산
이렇게 만들고자 하였습니다
--------------------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수고하십니다
>
안녕하세요
예스스탁입니다.
문의하신 내용이 미결제약정으로 파라볼릭을 계산해서
사용하고자 하시는 부분이면 아래식 이용하시면 됩니다.
미결제약정이 만기일 마지막봉에서 0이되어
파라볼릭계산에 문제갑 발생해서 마지막봉에서는 전봉값을 사용하게
작성했습니다.
1 지표
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV > HighValue then
{
HighValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = OIV;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = OIV;
}
}
CSarv = 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 OIV > HighValue then
{
HighValue = OIV;
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 OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if OIV > OIV[1] then Direction = 1;
else
if OIV < OIV[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if OIV < OIV[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if OIV > OIV[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(OIV, LowValue);
HighValue = max(OIV, HighValue);
}
}
plot1(OIV,"미결제약정");
plot2(CSARv,"미결파라볼릭"); //속성에서 점그래프
2 시스템
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(OI), AF_Value(.02), HighValue(OI), LowValue(OI), EP(0),CSARV(0),OIV(0);
OIV = Oi;
if OI == 0 Then
OIV = Oi[1];
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV > HighValue then
{
HighValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = OIV;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if OIV > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = OIV;
}
}
CSarv = 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 OIV > HighValue then
{
HighValue = OIV;
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 OIV < LowValue then
{
LowValue = OIV;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if OIV > OIV[1] then Direction = 1;
else
if OIV < OIV[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if OIV < OIV[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if OIV > OIV[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(OIV, LowValue);
HighValue = max(OIV, HighValue);
}
}
if crossup(OIV,CSARV) Then
buy();
if CrossDown(OIV,CSARV) Then
sell();
즐거운 하루되세요
> dkfvkrh7 님이 쓴 글입니다.
> 제목 : 수고하십니다
> 미결재약정에 파라볼릭신호를 적용하려는데
여러가지 방법으로 해도 안되어 도움 부탁드립니다
Input : Period1(5);
Input : af1(0.02), maxAF1(0.2) ;
var : Value(0,data1);
value = data1(Ma(OpenInterest, period1 ));
Var : Value1(0);
Value1 = csar(af1,maxAF1 );
if data1(CrossUp(value(c),value1) ) then
buy("매수");
if data1(CrossDown(value(c),value1) ) then
Sell("매도");
다음글
이전글