超シンプルな自動売買プログラム(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);
}
###
関連記事
-
-
月刊「FX攻略.com 2019年12月号」におまけの AI インジケーター
月刊FX攻略.com2019年12月号 posted with amazlet
-
-
[FX] 2015/5/19-22 リアル口座結果
entry time B/S pair Entry rate stop e
-
-
無料の自動売買プログラムの宝庫 AndreaForex
本日 AndreaForex というサイトから無料の自動売買プログラムを 236個、インジケーターを
-
-
【FX】海外FX業者での複数口座
FX業者での複数口座 日本のFX業者では複数口座を持つことは考えなかったのですが、海外FX業者では
-
-
[FX] 3本の RCI を使った自動売買プログラム (2)
4年ほど前の記事「 3本の RCI を使った自動売買プログラム ys3RCI001a.ex4」の続き
-
-
外国為替トレード 勝利の方程式 (投資を極める! 本当は教えたくないプロのノウハウ) / 今井雅人
外国為替トレード 勝利の方程式 (投資を極める! 本当は教えたくないプロのノウハ
-
-
[FX] 2020/3/10 ドル円 105円台に戻りましたね
NYダウの急降下とともに一気に下がっていたドル円(円高)ですが・・・ 昨夜、寝る前に上
-
-
超シンプルな自動売買プログラム(6) 簡単な一目均衡表
みんなが好きな 一目均衡表 は誰もが使えます。 同時にいくつものサインが重なって出ることが多い
-
-
MetaTrader4 自前インディケーター作成 /準備編
MetaTrader4 は自分でプログラムすれば、インディケーターや EA を作ることができます
-
-
[FX] Waddah_Attar_Explosion
Waddah_Attar_Explosion というインジケーターがあります。 ワダー・アッタ











