리소스 로딩... 로딩...

지점과 기울기

저자:발명가들의 수량화 - 작은 꿈, 2017-01-05 14:06:15, 업데이트:

지점과 기울기


  • 피크 (kurtosis) 와 기울기 (skewness)

    이키트레이더

    이것은 통계 자료의 분포를 적용한 피크 (kurtosis) 와 기울기 (skewness) 를 통한 거래 전략이다. 자료가 유행하고 잠재적인 추세가 긍정적일 때 우리는 더 많이 한다. 자료가 유행하고 잠재적인 추세가 부정적일 때 우리는 공백한다. 추세가 반전된 후에 우리는 평평하다.

    그렇다면, 어떻게 추세와 추세의 강도를 정의할 수 있을까요? 먼저 트와 기울기의 정의를 검토해보죠.

    먼저 정상적인 분포의 정의를 살펴봅시다.

    분포 (distribution): 변수에서 모든 값이 나타나는 횟수 분포의 경우, 가로축을 변수 값으로, 가로축을 발생 주파수의 좌표로 나타냅니다. 정상 분포: 가우스 분포라고도 합니다.

    표준정상분포: 평균을 중심으로 표준편차 (standard deviation) 를 좌표축의 기본 단위로 그리는 정상분포 그래프. 모양은 종 모양의 대칭 그래프이다.

    m ± 1s는 전체 표본군의 68.26%를 차지한다.

    m ± 2s는 전체 표본군의 95.44%를 포함하는 개체이다.

    m ± 3s는 전체 샘플 그룹의 99.74%를 포함합니다.

    95%의 개체들은 m ± 1.96s 사이로 떨어진다.

    99%의 개체들은 m ± 2.58s 사이로 떨어진다.

    img

    통계학에서, 피크 (Kurtosis) 는 실수의 무작위 변수 확률 분포의 피크 상태를 측정한다. 피크 높다는 것은 낮은 주파수의 평균보다 크거나 작은 극적 오차로 인해 변수가 증가한다는 것을 의미한다.

    피크 (kurtosis) 는 데이터 집합의 분포 형태를 묘사하는 의 수치이다. 정규 분포의 피크는 3이기 때문에 피크는 3보다 크다. 이는 데이터 분포가 정규 분포보다 더 집중되고 하다는 것을 나타냅니다. 피크는 3보다 작다.

    편향 (skewness) 은 자료의 분포의 대칭성, 즉 자료중 소수 (mode) 의 위치를 묘사한다. 편향은 0에 해당한다. 이 통계자료는 또한 정규 분포와 비교할 필요가 있다: 편향이 0보다 크다는 것을 나타내는 편향은 정규 분포와 비교하여 배열이 오른쪽 편향으로 나타나고 오른쪽의 긴 꼬리로서 극한값이 오른쪽에서 더 많이 펼쳐져 있다. 반대로 좌측 편향으로 나타나고 왼쪽의 긴 꼬리로서 극한값이 왼쪽에서 더 많이 펼쳐져 있다. 금융 시장에서 0보다 큰 편향은 자료가 집계되는 경향으로 설명될 수 있으며 0보다 작은 편향은 자료가 집계되는 경향으로 설명될 수 있다.

    확률론과 통계학에서, 편차는 실수의 무작위 변수들의 확률 분포의 비대칭성을 측정한다. 편차의 값은 양수, 음수, 혹은 정의할 수 없다. 수치적으로, 편차는 음수이다. 편차는 확률 밀도 함수의 왼쪽쪽의 꼬리가 오른쪽보다 길고, 대다수 값은 중간값을 포함해서 평균값의 오른쪽에 위치한다는 것을 의미한다. 편차는 긍정적이다. 편차는 확률 밀도 함수의 오른쪽의 긴 꼬리가 왼쪽보다 길고, 대다수 중간값은 중간값의 왼쪽에 위치한다는 것을 의미한다. 편차는 0수를 포함해서 평균값의 양쪽에 비교적 균일하게 분포한다는 것을 의미한다. 그러나 이것이 반드시 분포라는 것을 의미하지는 않는다.

    이 부분의 본문은

    • 부정 편향 또는 좌편 편향: 좌측의 꼬리가 길고, 분포 주체는 오른쪽에 집중되어 있다.
    • 정편 편향 또는 오른편 편향: 오른쪽에 있는 꼬리가 길고, 분포 주체는 왼쪽에 집중되어 있다.
    • 분포가 대칭이라면 평균값 = 중위, 편차는 0 (또한 분포가 단점 분포라면 평균값 = 중위 = 다수) 이다.

    img

  • 그래서 우리는 다음과 같은 거래 법칙을 추론합니다. 피크가 0보다 작을 때 (시장이 트렌드 시장에 있으며), 편차가 N보다 크면 (트렌드가 상승하고) 더 많이; 피크가 0보다 작을 때 (시장이 트렌드 시장에 있으며, 편차가 M보다 작을 때 (트렌드가 하락하는 경우), 공백;

MATLAB 소스 코드: 관심있는 것은 JS 언어 테스트로 변환 할 수 있습니다.

input:ExitType(5) ;
input:NBarL(2),NBarS(2),TradeProfit(0.053),TradeStopLoss(0.023),ATRs_L(5.4),ATRs_S(10.9);
vars: IsBalanceDay(False),MP(0),PF(0),PL(0),HLRange(100);

inputs:Length(20),Trigger(3),UpSkew(3.4),DownSkew(2.2) ;
vars:KurtValue(0),SkewValue(0),BuyPoint(0),SellPoint(0);

MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;

PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;

{计算峰度 }
KurtValue = Kurtosis(Close,Length) ;
{计算偏度}
SkewValue = Skew(Close,Length) ;

{ 峰度向下跌破 Trigger 线 ,建立买卖点 }
if KurtValue Cross under Trigger then Begin
BuyPoint = High 3;
SellPoint = Low-3;
end;

{ 偏度大于某数值后 ,趋势确认进场作多 }
if  SkewValue > -UpSkew 2 then Buy next bar at BuyPoint stop ;
{ 偏度小于某数值后 ,趋势确认进场作空 }
if  SkewValue < -DownSkew 2 then Sell next bar at SellPoint Stop ;
end;

if ExitType = 1 then SetStopLoss(PL * BigPointValue) ;

if ExitType = 2 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
end;

if ExitType = 3 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;

if ExitType = 4 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then {Sell } ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then {Buy} ExitShort next bar at Market ;
end;

if ExitType = 5 then Begin
{*******************************************************************
Description : ATR Trailing Stop Long Exit
Provided By : Omega Research, Inc. (c) Copyright 1999
********************************************************************}
{Inputs: ATRs_L(3);}
Variables: PosHigh(0), ATRVal_L(0);

ATRVal_L = AvgTrueRange(10) * ATRs_L;
If BarsSinceEntry = 0 Then PosHigh = High;
If MarketPosition = 1 Then Begin
If High > PosHigh Then PosHigh = High;
ExitLong ("ATR") Next Bar at PosHigh - ATRVal_L Stop;
End else ExitLong ("ATR eb") Next bar at High - ATRVal_L Stop;

{*******************************************************************
Description : ATR Trailing Stop Short Exit
Provided By : Omega Research, Inc. (c) Copyright 1999
******************************************************************}
{Inputs: ATRs_S(3);}
Variables: PosLow(0), ATRVal_S(0);

ATRVal_S = AvgTrueRange(10) * ATRs_S;
If BarsSinceEntry = 0 Then PosLow = Low;
If MarketPosition = -1 Then Begin
If Low < PosLow Then PosLow = Low;
ExitShort ("ATR_1") Next Bar at PosLow ATRVal_S Stop;
End else ExitShort ("ATR_1 eb") Next bar at Low ATRVal_S Stop;
end;

if IsBalanceDay then setExitonClose ;

이 글은 Faruto의 블로그에서 가져온 것입니다.


더 많은