커뮤니티
문의드립니다.
2012-04-26 20:52:57
450
글번호 50545
전에 요청드렸던 내용을 방법을 바꿔서 해보려는데 잘 안되네요 ...뭐가 틀린건지 부탁드립니다.
아래 내용은 제가 만든 사용자 함수입니다.
배수를 입력받아서 낮은 주기 차트에서 높은 주기 TRIX를 보기 위해서입니다.
지표에서는 간단하게 이 함수를 불러서 사용하고자 합니다.
/********************************************************
Input : Period(NumericSimple);
Var : value1(0), value2(0), value3(0);
value1 = ema(C, Period);
value2 = ema(value1, Period);
value3 = ema(value2, Period);
TRIX = (value3 - value3[1]) / value3[1] * 100;
*********************************************************/
Input : Period(NumericSimple),배수(NumericSimple);
Var : 배수종가(0), Value1(0), Value2(0), Value3(0);
var1 = index % 배수;
If Var1 == 0 Then
배수종가 = C;
Else
배수종가 = 배수종가[1];
Value1 = Ema(배수종가, Period);
Value2 = Ema(Value1, Period);
Value3 = Ema(Value2, Period);
TRIX배수 = (value3 - value3[1]) / value3[1] * 100;
아래는 지표식입니다......................................
Input : Period(5), sigPeriod(3),배수(3);
Plot1(TRIX배수(Period,배수),"TRIX");
Plot2(ema(TRIX배수(Period,배수),sigPeriod),"TRIX시그널");
PlotBaseLine1(0,"기준선");
답변 1
예스스탁 예스스탁 답변
2012-04-27 10:10:17
안녕하세요
예스스탁입니다.
작성하신 내용으로는 타주기값이 계산되지 않습니다.
Trix와 Trix시그널 함수 각가 따로 함수로 만들어 사용하셔야 합니다.
1.
사용자함수명 : Trix배수
Input : Period(NumericSimple),배수(NumericSimple);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0);
Var : Ep2(0), JISU2(0), PreJISU2(0),preTrixsig(0);
Var : Ep3(0), JISU3(0), PreJISU3(0),Trixsig(0),TRIXv(0);
Ep1 = 2/(Period+1);
var1 = dayindex%배수;
if index > 배수 and( dayindex == 0 or (var1 < var1[1] and stime > stime[1])) then {
DINDEX1= DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreJISU3 = JISU3[1];
PreTrixsig = Trixsig[1];
}
if DINDEX1 < 1 then
JISU1 = c;
else
JISU1 = c * EP1 + PreJISU1 * (1-EP1);
if DINDEX1 < 2 then
JISU2 = JISU1 ;
else
JISU2 = JISU1 * EP1 + PreJISU2 * (1-EP1);
if DINDEX1 < 3 then
JISU3 = JISU2 ;
else
JISU3 = JISU2 * EP1 + PreJISU3 * (1-EP1);
if DINDEX1 > 3 then
TRIXv = (JISU3 - PreJISU3) / PreJISU3 * 100;
Trix배수 = TRIXv;
2, 사용자함수명 : Trix배수시그널
Input : Period(NumericSimple), sigPeriod(NumericSimple),배수(NumericSimple);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0);
Var : Ep2(0), JISU2(0), PreJISU2(0),preTrixsig(0);
Var : Ep3(0), JISU3(0), PreJISU3(0),Trixsig(0),TRIXv(0);
Ep1 = 2/(Period+1);
Ep2 = 2/(sigPeriod+1);
var1 = dayindex%배수;
if index > 배수 and( dayindex == 0 or (var1 < var1[1] and stime > stime[1])) then {
DINDEX1= DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreJISU3 = JISU3[1];
PreTrixsig = Trixsig[1];
}
if DINDEX1 < 1 then
JISU1 = c;
else
JISU1 = c * EP1 + PreJISU1 * (1-EP1);
if DINDEX1 < 2 then
JISU2 = JISU1 ;
else
JISU2 = JISU1 * EP1 + PreJISU2 * (1-EP1);
if DINDEX1 < 3 then
JISU3 = JISU2 ;
else
JISU3 = JISU2 * EP1 + PreJISU3 * (1-EP1);
if DINDEX1 > 3 then
TRIXv = (JISU3 - PreJISU3) / PreJISU3 * 100;
if DINDEX1 < 4 then
Trixsig = TRIXv ;
else
Trixsig = TRIXv * EP2 + PreTrixsig * (1-EP2);
Trix배수시그널 = trixsig;
아래와 같이 지표식등에서 사용하시면 됩니다.
Input : Period(5), sigPeriod(3),배수(3);
Plot1(TRIX배수(Period,배수),"TRIX");
Plot2(TRIX배수시그널(Period,sigPeriod,배수),"TRIX시그널");
PlotBaseLine1(0,"기준선");
즐거운 하루되세요
> 파파 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 전에 요청드렸던 내용을 방법을 바꿔서 해보려는데 잘 안되네요 ...뭐가 틀린건지 부탁드립니다.
아래 내용은 제가 만든 사용자 함수입니다.
배수를 입력받아서 낮은 주기 차트에서 높은 주기 TRIX를 보기 위해서입니다.
지표에서는 간단하게 이 함수를 불러서 사용하고자 합니다.
/********************************************************
Input : Period(NumericSimple);
Var : value1(0), value2(0), value3(0);
value1 = ema(C, Period);
value2 = ema(value1, Period);
value3 = ema(value2, Period);
TRIX = (value3 - value3[1]) / value3[1] * 100;
*********************************************************/
Input : Period(NumericSimple),배수(NumericSimple);
Var : 배수종가(0), Value1(0), Value2(0), Value3(0);
var1 = index % 배수;
If Var1 == 0 Then
배수종가 = C;
Else
배수종가 = 배수종가[1];
Value1 = Ema(배수종가, Period);
Value2 = Ema(Value1, Period);
Value3 = Ema(Value2, Period);
TRIX배수 = (value3 - value3[1]) / value3[1] * 100;
아래는 지표식입니다......................................
Input : Period(5), sigPeriod(3),배수(3);
Plot1(TRIX배수(Period,배수),"TRIX");
Plot2(ema(TRIX배수(Period,배수),sigPeriod),"TRIX시그널");
PlotBaseLine1(0,"기준선");
다음글
이전글