[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);
}
###
関連記事
-
”三菱東京UFJ銀行”をかたったメール詐欺
以下のようなフィッシング詐欺のメールが最近よく来ます。 ひっかからないようにご注意ください。
-
【FX】2本の EMA と 1本の CCI を使う EA
昨日の記事「2本の CCI をフィルタに使う EA」では、短期と中期の CCI を0より上か下かとい
-
RVI のクロスを使った逆張り系FX自動売買システム
RVI( relative vigor index )という指標は素直でわかりやすいなぁと前から
-
[FX] MACDマルチタイムフレーム 15分足用(1) 試作
以前、作った MACD のシステムは、短期、中期、長期の3つの MACD のクロスを利用したもの
-
【FX】2024年4月第4週スタート
FX トレードは 自動売買プログラムを入れ替えて、今月(2024年4月)から再出発をしました。
-
【FX】 スリーラインストライク EA
昨日の記事「スリーラインストライク」ですが、人間心理を表したプライスアクションなので確度が高いと言わ
-
ディナポリ手法で利用するDMA (3) HLバンドトレイリングストップ
前回の記事「ディナポリ手法で利用するDMA」で、ディナポリ移動平均線を使った自動売買プログラムを作り
-
【FX】2023年11月第2週中間決算
「2023年11月第1週中間決算」の続きです。 1週間前は 184347円だったので 23
-
医療費39兆2千億円 過去最高(4)
こちらは毎日新聞 2014年10月08日の記事ですが、 厚生労働省は8日、2012年度の国
-
[FX] Schaff Trend Cycle について(2)
以前の記事「Schaff Trend Cycle について 」の続きです。 Schaff Tr
- PREV
- ベスト・オブ・リスト
- NEXT
- [FX] 15分足スキャルピング自動運転プログラム