*

MACDバーシステムの改良

公開日: : 最終更新日:2015/01/11 マネー

MACDバーを使った自動売買システム

昨日自作したプログラムですが、短期用、中期用、長期用の3つの MACD を同時に判断に使用するものです。

買いエントリ

3つのMACD全部がゴールデンクロス後 かつ 長期 MACD がゼロより上

売りエントリ

3つのMACD全部がデッドクロス後 かつ 長期 MACD がゼロより下

買い決済

短期、中期の MACD がデッドクロス後

売り決済

短期、中期の MACD がゴールデンクロス後

注意

買い増し、売り増しは行わない

ロスカットなし

結果 

2013年3月から昨日までの結果(ドル円1時間足)です。

1万ドルの口座が 22ヶ月で 2.2倍に増えています。

ただし、ロットは 10万通貨なのでレバレッジは10倍強となり、買い増し、売り増しは行っておりません。

もっとも、同じ時期のドル円相場は下のように 96円から120円まで上昇していたので、ドル定期預金でも 1.2倍+金利はいただけたようですね。

 

利益曲線とレートの曲線を比べますと、最初の円のところで、ジリ下げのときに損失がふくらみ大きなディップを作っています。

2つめの円のジリ上がりのところは買い発動できていないのか、利益曲線はフラットなままです。

この2つは長期の MACD のパラメータの変更でなんとかなるかもしれませんね。

3つめの円はレートが急降下してまた反転していますが、このシステムはうまく対応してくれたようです。生身の人間ならこうはうまくいきませんね。このあたりが自動売買の最もすばらしいところです。

改良版

長期の MACD のパラメータをいじらずに、ロスカットをもうけてディップを消すことに挑戦。

最適なロスカット値を決めるのに手間取りましたが、最初の2つのディップは消えて、同じ期間で 2.8倍と収益も増加しましたね。

最初の円のところは回避できたので、2つ目の円のところの問題を消すべく、次はパラメータの最適化を行うことにします。

関連記事

改良版(ロスカット付き)ソースコード

 

//
// yasciiMACD_3cross03.mq4
//                LossCut
//

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

//パラメーターの設定//
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 = 19;
extern int Slow_EMA_Period3 = 39;
extern int Signal_Period3 = 9;

extern double LossCut = 100.0 ;

//変数の設定//
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() - LossCut * 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;}
    }    

   OS = OrderSelect(Ticket_S, SELECT_BY_TICKET); 

   //売りポジションのエグジット
   if(    ((MACD_Value1_1 >0 && MACD_Value1_2 >0) ||( OrderOpenPrice() + LossCut * 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(    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);
  }

###

関連記事

日本は世界1位の政府資産大国 / 髙橋洋一

日本は世界1位の政府資産大国 (講談社+α新書) 高橋 洋一 講談社 2013-

記事を読む

【FX】もう一つの Fintokei の使い方

Fintokei のチャレンジを実行中ですが、Fintokei にはチャレンジ(試験)の不要なもう一

記事を読む

[FX] QQE の問題点

QQE は RSI のみから作られるオシレーター 前回の記事「PLATINUM TURBO FX

記事を読む

今買おうかと思っているファンド 楽天日本株トリプル・ベア

* どうです。この下がり具合。 「楽天日本株トリプル・ベア」というファンドで、デリバティ

記事を読む

【FX】トレンドフォローの利確にシャンデリア エグジット

トレンドフォローの自動売買プログラム(EA)で、いつも困るのが利益確定です。 どこまで伸びるかわか

記事を読む

日本の 60代で「貯蓄ゼロ」の割合が 18.3%とか

「60代で「貯蓄ゼロ」、割合はなぜこんなにも多いのか。」という LIMO の記事(著者:石津大希)が

記事を読む

SPHY(SPDR ポートフォリオ・ハイ・イールド債ETF)

SPDR ポートフォリオ・ハイ・イールド債ETF(略称 SPHY)という ETF があります。 楽

記事を読む

【FX】2024年2月集計

現在運用中の FX口座の2024年2月中の運用成績です。 1336.63$+153568円(と

記事を読む

[FX] 2015/5/7 また EA が沈黙

以前の記事「先週はGWの影響で忙しかった 」 でも書きましたが、 FX の EA を稼働させてい

記事を読む

[FX] 非対称クラウドフィルタの発表

新作のクラウドフィルタを製作したので発表します。 クラウドフィルタとは、一目均衡表の雲の中にあ

記事を読む

Message

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

iiyama WQHD モニター ディスプレイ 31.5インチ ProLite XB3270QSU-B1 注文

壊れたモニタの代わりにアマゾンで、「iiyama WQHD モニター

Acer製 ディスプレイ EB321HQUBbmidphx 31.5インチ WQHD(2560 x 1440)/IPS 逝く

2019年1月に買った Acer製 ディスプレイ EB321HQUBb

カード型データベースをつくってみる

MS-DOS時代から「知子の情報」という テキスト専用カード型データベ

月岡芳年版画519点セット

月岡芳年の版画519点セットです。Etsy.com で売ってい

no image
岩崎の由来

ワタシの姓の岩崎についてですが、名字由来net という昔からあるサイト

→もっと見る

  • 2026年10月
    月 火 水 木 金 土 日
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
  • アクセスカウンター
PAGE TOP ↑