*

超シンプルな自動売買プログラム(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);
  }

###

関連記事

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

1時間だけのトレード 以前の記事「超シンプルな自動売買プログラム(11) 前週の平均値と逆張り

記事を読む

定価のカラクリ

* 昨日、さんざん書いてしまいましたが、 >  Myソモサン・セッパ(8) の答え

記事を読む

【FX】BKK という朝スキャEA

しばらく FXブローカーからのメール(Daily Confirmation)が届かなくなっていたので

記事を読む

【FX】 NR7

プライスアクションの中の一つに NR7 というものがあるようです。 NR7 とはナローレンジを

記事を読む

【FX】FrankoScalp という EA

MQL5.com で FrankoScalp という古株の EA を見つけました。 いろんなモ

記事を読む

[FX] 今週の戦略 2015/6/29-7/4

先週は FX の記事を書くのを忘れていましたが、本日朝は大きな窓開けがありました。 ギリシ

記事を読む

クーラーの室外機の上に濡れタオル

クーラーの室外機の上にバケツを置いて、濡れタオルを天板に敷き、その端をバケツに入れておきます

記事を読む

[FX] HL Band(High Low Band) について(2)

以前の記事「HL Band(High Low Band) について 」で書きましたが、HL band

記事を読む

アメリカ株投資 2021-8-6

米国株投資 2日前の記事「アメリカ株投資 2021-8-4」を書いたときに純益が 146万

記事を読む

[FX] 2015/5/11-18 リアル口座結果

5/11 10:30:00 sell 0.1 eurusd-a01 1.11

記事を読む

Message

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

【FX】Monopolist という EA(2)

MQL5.com で売られている Monopolist という EA

味のマルタイ 棒ラーメン 醤油とんこつ味

先日買ったセット内に含まれていたマルタイの棒ラーメンの醤油とん

ついに日本のオールドメディアが習近平の失権を問題にし始めた

https://www.youtube.com/watch?v=8mv

マルタイ棒ラーメン 屋台とんこつ味

先日買ったセット内に含まれていたマルタイの棒ラーメンの屋台とん

BMW 3シリーズについて

この 30年間ほど BMW 3 シリーズを計 5台ほど乗ってきました。

→もっと見る

  • 2025年7月
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • アクセスカウンター
PAGE TOP ↑