日別アーカイブ: 2014年12月31日

魔術師に学ぶFXトレード―プロ化する外国為替市場への普遍的テクニック / 中原 駿

魔術師に学ぶFXトレード―プロ化する外国為替市場への普遍的テクニック (現代の錬金術師シリーズ) 魔術師に学ぶFXトレード―プロ化する外国為替市場への普遍的テクニック (現代の錬金術師シリーズ)

中原 駿

パンローリング 2008-05-16

売り上げランキング : 73936

Amazonで詳しく見る

by G-Tools

★★★☆☆(役に立たないものの検証が多すぎ!)

タートルズなどの古典的有名手法を検証してみましたという本。

古典的手法はほとんど優位性がないという恐るべき結果です。

とくにブレイクアウト手法は広く知られてから全く無効になってしまった、と書いてあり、もはや誰も使えませんね。ご愁傷さまです。

唯一使えそうかな、と思ったのは 「ADXとオシレーター」のところで紹介されていた ADX をレンジとトレンドの判定に使う方法。

ADX が上昇しているときをトレンド相場とするのですが、これは えつこチャートでも重要視している使い方です。

この本では ADX とストキャスティクスを組み合わせて売買サインに使っています。

私は ADX と VQ、ADXと RVI の組み合わせのほうがよさそうな気がするのですが。

ヒマになったら検証してみます。

###

MACDバーシステムの改良(4) 早めの利益確定

あの自動売買システム、しつこく変更しています。

上が変更前。下が変更後。 若干違いますね。

なにを変更したかというと、利益確定(定額固定)の機能をつけ、それに合わせてロスカットの値も最適化しました。

利益が出ているのに反転して負けトレードになっているのが結構あるのでは、と思ってつけ加えました。

今のところテストしやすいようにという一時的な理由で、ドル円専用になりました。

変更後は、

  1. プロフィットファクター 1.21 ⇒ 1.23
  2. 勝率 26.39% ⇒ 27.20%
  3. 総損益 +15337ドル⇒ + 18028ドル(元手 10000ドル)
  4. 最大ドローダウン 27.89% ⇒ 21.45%

といずれも改善。

22ヶ月で 2.8倍(年利 75%)を達成できるようになりました。

これからはパラメータの最適化をやりながら、トレーリングストップでも加えますかね。

関連記事

MACDバーシステムの改良(3) あれれまさかの結末?

 

プログラムソース

//
// yasciiMACD_3cross04.mq4
//                TakeProfit & LossCut(ドル円専用)
//

//マジックナンバーの定義
#define MAGIC  42551        

//パラメーターの設定//
extern double Lots = 1.0;     //取引ロット数
extern int Slip = 10;         //許容スリッページ数
extern string Comments =  ""; //コメント

extern int Fast_EMA_Period1 = 6;
extern int Slow_EMA_Period1 = 19;
extern int Signal_Period1 = 6;
extern int Fast_EMA_Period2 = 12;
extern int Slow_EMA_Period2 = 26;
extern int Signal_Period2 = 9;
extern int Fast_EMA_Period3 = 18 ; // 19;
extern int Slow_EMA_Period3 = 33 ; // 39;
extern int Signal_Period3 = 11; // 9;

extern double LC = 1.0 ; // Loss Cut (円)
extern double TP = 1.1 ;  // Take Profit (円)

//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0;   //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0;   //売りポジションの決済注文の結果をキャッチする変数

double   MACD_MAIN1_1 ;
double   MACD_SIGN1_1 ;
double   MACD_Value1_1 ;

double   MACD_MAIN1_2 ;
double   MACD_SIGN1_2 ;
double   MACD_Value1_2 ;

double   MACD_MAIN1_3 ;
double   MACD_SIGN1_3 ;
double   MACD_Value1_3 ;

int OS ;

int start()
  {
    if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;
   MACD_MAIN1_1 = iMACD(NULL, 0, Fast_EMA_Period1 , Slow_EMA_Period1, Signal_Period1, PRICE_CLOSE, MODE_MAIN, 1 );
   MACD_SIGN1_1 = iMACD(NULL, 0, Fast_EMA_Period1 , Slow_EMA_Period1, Signal_Period1, PRICE_CLOSE, MODE_SIGNAL, 1 );
   MACD_Value1_1 = MACD_MAIN1_1 - MACD_SIGN1_1 ;

   MACD_MAIN1_2 = iMACD(NULL, 0, Fast_EMA_Period2 , Slow_EMA_Period2, Signal_Period2, PRICE_CLOSE, MODE_MAIN, 1 );
   MACD_SIGN1_2 = iMACD(NULL, 0, Fast_EMA_Period2 , Slow_EMA_Period2, Signal_Period2, PRICE_CLOSE, MODE_SIGNAL, 1 );
   MACD_Value1_2 = MACD_MAIN1_2 - MACD_SIGN1_2 ;

   MACD_MAIN1_3 = iMACD(NULL, 0, Fast_EMA_Period3 , Slow_EMA_Period3, Signal_Period3, PRICE_CLOSE, MODE_MAIN, 1 );
   MACD_SIGN1_3 = iMACD(NULL, 0, Fast_EMA_Period3 , Slow_EMA_Period3, Signal_Period3, PRICE_CLOSE, MODE_SIGNAL, 1 );
   MACD_Value1_3 = MACD_MAIN1_3 - MACD_SIGN1_3 ;

   OS = OrderSelect(Ticket_L, SELECT_BY_TICKET);  

   //買いポジションのエグジット
   if(    ((MACD_Value1_1 <0 && MACD_Value1_2 <0) || ( OrderOpenPrice()-LC >= Close[1] ) || ( OrderOpenPrice()+TP <= Close[1] ))
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   OS = OrderSelect(Ticket_S, SELECT_BY_TICKET); 

   //売りポジションのエグジット
   if(    ((MACD_Value1_1 >0 && MACD_Value1_2 >0) ||( OrderOpenPrice()+ LC <= Close[1] ) || ( OrderOpenPrice()-TP >= 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(    MACD_Value1_1 >0 && MACD_Value1_2 >0 && MACD_Value1_3 >0 && MACD_MAIN1_3 >0
       && ( 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(    MACD_Value1_1 <0 && MACD_Value1_2 <0 && MACD_Value1_3 <0 && MACD_MAIN1_3 <0
       && ( 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);
  }

MACDバーシステムの改良(3) あれれまさかの結末?

残念なお知らせ

昨日紹介したシステムですが、本日チェックしたところ、どうも残念な結果が。

どうもヒストリカルデータが狂っていたようで、再度データを取得して検証してみました。

不整合チャートエラーが大幅に減少したので、やはりデータがおかしかったようです。

取得前

取得後

ドル円の 1時間足ですが、大幅に成績は悪化。

その後も計測を繰り返しほぼ安定した結果は、

  1. プロフィットファクター 1.21
  2. 勝率 26.39%
  3. 総損益 +15337ドル(元手 10000ドル)

まあ、22ヶ月で 2.53倍にはなるのですが、最大ドローダウンが 27.89% では途中で運用が危ぶまれるレベル。

パラメータの最適化をやり直します。

関連記事

###

FXトレーダーの大冒険 / ロブ・ブッカー ブラッド・フリード

FXトレーダーの大冒険 (ウィザードブックシリーズ) FXトレーダーの大冒険 (ウィザードブックシリーズ)

ロブ・ブッカー ブラッド・フリード

パンローリング 2010-01-19

売り上げランキング : 124822

Amazonで詳しく見る

by G-Tools

★★★★☆

ロブ・ブッカーは日本でも活躍するアメリカ人FXコーチ。

彼の本はほかにも2冊ほど読みました。

この本は小説で、全くの素人がお金目当てに FX を始めたらどうなってしまうのかを描き、そして運良くその素人がもし投資の真髄に目覚めたらどうなっていくのかというお話ですね。

成功したトレーダーたちが非常に親切なのが意外かつご都合主義的ですが、小説なのでOK。

一口で言えば、あのベストセラーの『仕事は楽しいかね?』などと同じく、億万長者たちが貧乏ながらも真摯な若者を導くという類型的なお話です。

結局主人公はロブのようなアナリストっぽいトレーダーに成長していきます。

手法よりも哲学、マネーマネージメントが大切だということを教えてくれます(もっともこの本の手法は実際にはほとんど参考にもなりません)。

哲学、マネーマネージメントなどをわかっていないと9割の人は消えていく運命なんですね。

*

著者のロブはバックテストがとても得意で、システムを作り上げることに力を注いでおり、トレード自体は重視していません。

というか本当のトレード法はシステムを作り上げることだというわけでしょう。

実際のトレードはパソコンにやらせたほうが人間にまかすよりうまくいくことが多いわけですから。

ということでお手本にしたい著者が書いているということで少々点が甘くなりますが、FX で困っている人はぜひ読むことをお勧めします。

###