[FX] 372手法について
公開日:
:
マネー
372手法 というのは 2ちゃんねる(現在は「5ちゃんねる」)で発表された FX の手法です。
原法は3つの隣り合った時間足のパラボリックSR(以下PSR)を使うシンプルな方法で、
- 買いエントリは3つの時間足の PSR が上向き
- 売りエントリは3つの時間足の PSR が下向き
- エグジットは2つ目の PSR が反転
というもの。
こちらの解説が詳しいです。⇒ [fx-ea-system-project.com]372手法
15分足がよいといいますが、3つの時間足を使ういわゆる 3MTF(マルチフレーム)は、{15分、30分、60分}の組み合わせが最も間隔が狭い(2倍&2倍)ので当然でしょうか。
時間足の間隔が広いとトレンドが反転してから PSR が反転するまでのタイムラグが大きすぎて、最初のおいしいところはもちろん第二波動以降も取りこぼしてしまいそう。
私はパラボリックに根本的な弱点があると思っているのですが、やってみました。
原法ではトレンドのあるときはもちろん利益が出るのですが、ロスが多すぎるなと感じました。
ということで、原法に 固定ロスカットとタイムフィルタ(トレンドのない時間帯を無視)、ACAOフィルタを加えました(これらはどれもつけないときより有効です)。
一目均衡表の雲を使ったフィルタもやってみましたが、ないほうがいいようでした。
2021/1/1-2021/5/15 ドル円 15分足 1万通貨
純益 321ドル、プロフィットファクター 2.31、勝率 41.05%、最大ドローダウン 0.49% とだいぶ改善されました。取引数も 95回とまずまず。
基本的にトレンドフォロワーなので、成績にムラがあります(相場に左右されやすい)。8連敗のときはちょっとへこむかも。
ユーロドル、ユーロ円もいいですね。これらはタイムフィルタでエントリ時間がずれるので併用もできます。
問題点
- PSRの向き
- エグジットが遅すぎ
「PSR自体の反転」でなく「PSRの向きの反転」で条件をつけるのはどうしても1本分よけいに遅れます(1本分ってこの場合 60分ですから)。
PSRは終値との位置関係が変わると反転するのですが、反転した後もPSRどうしの向きは変わらず、その次の足でようやく変わるからです。
そのため上の結果は次のように改変したあとのもの(プログラムソースは後述)です。
- 買いエントリは3つの時間足の PSR が終値より下
- 売りエントリは3つの時間足の PSR が終値より上
- エグジットは 最短時間足の PSR と終値との位置関係が反転
2つめの時間足での反転ではエグジットが遅すぎるので最短時間足での反転にしました。これで平均 30-15 =15分ほどエグジットが早くなりましたが、ヴィジュアルモードで検証してみるとまだまだ遅い印象です。
平均線とのクロスかストキャスの反転でエグジットしたほうがいいかもしれません(これらを採用した場合は再エントリにも制限をつける必要があるでしょうか)。
平均線とのクロスを採用するのならエントリにも平均線のクロスを使ってパラボリックなんか全く使わないほうがいいよという結果になりそうなので、今回はここでホコをおさめます。
結果
2ちゃんねるで発表された372手法はトレンドフォロワー系の手法です。
非常にわかりやすいという特長を持っています。
ただし、エントリはやや遅めで、エグジットも遅めです。これらの特徴は長大なトレンドにはいいときもあるものの、機会損失のほうが多そうです。
原法のままで使うのはオススメしませんが、いくつかの改変を加えるとなかなかいい結果になりそうです。
- 「PSR の向き」、「2つめの時間足の PSR反転でエグジット」などは改めたほうが格段によくなりました。
- タイムフィルタ、ACAOフィルタ、固定ロスカットは著しく結果を改善させてくれました。
- エグジットをもう少し早くすればさらに改善できると思われます。
パラボリックSR が嫌いな理由
パラボリックSR は私は嫌いですが、その理由はパラボリックSR の計算式にあります。
SAR=前日のSAR + AF×(EP -前日のSAR)
- AF(加速因子)ってなんやねん?
- AF って 0.02 から 0.2 までテキトーに変わるんかい!
- その適当な数値でこしらえた値を実際の価格と比べるって、アタマおかしいんと違う?
と思ってしまうのです。
プログラムソース(MT4用)
//マジックナンバーの定義
#define MAGIC 2021051601//パラメーターの設定//
extern double Lots = 0.1; //取引ロット数
extern int Slip = 10; //許容スリッページ数
extern string Comments = “ParabolicSR_3MTF_372”; //コメントextern double ILC = 3.0 ;
extern int in_time = 9; // 取引開始時間(0以上)サーバー時間であり、日本時間ではない
extern int out_time = 11; // 取引停止時間(24以下)サーバー時間であり、日本時間ではないextern bool ACAO = true ;
double acaoF ;//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0; //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; //売りポジションの決済注文の結果をキャッチする変数
int OS1 ;
int OS2 ;
double OOPL;
double OOPS;int start(){
int P = Period();
int Q=0;
int R=0;if(P==1){ Q=5; R=15;}
if(P==5){ Q=15; R=30;}
if(P==15){ Q=30; R=60;}
if(P==30){ Q=60; R=240;}
if(P==60){ Q=240; R=1440;}
if(P==240){ Q=1440; R=10080;}
if(P==1440){ Q=10080; R=43200;}double lc = ILC;
if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;
double Psar_p1=iSAR(NULL,0,0.02,0.2,1);
double Psar_q1=iSAR(NULL,Q,0.02,0.2,1);
double Psar_r1=iSAR(NULL,R,0.02,0.2,1);if (ACAO == true){
double AC_diff = iAC(NULL,0,1) – iAC(NULL,0,2);
double AO_diff = iAO(NULL,0,1) – iAO(NULL,0,2);
acaoF = AC_diff * AO_diff ;
}
else { acaoF = 1.0 ;}//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();if( ( Psar_p1 > Close[1] || ( OOPL – lc * Point >= Close[1] ) )
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}//売りポジションのエグジット
OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET);
OOPS = OrderOpenPrice();if( ( Psar_p1 < Close[1] ||( OOPS + lc * Point <= Close[1] ) )
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}//買いエントリー
if( Psar_p1 < Close[1] && Psar_q1 < Close[1] && Psar_r1 < Close[1]
// && Close[1] > cla1 && Close[1] > clb1
&& acaoF >0
&& (Hour() >= in_time && Hour() < out_time)
&& ( Ticket_L == 0 || Ticket_L == -1 )
&& ( Ticket_S == 0 || Ticket_S == -1 ))
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red);
}//売りエントリー
if( Psar_p1 > Close[1] && Psar_q1 > Close[1] && Psar_r1 > Close[1]
// && Close[1] < cla1 && Close[1] < clb1
&& acaoF >0
&& (Hour() >= in_time && Hour() < out_time)
&& ( Ticket_S == 0 || Ticket_S == -1 )
&& ( Ticket_L == 0 || Ticket_L == -1 ))
{
Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue);
}return(0);
}
###
関連記事
-
FX 2015/1/20 デモトレード
昨日 2015/1/20 のデモトレードでは円安が進行したので、3つの自作 EA が複数起動し、
-
【FX】Trend Following Gold という EA
私の作ったものではありませんが、Trend Following Gold という EA がありまして
-
簡単にできる宝くじ(のようなもの)
簡単にできる宝くじを考案しました。 私は週に2日だけ大阪府高槻市のオフィスに出ています。と
-
コワ~い不動産の話 / 宝島社編集部
コワ~い不動産の話 (宝島SUGOI文庫 A た 5-1) 宝島社編集部 宝
-
FX テストトレード 2014/11/11
本日もテストトレードのみ。ドル円です。 10:00 114.750
-
一目均衡表 改良の試み
前回の記事「超シンプルな自動売買プログラム(6) 簡単な一目均衡表」で紹介したプログラムを改良してみ
-
2020/10/28 アメリカ株3日連続の下げ
コロナがまたぶり返しているのと、大統領選直前ということでなのか、アメリカ株の「暴落」が3日連続してい
-
【FX】オーサムオシレーター(AO)による売買
オーサムオシレーター(Awesome Oscillator ; AO)という指標があります。
-
FX に対する向き合い方
外国為替取引(FX)に対する私の認識です。 個人の意見なので気に入らない人は無視してください。
-
日本高配当株ファンドの投資法
高配当株投資の魅力を教えてくれる本や Youtubeビデオはたくさんありますね。 高配当株とは配当
- PREV
- ベスト・オブ・リスト
- NEXT
- [FX] 15分足スキャルピング自動運転プログラム