平均足システムの別種 / Heiken_Ashi_Realで平均足の移動平均線クロス
公開日:
:
最終更新日:2015/02/24
マネー
Heiken_Ashi_Real というインディケーターが MetaTrader4 で無料ダウンロードできます。
平均足の始値と終値で別々に移動平均線を作って、そのクロスを売買シグナルに利用するというものです。
ピンクと黄色(わかりやすいように色をデフォルトとは変えてあります)の2本の移動平均線がクロスした次の足の始値で売買すればいいようです。
本当に役立つのか試しに自動売買プログラム(EA)化してみました。
プロフィットファクター1.98、勝率46.93% となかなかいいではないですか。
最大ドローダウンが 29.71%と高いですが。
資産曲線
昨年3ヶ月間(2014/10/1 – 2015/1/1) ならこんな具合。
やはりトレンド相場には強いですね。
いちおう、昨年のドル円相場のちゃぶついている時期の1月1日から8月1日の期間(下の楕円で囲んだ部分)の成績をとってみました。
2014/1/1 – 2014/8/1
なんと! 前半は苦しいが、後半の4月以降で(むしろ前半より値幅が減少しているのに!)取り戻しています。
トレンドがなくても勝てる可能性があるってことでしょうか。
もっと短い時間足(ミニトレンドが多いはず)では成績は悪くなるようなのですがナゾですね。
もう少し研究してみます。
プログラムソース(Heiken_Ashi_Real.ex4 が必要)
//
// yasciiHA03.mq4
// Heiken_Ashi_Real(移動平均線クロス)を使用
//
//マジックナンバーの定義
#define MAGIC 42218
//パラメーターの設定//
extern double Lots = 1.0; //取引ロット数
extern int Slip = 10; //許容スリッページ数
extern string Comments = "HA03"; //コメント
extern int Fast_period = 14 ;
extern double margin = 0.0 ;
extern double ILC = 20.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(){
//暴落対策(始め)
double FastHH1 = Close[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 1)];
double FastLL1 = Close[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 1)];
//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
if( Bid < FastLL1-margin
&& ( 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);
if( Ask> FastHH1+margin
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}
//暴落対策(終わり)
if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;
double HA_openMA1 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",2,1);
double HA_openMA2 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",2,2);
double HA_closeMA1 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",3,1);
double HA_closeMA2 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",3,2);
double lc = ILC;
if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;
//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();
if( ((HA_openMA1 > HA_closeMA1 && HA_openMA2 > HA_closeMA2) || ( OOPL - lc*Point >= Close[1] ) )
&& ( 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( ((HA_openMA1 < HA_closeMA1 && HA_openMA2 < HA_closeMA2)||( OOPS + lc*Point <= Close[1] ) )
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Aqua);
if( Exit_S ==1 ) {Ticket_S = 0;}
}
//買いエントリー
if( HA_openMA1 < HA_closeMA1 && HA_openMA2 < HA_closeMA2
&& ( 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( HA_openMA1 > HA_closeMA1 && HA_openMA2 > HA_closeMA2
&& ( 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,Aqua);
}
return(0);
}
//終わり
###
関連記事
-
-
【FX】平滑化 RSI を使った簡単な EA
今はなき雑誌「FX攻略.com」の 2020年12月に のぶしサンの高速スキャルピング法が載っていま
-
-
【FX】EA の寿命とその対策
現在も FX の自動売買を順調に続けています。 メタトレーダー4 で EA を動かすというオー
-
-
一目均衡表(関数版)
MetaTrader4 に付属している一目均衡表のソースを見てみるとずいぶん複雑なので、関数を使
-
-
スイスフラン暴騰騒動(2)
以前の記事「スイスフラン暴騰騒動」でも書きましたが、スイス銀行のおかげでスイスフランが一瞬で高騰
-
-
FX トレード 2014/11/19 日中
本日もリアルトレード。 今日は自宅。仕事はヒマなのでチャートを眺めながら仕事中。 昨日持ち越
-
-
【FX】Hippo Trader という EA(6)
以前の記事「【FX】Hippo Trader という EA(5)」の続きです。 個人的に好きな
-
-
2024年8月7日 日本株反騰中?
この記事を書いているのは 8月7日午前10時20分なのですが、本日の日経平均の動向の指標となるのが日
- PREV
- 博覧強記の仕事術 / 唐沢 俊一
- NEXT
- QQE を使った自動売買ソフト(3)













