커뮤니티
문의드립니다.
2018-01-24 09:01:57
226
글번호 115997
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 지표
TS코드인데 변환가능한지요.
Indicator: Correlation Divergence
inputs:
SEC2( Close of Data2 ),
SEC3( Close of Data3 ),
D1( 3 ),
DIVDAYS( 50 ),
IMDAYS( 50 ),
CR3CR( .8 ) ;
variables:
IM2(0),
DIV2(0),RS1(0),RS2(0),
b2(0),PRED2(0),a2(0),
RS3(0),CR2(0),CR3(0);
//REGRESSION
RS1 = ( Close / Close[D1] - 1 ) * 100 ;
RS2 = ( SEC2 / SEC2[D1] - 1 ) * 100 ;
RS3 = ( SEC3 / SEC3[D1] - 1 ) * 100 ;
CR2 = CorrelationMK( RS1, RS2, DIVDAYS ) ;
CR3 = CorrelationMK( RS1, RS3, DIVDAYS ) ;
b2 = CR2 * StandardDev( RS1, DIVDAYS, 1 )
/ ( StandardDev( RS2, DIVDAYS, 1 ) + .001 ) ;
a2 = Average( RS1, DIVDAYS )
- b2 * Average( RS2, DIVDAYS ) ;
PRED2 = b2 * RS2 + a2 ;
DIV2 = PRED2 - RS1 ;
IM2 = ( Average( DIV2 -
Lowest( DIV2, IMDAYS ), 2 ) * 100 ) /
( Average( Highest( DIV2, IMDAYS ) -
Lowest( DIV2, IMDAYS ), 2 ) + .01 ) ;
Plot1( IM2, "RegDiv" ) ;
Plot2( 75, "Upper" ) ;
Plot3( 25, "Lower" ) ;
Function: Correlation MK
{ CORRELATIONMK : Pearson’s
Correlation Function
Copyright 2009,
Markos Katsanos.
All rights reserved.
For more information see
Intermarket Trading Strategies, Wiley,
2009 }
Inputs:
SEC1( NumericSeries ),
SEC2( NumericSeries ),
D1( NumericSimple ); // days for correlation
Variables:
D2(20),Q1(0),Q2(0),
Q3(0),Q2Q3(0),R(0);
if CurrentBar >= D1 then
begin
Q1 = Summation((SEC1*(SEC2)),D1)
-(Summation(SEC1,D1)
* Summation(SEC2,D1)/D1);
Q2 = Summation(((SEC2)*(SEC2)),D1)
- (Summation(SEC2,D1)
* Summation(SEC2,D1)/D1);
Q3 = Summation((SEC1*SEC1),D1)
- (Summation(SEC1,D1)
* Summation(SEC1,D1)/D1);
if Q2*Q3 > 0 then
Q2Q3=SquareRoot(Q2*Q3);
if Q2Q3 <> 0 then
begin
R=Q1/Q2Q3;
if R <= 1 and R >= -1 then
CorrelationMK = R ;
end ;
end ;
답변 1
예스스탁 예스스탁 답변
2018-01-24 14:12:58
안녕하세요
예스스탁입니다.
1 지표
inputs : D1(3), DIVDAYS(50), IMDAYS(50),CR3CR(0.8);
var :SEC2(0),SEC3(0),IM2(0),DIV2(0),RS1(0),RS2(0),b2(0),PRED2(0),a2(0), RS3(0),CR2(0),CR3(0);
SEC2 = data2(c);
SEC3 = data3(c);
RS1 = (Close / Close[D1] - 1 ) * 100 ;
RS2 = (SEC2 / SEC2[D1] - 1 ) * 100 ;
RS3 = (SEC3 / SEC3[D1] - 1 ) * 100 ;
CR2 = CorrelationMK( RS1, RS2, DIVDAYS ) ;
CR3 = CorrelationMK( RS1, RS3, DIVDAYS ) ;
b2 = CR2 * STD(RS1, DIVDAYS) / ( std( RS2, DIVDAYS) + .001 ) ;
a2 = ma( RS1, DIVDAYS ) - b2 * ma( RS2, DIVDAYS ) ;
PRED2 = b2 * RS2 + a2 ;
DIV2 = PRED2 - RS1 ;
IM2 = (ma( DIV2 -Lowest( DIV2, IMDAYS ), 2 ) * 100 ) / ( ma( Highest( DIV2, IMDAYS ) -Lowest( DIV2, IMDAYS ), 2 ) + .01 ) ;
Plot1( IM2, "RegDiv" ) ;
Plot2( 75, "Upper" ) ;
Plot3( 25, "Lower" ) ;
2 사용자함수
사용자함수명 : CorrelationMK
반환값형 : 숫자형
Input : SEC1( NumericSeries ),SEC2( NumericSeries ), D1( NumericSimple );
Var : D2(20),Q1(0),Q2(0),Q3(0),Q2Q3(0),R(0);
if CurrentBar >= D1 then
{
Q1 = AccumN((SEC1*(SEC2)),D1) -(AccumN(SEC1,D1) * AccumN(SEC2,D1)/D1);
Q2 = AccumN(((SEC2)*(SEC2)),D1) - (AccumN(SEC2,D1) * AccumN(SEC2,D1)/D1);
Q3 = AccumN((SEC1*SEC1),D1) - (AccumN(SEC1,D1) * AccumN(SEC1,D1)/D1);
if Q2*Q3 > 0 then
Q2Q3=SquareRoot(Q2*Q3);
if Q2Q3 <> 0 then
{
R=Q1/Q2Q3;
if R <= 1 and R >= -1 then
CorrelationMK = R ;
}
}
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 지표
TS코드인데 변환가능한지요.
Indicator: Correlation Divergence
inputs:
SEC2( Close of Data2 ),
SEC3( Close of Data3 ),
D1( 3 ),
DIVDAYS( 50 ),
IMDAYS( 50 ),
CR3CR( .8 ) ;
variables:
IM2(0),
DIV2(0),RS1(0),RS2(0),
b2(0),PRED2(0),a2(0),
RS3(0),CR2(0),CR3(0);
//REGRESSION
RS1 = ( Close / Close[D1] - 1 ) * 100 ;
RS2 = ( SEC2 / SEC2[D1] - 1 ) * 100 ;
RS3 = ( SEC3 / SEC3[D1] - 1 ) * 100 ;
CR2 = CorrelationMK( RS1, RS2, DIVDAYS ) ;
CR3 = CorrelationMK( RS1, RS3, DIVDAYS ) ;
b2 = CR2 * StandardDev( RS1, DIVDAYS, 1 )
/ ( StandardDev( RS2, DIVDAYS, 1 ) + .001 ) ;
a2 = Average( RS1, DIVDAYS )
- b2 * Average( RS2, DIVDAYS ) ;
PRED2 = b2 * RS2 + a2 ;
DIV2 = PRED2 - RS1 ;
IM2 = ( Average( DIV2 -
Lowest( DIV2, IMDAYS ), 2 ) * 100 ) /
( Average( Highest( DIV2, IMDAYS ) -
Lowest( DIV2, IMDAYS ), 2 ) + .01 ) ;
Plot1( IM2, "RegDiv" ) ;
Plot2( 75, "Upper" ) ;
Plot3( 25, "Lower" ) ;
Function: Correlation MK
{ CORRELATIONMK : Pearson’s
Correlation Function
Copyright 2009,
Markos Katsanos.
All rights reserved.
For more information see
Intermarket Trading Strategies, Wiley,
2009 }
Inputs:
SEC1( NumericSeries ),
SEC2( NumericSeries ),
D1( NumericSimple ); // days for correlation
Variables:
D2(20),Q1(0),Q2(0),
Q3(0),Q2Q3(0),R(0);
if CurrentBar >= D1 then
begin
Q1 = Summation((SEC1*(SEC2)),D1)
-(Summation(SEC1,D1)
* Summation(SEC2,D1)/D1);
Q2 = Summation(((SEC2)*(SEC2)),D1)
- (Summation(SEC2,D1)
* Summation(SEC2,D1)/D1);
Q3 = Summation((SEC1*SEC1),D1)
- (Summation(SEC1,D1)
* Summation(SEC1,D1)/D1);
if Q2*Q3 > 0 then
Q2Q3=SquareRoot(Q2*Q3);
if Q2Q3 <> 0 then
begin
R=Q1/Q2Q3;
if R <= 1 and R >= -1 then
CorrelationMK = R ;
end ;
end ;