目次
概要
スキャルピングの手法を扱った『最強のFX 1分足スキャルピング』(ぶせな)という本があります。
この本は、スキャルピングの手法なのに、週に1回程度しか取引するチャンスがないというコメントがAmazonのレビューに記載されています。
この記事では、これが本当かどうか確認します。
確認方法
1分足で、エンベロープの偏差0.1%のラインにどれだけタッチするか調べます。
エントリールール
・エンベロープの偏差0.1%のラインにどれだけタッチしたら、逆張りする。
エクジットルール
・平均移動線に交差する。
※この本で紹介されている手法は、損切やエントリータイミングに条件はあります。
ただ、取引チャンスがどれくらいあるか調べるには、このトレードルールで十分かと思われます。
※このトレードルールだと、損切が設定されていないので、損する時はがっつり損します。
ソースコード
※以下のソースコードは、
『FXメタトレーダー実践プログラミング (現代の錬金術師シリーズ)』(豊嶋久道)
で紹介されているライブラリーを使用しています。
そのため、コピペだと動きません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
// マイライブラリー #include <MyLib.mqh> // マジックナンバー #define MAGIC 20094060 #define COMMENT "ぶせな本(取引頻度確認用)" // 外部パラメータ extern double Lots=0.1; extern int Slippage=3; // 外部パラメータ extern ENUM_APPLIED_PRICE applied_price=PRICE_CLOSE; extern ENUM_MA_METHOD ma_method=MODE_EMA; extern int ma_period=20; //+------------------------------------------------------------------+ int EntrySignal(int magic) { // オープンポジションの計算 double pos=MyCurrentOrders(MY_OPENPOS,magic); double envelope_P10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_UPPER,0); double envelope_M10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_LOWER,0); //closeがenvelope_P10より高い bool isOverP10=Close[0]>envelope_P10; bool isUnderM10=Close[0]<envelope_M10; bool BuySignal=isUnderM10; bool SellSignal=isOverP10; int ret=0; // 買いシグナル if(pos<=0 && BuySignal) ret=1; // 売りシグナル if(pos>=0 && SellSignal) ret=-1; return(ret); } // エグジット関数 void ExitPosition(int magic) { // オープンポジションの計算 double pos=MyCurrentOrders(MY_OPENPOS,magic); double ma=iMA(NULL,0,ma_period,0,ma_method,applied_price,0); double envelope_P10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_UPPER,0); double envelope_M10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_LOWER,0); //平均移動線が交差する bool isOverMa=Close[0]>ma; bool isUnderMa=Close[0]<ma; int ret=0; //if(pos < 0 && 売りポジションの決済シグナル) ret = 1; if(pos<0 && isUnderMa) ret=1; //if(pos > 0 && 買いポジションの決済シグナル) ret = -1; if(pos>0 && isOverMa) ret=-1; // オープンポジションの決済 if(ret!=0) MyOrderClose(Slippage,magic); } // スタート関数 int start() { // 売買ポジションのエグジット ExitPosition(MAGIC); // エントリーシグナル int sig_entry=EntrySignal(MAGIC); // 買い注文 if(sig_entry>0) { MyOrderClose(Slippage,MAGIC); MyOrderSend(OP_BUY,Lots,Ask,Slippage,0,0,COMMENT,MAGIC); } // 売り注文 if(sig_entry<0) { MyOrderClose(Slippage,MAGIC); MyOrderSend(OP_SELL,Lots,Bid,Slippage,0,0,COMMENT,MAGIC); } return(0); } //+------------------------------------------------------------------+ |
結果
3年間で4880回の取引チャンスがあります。
1年間で約1626回の取引チャンスがあります。
1週間に約31回の取引チャンスがあります。
1日に約6回の取引チャンスがあります。
1週間に1回程度しか取引チャンスがないというのはさすがに言いすぎな気がします。
おまけ
※最初間違えて、逆張りでなく順張りで確認してしまったので、おまけとして結果を載せておきます。
トレードルール
エントリールール
・エンベロープの偏差0.1%のラインにどれだけタッチしたら、順張りする。
エクジットルール
・平均移動線に交差する。
ソースコード
※以下のソースコードは、
『FXメタトレーダー実践プログラミング (現代の錬金術師シリーズ)』(豊嶋久道)
で紹介されているライブラリーを使用しています。
そのため、コピペだと動きません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
// マイライブラリー #include <MyLib.mqh> // マジックナンバー #define MAGIC 20094060 #define COMMENT "ぶせな本(取引頻度確認用)" // 外部パラメータ extern double Lots=0.1; extern int Slippage=3; // 外部パラメータ extern ENUM_APPLIED_PRICE applied_price=PRICE_CLOSE; extern ENUM_MA_METHOD ma_method=MODE_EMA; extern int ma_period=20; //+------------------------------------------------------------------+ int EntrySignal(int magic) { // オープンポジションの計算 double pos=MyCurrentOrders(MY_OPENPOS,magic); double envelope_P10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_UPPER,0); double envelope_M10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_LOWER,0); //closeがenvelope_P10より高い bool isOverP10=Close[0]>envelope_P10; bool isUnderM10=Close[0]<envelope_M10; bool BuySignal=isOverP10; bool SellSignal=isUnderM10; int ret=0; // 買いシグナル if(pos<=0 && BuySignal) ret=1; // 売りシグナル if(pos>=0 && SellSignal) ret=-1; return(ret); } // エグジット関数 void ExitPosition(int magic) { // オープンポジションの計算 double pos=MyCurrentOrders(MY_OPENPOS,magic); double ma=iMA(NULL,0,ma_period,0,ma_method,applied_price,0); double envelope_P10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_UPPER,0); double envelope_M10=iEnvelopes(NULL,0,ma_period,ma_method,0,applied_price,0.10,MODE_LOWER,0); //平均移動線が交差する bool isOverMa=Close[0]>ma; bool isUnderMa=Close[0]<ma; int ret=0; //if(pos < 0 && 売りポジションの決済シグナル) ret = 1; if(pos<0 && isOverMa) ret=1; //if(pos > 0 && 買いポジションの決済シグナル) ret = -1; if(pos>0 && isUnderMa) ret=-1; // オープンポジションの決済 if(ret!=0) MyOrderClose(Slippage,magic); } // スタート関数 int start() { // 売買ポジションのエグジット ExitPosition(MAGIC); // エントリーシグナル int sig_entry=EntrySignal(MAGIC); // 買い注文 if(sig_entry>0) { MyOrderClose(Slippage,MAGIC); MyOrderSend(OP_BUY,Lots,Ask,Slippage,0,0,COMMENT,MAGIC); } // 売り注文 if(sig_entry<0) { MyOrderClose(Slippage,MAGIC); MyOrderSend(OP_SELL,Lots,Bid,Slippage,0,0,COMMENT,MAGIC); } return(0); } //+------------------------------------------------------------------+ |
結果
逆張りと比較して、順張りの方がよい結果がでました。
関連記事
- 『最強のFX 1分足スキャルピング』用のエンベロープのインジケーター
- 『最強のFX 1分足スキャルピング』(ぶせな)の手法が有効か検証する
- 『最強のFX 1分足スキャルピング』(ぶせな)の手法を改造する
~FXを始めてみませんか?~
XMは、口座を開設するだけで、3000円のボーナスが無料でもらえます。
資金はないけど、FXを試しに挑戦してみたい方でも大丈夫です。
(サイト主もXMを使用しています)
コメント