Diunggah oleh: EasyTrader
Ini adalah strategi dagangan yang dilakukan dengan menggunakan kurtosis dan skewness dalam pembahagian data statistik. Apabila data menunjukkan trend dan trend berpotensi positif, kita melakukan lebih banyak. Apabila data menunjukkan trend dan trend berpotensi negatif, kita melakukan kosong. Apabila trend berlaku pembalikan, kita meletakkan kedudukan rata.
Jadi, bagaimana kita menentukan trend dan intensiti trend? Mari kita lihat semula definisi puncak dan kemiringan.
Pertama, kita lihat definisi pembahagian normal.
Pengedaran: keadaan pengedaran di mana semua nilai dalam pembolehubah muncul sebanyak kali, dengan paksi melintang sebagai nilai pembolehubah, paksi tegak sebagai grafik koordinat frekuensi yang muncul. Pengedaran normal: juga dikenali sebagai pengedaran Gaussian
Pengedaran normal standard: Grafik pengedaran normal yang digambarkan sebagai unit asas pada paksi koordinat yang berpusat pada nilai purata (mean) dan penyimpangan standard (standard deviation).
M ± 1 s mengandungi 68.26% individu dari keseluruhan kumpulan sampel.
M ± 2 s mengandungi 95.44% individu dari keseluruhan kumpulan sampel.
M ± 3 s mengandungi 99.74% individu dari keseluruhan kumpulan sampel.
95% individu jatuh antara m ± 1.96s.
99% daripada individu jatuh antara m ± 2.58s.
Dalam statistik, puncak (Kurtosis) mengukur kedudukan puncak dalam pengedaran peluang kepada pembolehubah rawak dalam bilangan riil. Tinggi puncak bermaksud peningkatan perbezaan sudut disebabkan oleh perbezaan ekstrem pada frekuensi rendah yang lebih besar atau lebih kecil daripada purata.
Puncak (kurtosis) adalah satu kuantiti statistik untuk menggambarkan bentuk pembahagian satu set data. Puncak pembahagian biasa adalah 3, jadi kita memanggil puncak yang lebih besar daripada 3 sebagai puncak, yang menunjukkan pembahagian data yang lebih tertumpu dan lebih tenang daripada pembahagian biasa. Kita menggunakan puncak yang kurang daripada 3 sebagai puncak rata, yang menunjukkan pembahagian data yang lebih lancar daripada pembahagian normal. Di sini kita merujuk kepada puncak yang sebenarnya dikurangkan nilai selepas 3.
Skewness menggambarkan simetri pembahagian data, atau kedudukan mode. Skewness sama dengan 0 menggambarkan simetri sempurna. Statistik ini juga memerlukan perbandingan dengan pembahagian biasa: skewness lebih besar daripada 0 menunjukkan bahawa array menunjukkan kemiripan ke kanan berbanding dengan pembahagian biasa, yang menunjukkan ekor panjang di sebelah kanan dan nilai ekstrimnya lebih banyak di sebelah kanan; sebaliknya, skewness yang menunjukkan ekor panjang di sebelah kiri dan nilai ekstrimnya lebih banyak di sebelah kiri; di pasaran kewangan, skewness lebih besar daripada 0 dapat dijelaskan sebagai kecenderungan data cenderung ke arah kemiripan, skewness kurang daripada 0 dapat dijelaskan sebagai kecenderungan data cenderung ke arah kemiripan ke arah penurunan.
Dalam teori kebarangkalian dan statistik, bias mengukur asimetri dalam pengedaran peluang bagi pembolehubah rawak yang sebenar. Nilai bias boleh positif, negatif atau bahkan tidak dapat ditakrifkan. Secara kuantitatif, bias negatif bermaksud bahawa ekor di sebelah kiri fungsi ketumpatan peluang lebih panjang daripada yang di sebelah kanan, dengan majoriti nilai (termasuk purata) berada di sebelah kanan purata.
Di Malaysia, terdapat dua jenis kecenderungan:
Oleh itu, kita menyimpulkan peraturan perdagangan berikut: Apabila puncak kurang daripada 0 (pasaran berada dalam pasaran trend), kemiringan lebih besar daripada N (trend meningkat), lakukan lebih; Apabila puncak kurang daripada 0 (pasaran berada dalam pasaran trend), kemiringan kurang daripada M (trend menurun), kosongkan;
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 ;
Dibaharui dari blog Faruto