Создатель: EasyTrader
Это трейдинговая стратегия, которая применяет куртоз и скованность в распределении статистических данных. Когда данные являются тенденционными, и потенциальный тренд является положительным, мы делаем больше. Когда данные являются тенденционными, и потенциальный тренд является отрицательным, мы делаем пустые позиции.
Итак, как мы определяем тренд и его интенсивность? Давайте сначала рассмотрим определение вершин и отклонений.
Сначала давайте посмотрим на определение нормального распределения.
Распределение (distribution): распределение случаев появления всех чисел в переменных, представленное как число переменных по горизонтальной оси, а по горизонтальной - как координатная диаграмма по частоте появления. Нормальное распределение: также называемое распределением Гаусса (Gaussian distribution).
Стандартное нормальное распределение: нормальное распределение, изображаемое в среднем и стандартным отклонением в качестве базовой единицы оси координат.
m ± 1s содержит 68.26% из всех образцов.
m ± 2 s содержит 95.44% от всей пробной группы.
m ± 3 s содержит 99,74% из всей пробной группы.
95% особей находятся в диапазоне m ± 1.96s.
99% особей находятся в пределах m ± 2.58 с.
В статистике пик (Kurtosis) измеряет пик распределения шансов на реальные случайные переменные. Высокий пик означает увеличение дифференциации, вызванное крайним отклонением, большим или меньшим, чем средний, при низкой частоте.
Куртоз (kurtosis) - это показатель, показывающий форму распределения данных; пик нормального распределения равен 3; поэтому мы называем пик, который больше 3, пиком, что означает, что распределение данных более концентрировано и сдержанно, чем нормальное распределение. Мы называем пик, который меньше 3, плоским, что означает, что распределение данных более гладко, чем нормальное распределение. Здесь мы имеем в виду истинный пик минус значение после 3.
Склонность (skewness) представляет собой симметрию распределения данных, то есть местоположение среднего числа (mode) данных. Склонность, равная 0, представляет собой идеальную симметрию. Эта статистика также требует сравнения с нормальным распределением: склонность, большая, чем 0, указывает на то, что массив представляет собой правую сторону, которая представляет собой правый длинный хвост, и крайние значения более распространены на правой стороне; наоборот, с левой стороны, которая представляет собой левый длинный хвост, и крайние значения более распространены на левой стороне.
В вероятностной теории и статистике смещение измеряет асимметричность распределения вероятности реального случайного переменного. Значения смещения могут быть положительными, отрицательными или даже неопределяемыми. Количественно, смещение отрицательно означает, что хвост левой стороны функции плотности вероятности длиннее, чем правый, и что подавляющее большинство значений, включая средние, расположено справа от среднего.
Например, в Китае, в Китае, в Китае, в Китае.
Таким образом, мы можем сделать следующий вывод о правилах торговли: Когда пик меньше 0 (рынок находится в трендовом рынке), отклонение больше N (тенденция повышается), делать больше; Когда пик меньше 0 (рынок находится в трендовом рынке), отклонение меньше M (тенденция снижается), делать пусто;
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