avatar of 发明者量化-小小梦 发明者量化-小小梦
집중하다 사신
4
집중하다
1271
수행원

첨도와 왜도

만든 날짜: 2017-01-05 14:06:15, 업데이트 날짜:
comments   0
hits   4940

첨도와 왜도


  • #### 피크 (kurtosis) 와 스케인 (skewness)

이자 트레이더에 게재된 사진

이것은 통계 자료의 분산된 정점 (kurtosis) 과 편향 (skewness) 에 의해 행해지는 거래 전략이다. 자료가 유동적이고 잠재적인 추세가 긍정적일 때, 우리는 더 많이 한다. 자료가 유동적이고 잠재적인 추세가 부정적일 때, 우리는 공백한다.

그럼, 어떻게 추세와 추세의 강도를 알아낼 수 있을까요? 먼저 정점과 편향의 정의를 살펴봅시다.

먼저 정규 분포의 정의를 살펴봅시다.

분산 (distribution): 변수의 모든 값이 발생하는 횟수 분산 상황, 수평축은 변수의 값, 수직축은 발생 빈도 (frequency) 의 좌표 도표를 나타낸다. 정상 분산: 가우스 분산 (Gaussian distribution) 이라고도 한다.

표준 정규 분포: 평균 (mean) 을 중심으로, 표준 편차 (standard deviation) 가 지표축의 기본 단위로 그려진 정규 분포 도표. 모양은 시계 모양의 대칭 도표이다.

m ± 1s 전체 샘플 군집의 68.26%의 개체를 포함한다.

m ± 2s 전체 샘플 그룹의 95.44%의 개체를 포함한다.

m ± 3s 전체 샘플 그룹의 99.74%의 개체를 포함한다.

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

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

첨도와 왜도

통계학에서, 피크는 실제 숫자의 무작위 변수의 확률 분포의 피크 상태를 측정한다. 피크가 높다는 것은 차차가 증가하는 것이 낮은 빈도에서 평균보다 큰 또는 작은 극단적 차차로 인해 발생하는 것을 의미한다.

정점 (kurtosis) 은 데이터 집합의 분산 형태의 경련 정도를 나타내는 통계수량이다. 정상 분산의 정점은 3이므로 3보다 큰 것을 정점이라고 부르며, 이는 데이터 분산이 정상 분산보다 더 집중적이고 부드럽다는 것을 나타낸다. 3보다 작은 정점을 평점형이라고 부르며, 이는 데이터 분산이 긍정 분산보다 더 부드럽다는 것을 나타낸다. 여기서 우리는 실제 정점을 3을 빼고 나온 값을 가리킨다. 금융 시장에서 0보다 큰 정점은 트렌드 없는 것으로 표현되며, 0보다 작은 정점은 트렌드 시장으로 표현된다.

편향 (skewness) 은 자료의 분포의 대칭성을, 또는 자료의 대수 (mode) 의 위치를 묘사한다. 편향은 0과 같다고 표현하는 것은 완벽한 대칭성이다. 이 통계는 마찬가지로 일반 분포와 비교되어야 한다. 편향이 0보다 크다는 것은 일반 분포와 비교하면, 이 배열은 오른쪽 편향을 나타내고, 오른쪽의 긴 꼬리로 표현되며, 극한 값은 오른쪽에서 더 많이 배치된다. 반대로 편향은 왼쪽 편향을 나타내고, 왼쪽의 긴 꼬리로 표현되며, 극한 값은 왼쪽에서 더 많이 배치된다. 금융 시장에서, 0보다 큰 편향은 자료를 축적하는 경향을 설명할 수 있고, 0보다 작은 편향은 자료를 축적하는 경향을 설명할 수 있다.

확률 이론과 통계학에서, 편향은 실수의 무작위 변수의 확률 분포의 비대칭성을 측정한다. 편향의 값은 긍정적이거나 부정적이거나 정의할 수 없다. 수적으로, 편향은 부정적이라는 것은 확률 밀도 함수의 왼쪽에 있는 꼬리가 오른쪽에 있는 길이가 평균의 오른쪽에 있는 것을 의미하며, 절대적인 다수의 값은 평균의 오른쪽에 있는 꼬리가 왼쪽에 있는 길이가 평균의 왼쪽에 있는 것을 의미한다. 좌변의 편향은 평균의 양쪽에 비교적 균등하게 분포된 것을 의미하지만, 반드시 평균의 양쪽에 있는 분포를 의미하지는 않는다.

이 두 가지의 편향은 다음과 같습니다.

  • 부정적인 편향 또는 좌파 편향: 왼쪽의 꼬리가 길고, 분포 주체는 오른쪽에 집중된다.
  • 정방향 또는 우방향: 오른쪽의 꼬리는 길고, 분포 주체는 왼쪽에 집중된다.
  • 만약 분포가 대칭이라면 평균값 = 중소수, 편차는 0이다 (또한, 만약 분포가 단봉 분포라면 평균값 = 중소수 = 복수) [2].

첨도와 왜도

  • 그래서 우리는 다음과 같은 거래 법칙을 얻었습니다. 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의 블로그에서 가져온 사진입니다.