超シンプルな自動売買プログラム(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);
}
###
関連記事
-
-
早起きは5pipsの得
iCustom(アイカスタム)で変幻自在のメタトレーダー (Modern Alc
-
-
【FX】ケルトナー チャネル
ケルトナー チャネル(Keltner channel)という指標があります。 原法では
-
-
FX最強チャート GMMAの真実 / 陳 満咲杜 (2)
FX最強チャート GMMAの真実 陳 満咲杜 扶桑社 2012-06-29
-
-
【FX】新しい FX自動売買プログラム作成(3) ゴールド昼スキャ
「【FX】新しい FX自動売買プログラム作成(2) 朝スキャから昼スキャへ」の続きです。 自作
-
-
【FX】ForexTrend というインジケーター(2)
昨日の続きで、ForexTrend というインジケーターの話です。 ForexTrend という一
-
-
脳はお高いものがお好き
* この前、購買心理学の本を読んでいると・・・ 脳は 高価なものだと知っているモノは、無意識
-
-
FX最強チャート GMMAの真実 / 陳 満咲杜 (3)
FX最強チャート GMMAの真実 陳 満咲杜 扶桑社 2012-06-29
-
-
FX 大ダメージ 暴落対策用コードの導入
自動売買のデモ口座が今朝とんでもないことに。 昨日は調子よく、30万円プラ
-
-
【FX】 Axiory でハロウィーンキャンペーンやっています
Axiory でハロウィーンキャンペーンを開始したようです。 期間は 2023年10月











