*

超シンプルな自動売買プログラム(14) ハル移動平均線

公開日: : 最終更新日:2023/07/26 マネー

久々に「超シンプルな自動売買プログラム」シリーズを再開しますか。

ハル移動平均線

HUL移動平均線(HMA、Hull Moving Average) はアラン・ハル(Alan Hull)という人によって開発された移動平均線です。

ソースを見ると、このあたりがキモですね。

vect[x]=2*WMA(x, period/2) – WMA(x, period);

WMA は”終値の LWMA” を示し、vect は直近半分の期間の2倍から直近の値を引いたもので、これで直近の半分(後半)を重視する重み付けをしていますね。

period/2 って、デフォルトは period=15 なんで整数にならなくてもいいんですね?

で、最終的に計算される HMA ってのは vect のさらに LWMA(線形荷重移動平均線)を取ったものです。

LWMA ってのはそもそも直近を重視するものなんですが、それを2回も行って、その間に独自の直近の後半部重み付けを加えるという、「歪んだ2枚のバンズで崩れたパテを挟んだ」ような状態になったものがハル移動平均線ですね。

はんぱない加重方法ですネ。

で、表示するとこんなの。

上昇トレンドでは緑、下降トレンドでは赤に切り替わって表示されるように工夫されています。

ローソク足によくまとわりついていますね。

period が 15 と大きいのに、トレンド切り替えのタイムロスがほとんどありませんねぇ。

すごい・・・

ダウンロード> HMA.mq4

HMA を使った自動売買プログラム

さて、EA化しましょう。

超シンプルに、終値が HMA を上抜きしたら買い、下抜きしたら売りにします。

これだけだとドテンになってしまうので、私お得意の HLバンドトレーリングストップ、暴落対策、固定ロスカット、クラウドフィルタ、タイムフィルタをゴテゴテにつけます。

え、シンプルじゃない?

まあ、いいでしょ。

EURUSD 1時間足 2015/3/9-31

トレンディな相場ではなかなかいいですね。

そうでないときは・・・地獄?

補足

もっとシンプルにしますか。

クラウドフィルタとタイムフィルタを除いたらこうなります。

取引数が4倍に増えましたね。ただし、総損益は 1.5倍どまり。

関連記事

超シンプルな自動売買プログラム(13) 前週の平均値と順張り 時間特性

プログラムソース

//
// yasciiHMA01.mq4
//           HMA 使用(Downloadsフォルダに HMA.mq4 が必要)
// 

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

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

extern int Fast_period = 14 ;
extern double margin = 0.0 ;
int HL_Period = 14 ;

extern double ILC = 10.0 ;

extern int in_time = 10; // 取引開始時間
extern int out_time = 20; // 取引停止時間

int       Tenkan_sen=9;
int       Kijun_sen=26;
double    Senkou_span_b=52;

//変数の設定//
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 dir1 = iCustom(NULL, 0, "Downloads\\HMA",15,3,0,2,1);
   double dir2 = iCustom(NULL, 0, "Downloads\\HMA",15,3,0,2,2);

     double cla1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 3, Kijun_sen);
     double clb1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 4, Kijun_sen);

    double HH2 = Low[iHighest(NULL, 0, MODE_LOW, HL_Period, 2)];
    double LL2 = High[iLowest(NULL, 0, MODE_HIGH, HL_Period, 2)];

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

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
    OOPL = OrderOpenPrice();
    if(   ((Close[1] < dir1 && Close[2] > dir2)  || ( OOPL - lc*Point >= Close[1] ) || Close[1] < HH2) 
            && ( 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(   ((Close[1] > dir1 && Close[2] < dir2) || ( OOPS + lc*Point <= Close[1] ) || Close[1] > LL2) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {    
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;}
    }  

   //買いエントリー
   if( Close[1] > dir1 && Close[2] < dir2 
       && ( Close[1] > cla1 && Close[1] > clb1 )
       && ( 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( Close[1] < dir1 && Close[2] > dir2 
       && ( Close[1] < cla1 && Close[1] < clb1 )
       && ( 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);
  }

###

関連記事

オシレーターの解釈(数値判定)について

オシレーター系の評価には、「基準となる数値をどうとるか」 や「順張りととらえるかあるいは逆張

記事を読む

損するはずのない投資

下はみなさん大好き NISA 対象の円建て投資信託 eMAXIS Slim 米国株式(S&P

記事を読む

MACDのマルチタイムフレームシステム(FX自動売買プログラム)

ある本に載っていたある人の売買法をプログラムにして自動売買してみました。 長期の時間足と日足を

記事を読む

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

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

記事を読む

いろんなシステムの総括

QQE の弱点を前回指摘しましたが、メインウィンドゥに 平均足移動平均線クロス

記事を読む

【楽天でコインを買う】記念硬貨・旧硬貨 49枚セット 8605円分

ヤフオクでなく、楽天市場の堀田商事さんから購入。 額面でなく、時価で 8605円分とい

記事を読む

[FX] 驚異のプログラム?(2)

前回の記事「 驚異のプログラム?」の続きです。 ロジックに問題のある例のプログラムをちょこっと

記事を読む

【FX】Hippo Trader という EA(5)

長期連載ではありませんが、個人的に好きな EA である Hippo Trader のお話の5回めです

記事を読む

価格.com でインターネットプロバイダ料金が激安に

価格.com で「プロバイダ」の比較もできることを教えてくれた動画がこちら。 https://

記事を読む

[FX] 2020/3/10 ドル円 105円台に戻りましたね

NYダウの急降下とともに一気に下がっていたドル円(円高)ですが・・・ 昨夜、寝る前に上

記事を読む

Message

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

WCM 世界成長株厳選ファンド(予想分配金提示型)【愛称】ネクスト・ジェネレーション(2)

以前紹介した「WCM 世界成長株厳選ファンド(予想分配金提示型)【愛称

静かな森?

Stillwood という Youtube チャンネルがあります。>

投資における AI の利用 分析

投資商品が増えてくると管理がめんどくさいですよね。 楽天証券から

AI を使える幸せ

今日で 67歳になってしまった。それはさておき・・・ 最近 AI

世界のベスト

「世界のベスト」といういかにもバクダンっぽい愛称の投資信託があります。

→もっと見る

  • アクセスカウンター
PAGE TOP ↑