マルチタイムフレームボリンジャー 検証その2
さて、前回設定した仕様に基づいてバックテストを行ってみました~
けど、ちょっとだけ変更してます
【パラメーター】
±2σ使用
標準偏差の観測区間は 20日と60日 に設定
トレンド区分けは歪度を参照 ±0.3~±0.5で調整 ⇒ 外しました
【シグナル化】
トレンド区分けに従って、観測期間の異なる標準偏差のクロスを
シグナル化に使用する
⇒標準偏差のクロスだけを採用しますた詳細は↓
短期標準偏差下限ライン が 長期標準偏差下限ライン を下回る ⇒ ショートスタンス
短期標準偏差上限ライン が 長期標準偏差上限ライン を上回る ⇒ ロングスタンス
でシグナル条件は、
ショートスタンスで終値が短期標準偏差下限を下回る ⇒ ショートシグナル
ロングスタンスで終値が短期標準偏差上限を上回る ⇒ ロングシグナル
でエントリーのタイミングは、
⇒ シグナル発生後、翌日にエントリー
【決済】
思惑がはずれm、再度±2σを逆方向に割った場合強制決済
条件適合後、翌日執行 ⇒ ↓の条件に変更しますた
短期標準偏差下限ライン が 長期標準偏差下限ライン を上回る ⇒ ショートイグジット
短期標準偏差上限ライン が 長期標準偏差上限ライン を下回る ⇒ ロングイグジット
変更の理由は、そこまで条件を厳しくしなくても最初は行けそうだ
と思われたためです。条件の意味合いとしては、
短期の標準偏差は価格追尾性には優れても正確性に欠ける
長期の標準偏差は正確性には優れていても価格追尾性に欠ける
ということで、
長期標準偏差の上下限内を通常モード、上限上をロングモード、下限下をショートモード
として、
短期標準偏差の動きを方向性
に設定しますた。いわゆる短長標準偏差の差を概念としてロジック化
した感じです。シンプルなロジックということで上記の条件でテストして
みます!
【日経平均】 (o^-')b
Net Profit 38393.19
Profit Factor 4.158113844
Max Close To Close Drawdown -2545
Total # of Trades 63
Total # of Open Trades 0
Number Winning Trades 43
Number Losing Trades 20
% Profitable 68.25396825
Avg Trade (win & loss) 609.4157143
Average Winning Trade 1175.585814
Average Losing Trade -607.85
Ratio Avg Win / Avg Loss 1.934006439
Largest Winning Trade 7396.8
Largest Losing Trade -2545
【ドル円 24hを日足としました】 (^ε^)♪
Net Profit 900600
Profit Factor 2.659786215
Max Close To Close Drawdown -121700
Total # of Trades 62
Total # of Open Trades 0
Number Winning Trades 35
Number Losing Trades 27
% Profitable 56.4516129
Avg Trade (win & loss) 14525.80645
Average Winning Trade 41234.28571
Average Losing Trade -20096.2963
Ratio Avg Win / Avg Loss 2.05183508
Largest Winning Trade 159000
Largest Losing Trade -52600
※金額ベースになってます倍率は1万倍
【ダウ】 ・°・(ノД`)・°・
【パフォーマンス】 測定期間 1982年~2010年
Net Profit -3418.56
Profit Factor -0.608520443
Max Strategy Drawdown -5785.65
Total # of Trades 62
Total # of Open Trades 0
Number Winning Trades 27
Number Losing Trades 35
% Profitable 43.5483871
Avg Trade (win & loss) -55.13806452
Average Winning Trade 196.8092593
Average Losing Trade -249.4974286
Ratio Avg Win / Avg Loss -0.788822796
Largest Winning Trade 1285.11
Largest Losing Trade -1104
【WTI】 (;^_^A
Net Profit 3576071
Profit Factor 1.784514543
Max Strategy Drawdown -2167117.7
Total # of Trades 63
Total # of Open Trades 0
Number Winning Trades 34
Number Losing Trades 29
% Profitable 53.96825397
Avg Trade (win & loss) 56763.03175
Average Winning Trade 239246.8941
Average Losing Trade -157183.5655
Ratio Avg Win / Avg Loss 1.522085934
Largest Winning Trade 2235277.8
Largest Losing Trade -1257693.9
※金額ベースになってます倍率は千倍
【10 Year note】 A=´、`=)ゞ
Net Profit 4.2
Profit Factor 1.584144645
Max Close To Close Drawdown -2.43
Total # of Trades 63
Total # of Open Trades 1
Number Winning Trades 33
Number Losing Trades 30
% Profitable 52.38095238
Avg Trade (win & loss) 0.066666667
Average Winning Trade 0.345151515
Average Losing Trade -0.239666667
Ratio Avg Win / Avg Loss 1.440131496
Largest Winning Trade 1.04
Largest Losing Trade -1.34
という感じでデフォルトに比べてどうでしょうか??
まあトレード数が少ないのはしょうがないけど、厳しめの条件
じゃなくてもダウ以外は正の期待値があり申した。
観測期間が違う標準偏差と、互いのデメリットを補う形での役割
決めをしただけですが効果はあると思われます。やっぱり、指標
を使う場合は、指標の意味合いを正しく捉えて組み合わせることが
重要ですな。
歪度を使って上下トレンド判定を加えたなら、さらにトレードを細分化
できて自由自在なトレードが可能ってのは既に見え隠れすまする。
よって、次は、
マルチタイムフレームボリンジャー歪度バージョン
でもテストしてボリンジャーバンドから卒業しようと思いま~す!!
期待したい方は↓クリック宜しくね♪
にほんブログ村
【今回使用したロジック】
Inputs:SMAtime(20),LMAtime(60),LastPrice(close),Sigma(2);
Vars:count1(0),count2(0),MAsum(0),MA(0),Avedissum1(0),dev(0),nBollinUp(0),nBollinDown(0),
count12(0),count22(0),MAsum2(0),MA2(0),Avedissum12(0),dev2(0),nBollinUp2(0),nBollinDown2(0);
Array:Avedis1[500](0);
{MA and Deviation Setting1}
MAsum=0;
For count1=1 to SMAtime-1 begin
MAsum=close[count1]+MAsum;
End;
If currentbar>SMAtime+1 then MA=(MAsum+LastPrice)/SMAtime Else MA=0;;
{Deviation}
Avedissum1=0;
For count2=1 To SMAtime-1 begin
Avedis1[count2]=Square(close[count2]-MA);
Avedissum1=Avedissum1+Avedis1[count2];
End;
Avedissum1=square(LastPrice-MA)+Avedissum1;
If currentbar>SMAtime+1 then dev=Squareroot(Avedissum1/SMAtime) Else dev=0;
nBollinUp=MA+dev*Sigma;
nBollinDown=MA-dev*Sigma;
{MA and Deviation Setting12}
MAsum2=0;
For count12=1 to LMAtime-1 begin
MAsum2=close[count12]+MAsum2;
End;
If currentbar>LMAtime+1 then MA2=(MAsum2+LastPrice)/LMAtime Else MA2=0;;
{Deviation}
Avedissum12=0;
For count22=1 To LMAtime-1 begin
Avedis1[count22]=Square(close[count22]-MA2);
Avedissum12=Avedissum12+Avedis1[count22];
End;
Avedissum12=square(LastPrice-MA2)+Avedissum12;
If currentbar>LMAtime+1 then dev2=Squareroot(Avedissum12/LMAtime) Else dev2=0;
nBollinUp2=MA2+dev2*Sigma;
nBollinDown2=MA2-dev2*Sigma;
{Trade Setting}
If close>nBollinUp and nBollinUp crosses over nBollinUp2 then buy next bar at market;
If close<nBollinDown and nBollinDown crosses under nBollinDown2 then sellshort next bar at market;
{Cut Setting}
If marketposition=1 and nBollinUp crosses under nBollinUp2 then sell next bar at market;
If marketposition=-1 and nBollinDown crosses over nBollinDown2 then buytocover next bar at market;
クリックの方も宜しく♪
(#⌒∇⌒#)ゞ
にほんブログ村




