첨부 이미지
그림1
그림2
안녕하세요?
코덱스 레버리지 인버스 스위칭 시스템을 만들고 있는데 인버스에서 data2(레버리지) 시뮬렝션하면 안됩니다. 원인은 시뮬렝션 차트에서 지표적용해서 보면 plot2가 실행이 안됩니다.
전략실행차트에서는 잘되는데 시뮬렝션 차트에서 될 수 있도록 해 주시면 고맙겠습니다.
/* 칼만필터
*/
Input : K1(100);
Vars : pred(C), smooth(0), velo(0), deltak(0), pred2(C), smooth2(0), velo2(0), deltak2(0);
DeltaK = C - Pred;
Smooth = Pred + DeltaK * SquareRoot((K1/10000)*2);
Velo = Velo + ((K1/10000)*DeltaK);
Pred = Smooth + Velo;
DeltaK2 = DATA2(C - Pred2);
Smooth2 = DATA2(Pred2 + DeltaK2 * SquareRoot((K1/10000)*2));
Velo2 = DATA2(Velo2 + ((K1/10000)*DeltaK2));
Pred2 = DATA2(Smooth2 + Velo2);
Plot1(pred);
Plot2(pred2);
답변 1
예스스탁
예스스탁 답변
2012-08-13 09:32:34
안녕하세요? 예스스탁입니다.
실시간 차트에서는 data1과 data2의 데이터 길이가 동일해서 문제가 발생되지 않지만, 시뮬레이션 차트에서는 data2의 데이터가 더 짧아서 그 구간 동안 N/A 가 발생됩니다. 그 상태에서 값을 참조하도록 식이 작성되어 있기 때문에 data2가 출력되지 않습니다.
data1과 data2의 데이터 시작 시점을 맞추어서 사용하시거나, 아래와 같이 식을 수정해서 적용해 보시기 바랍니다.
Input : K1(100);
Vars : pred(C), smooth(0), velo(0), deltak(0), pred2(C), smooth2(0), velo2(0), deltak2(0);
DeltaK = C - Pred;
Smooth = Pred + DeltaK * SquareRoot((K1/10000)*2);
Velo = Velo + ((K1/10000)*DeltaK);
Pred = Smooth + Velo;
if data2(index) > 1 then {
DeltaK2 = DATA2(C - Pred2);
Smooth2 = DATA2(Pred2 + DeltaK2 * SquareRoot((K1/10000)*2));
Velo2 = DATA2(Velo2 + ((K1/10000)*DeltaK2));
Pred2 = DATA2(Smooth2 + Velo2);
}
Plot1(pred);
Plot2(pred2);
즐거운 날 되세요..
> 함밝중명 님이 쓴 글입니다.
> 제목 : 시뮬레이션
>
안녕하세요?
코덱스 레버리지 인버스 스위칭 시스템을 만들고 있는데 인버스에서 data2(레버리지) 시뮬렝션하면 안됩니다. 원인은 시뮬렝션 차트에서 지표적용해서 보면 plot2가 실행이 안됩니다.
전략실행차트에서는 잘되는데 시뮬렝션 차트에서 될 수 있도록 해 주시면 고맙겠습니다.
/* 칼만필터
*/
Input : K1(100);
Vars : pred(C), smooth(0), velo(0), deltak(0), pred2(C), smooth2(0), velo2(0), deltak2(0);
DeltaK = C - Pred;
Smooth = Pred + DeltaK * SquareRoot((K1/10000)*2);
Velo = Velo + ((K1/10000)*DeltaK);
Pred = Smooth + Velo;
DeltaK2 = DATA2(C - Pred2);
Smooth2 = DATA2(Pred2 + DeltaK2 * SquareRoot((K1/10000)*2));
Velo2 = DATA2(Velo2 + ((K1/10000)*DeltaK2));
Pred2 = DATA2(Smooth2 + Velo2);
Plot1(pred);
Plot2(pred2);