*

超シンプルな自動売買プログラム(8) 3点チャージ変法

公開日: : 最終更新日:2015/02/24 マネー

3点チャージ法という明地文男さんの開発した株式投資法があります。

昔ちょっと利用したことがあります。

大きく下げたときの買い(グランビルの”買い4”ですかね)を行う逆張り法です。

買いの条件は次の通りです。

・ 26日移動平均線からの乖離率 ≦ -15%

・ 14日 RSI ≦ 25

・ 25日ボリュームレシオ ≦ 70

売りの条件は

・ 26日移動平均線からの乖離率 ≧ -15%

・ 14日 RSI ≧ 70

・ 25日ボリュームレシオ ≧ 250

とします。

これを FX に応用しようと思ったのですが、FX では出来高がないのでボリュームレシオが計算できません。

ティックで代用するのも正確でありません。

どうせなので、この前作った Chande’s Momentum Oscillator シャンデ・モメンタム・オシレーター (CMO) を使わせていただくことに。

CMO が 30以下、70以上というふうに代用することにします(適正値はバックテストでも出しましたが大きく変わらないのでこの値を採用)。

もう一つ問題が。

乖離率が 15% を超えるなんて事態は FX では起こりません。国家倒産とか起これば別ですが。

そこで乖離率は可変にしてバックテストで適正値を決めることにしました。

さらにもう一つ問題が。

決済条件は任意ということで、決められておりません。

しょうがないので固定ロスカット、固定プロフィット、HLバンドトレーリングストップでやってみることにします。

固定ロスカット、固定プロフィットは影響がないようですが、念のため残しました。

乖離率が 1/3 になるくらいまでとかのほうがいいかもしれないと思ったので、それも加えました。

これらを組み込んで、EA を自作してみました。

次のようなところで売買が発生します。うまくいっているようです。

結果 ドル円 30分足 2014/1/1 – 2015/1/1

プロフィットファクターや勝率はそこそこいいです。

他の通貨ペアもやってみましたが、どうも金額的にはたいしたことになりません。

逆張りなのでどかんとは稼げないのはわかっていますが・・・

最大ドローダウンは低いのですが、取引数が少ないことが問題でしょうね。

2014/4/9 から 2014/10/14 まで全く売買がないです。このような”逆張り好機”がそんなに訪れないのが原因でしょう。

株なら銘柄数がFXよりはるかに多いので取引回数が多くなるでしょうから、株では非常に有効なのでしょうが。

プログラムソース

//
// yasciiSimple07
// 3点チャージ法
// cmo_s.mq4 が必要

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

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

extern int MA_period = 26;
extern int RSI_period = 14;
extern int Fast_period =10;

extern bool LastBarOnly = false; 
extern int  CMO_Range   = 25; 
extern int  Sig_Period =9;

extern double kai1level = 1.9 ;
extern double kai2level = -0.6 ;

extern double ILC = 20.0 ;
extern double TP = 40.0 ;

//変数の設定//
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()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   double sma26 = iMA( NULL, 0, MA_period, 0, 0, PRICE_CLOSE, 1) ;
   double kairi1 = 100.0 * (Close[1] - sma26) / sma26 ;
   double rsi14 = iRSI( NULL, 0, RSI_period, PRICE_CLOSE, 1) ;
   double cmo25 = iCustom( NULL, 0, "cmo_s" , LastBarOnly , CMO_Range , Sig_Period , 0, 1 ) ;

   double FastHH2 = Low[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 2)];
   double FastLL2 = High[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 2)];

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;
   double tp = TP;
   if(( Digits ==3 ) ||(Digits ==5)) tp = tp*10.0 ;

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();   
   if( (Close[1] < OOPL - lc*Point || Close[1] > OOPL + tp*Point || Close[1] < FastHH2 || kairi1 > kai2level /3.0)
      && (Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット
   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if( (Close[1] > OOPS + lc*Point || Close[1] < OOPS - tp*Point || Close[1] > FastLL2 || kairi1 < kai1level /3.0
)
       && (Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if( kairi1 <= kai2level && rsi14 <= 25.0 && cmo25 <= 30.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,Blue);
    }

   //売りエントリー
   if( kairi1 >= kai1level && rsi14 >= 70.0 && cmo25 >= 70.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,Red);     
    } 

   return(0);
  }

###

関連記事

富裕層ビジネス 成功の秘訣 / 中谷 彰宏

富裕層ビジネス 成功の秘訣 中谷 彰宏 ぜんにち出版 2006-07

記事を読む

FXブレイクアウトシステムのテスト

ブレイクアウトシステムは今まで食わず嫌いでしたが、試作してみました。 ルールはシンプル。

記事を読む

ディナポリ手法で利用するDMA (3) HLバンドトレイリングストップ

前回の記事「ディナポリ手法で利用するDMA」で、ディナポリ移動平均線を使った自動売買プログラムを作り

記事を読む

[FX] 2015/4/13 EA 緊急停止 トレンドが消失

昨日は週明けの月曜日ということもあり、通常よりも夜間の仕事が多めで、夜12時ごろまで仕事をしてい

記事を読む

一目均衡表(関数版)

MetaTrader4 に付属している一目均衡表のソースを見てみるとずいぶん複雑なので、関数を使

記事を読む

2015/4/16 逆トレンドは順調に進行中

「 2015/4/15 逆トレンドは一休み?」の続きです。 GBPUSD 1時間足です。

記事を読む

【FX】 久々にプログラム書いてみる(日足ブレイクアウト手法)

Youtube で日足(ひあし)の手法を披露あるいは検証している方が多いです。 日足のいいとこ

記事を読む

貯蓄型の生命保険

主に使っている銀行口座(普通預金口座)の残高が 8ケタになっていたので、相続目的で生命保険に入ること

記事を読む

クラウドフィルタ考案

一目均衡表は大好きですが、それで使われるミステリアスな雲をフィルタにしてみようと思いつきました。

記事を読む

【FX】2024年4月第4週スタート

FX トレードは 自動売買プログラムを入れ替えて、今月(2024年4月)から再出発をしました。

記事を読む

Message

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

ママ投資家が育休中に1億貯めた株式投資 / ちょる子

★★★☆☆ 育休中にスマホで1億円を稼いだママ投資家として有

AI絵師の締め出し

最近、イラスト投稿サイトにおける AI 作成物の禁止が話題になっている

日本史で遊ぶ

ChatGPT などの AI に こそこそと「プロンプト」なる呪文(日

最後は文字で

たとえば 動画を観るとき、そのまま観っぱなしにしていると だんだん記憶

なぜ人気なのか、フェルメール

フェルメールの生涯と特徴 ヨハネス・フェルメール(1632年 - 1

→もっと見る

  • 2026年7月
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • アクセスカウンター
PAGE TOP ↑