[FX] 平均足を使った自動売買プログラム
公開日:
:
マネー
平均足のメリット・デメリット
株やFX のチャートで価格の推移を表す ローソク足は有名ですが、同じく日本で考案された平均足というものがあります。
⇒ 平均足の説明
平均足のメリットとしては、
- 一つ前を除いてそれ以上前の過去の影響を受けない
- ノイズが排除されるので、連続陽線や連続陰線が出やすい
デメリットとしては
- ローソク足の代わりに使われるため両者が解離する場合がある
などが挙げられます。
ローソク足と平均足の解離としては、ローソク足で上ひげの長い「上影陰線」の場合でも、平均足では陽線になってしまいます。上影陰線は下降を示唆するサインですが、平均足では陽線なので真逆に捉えられることになります。
そのため自動売買プログラム(EA)で平均足をトリガーに使う場合、ローソク足での判定も加えることに私はしています。
平均足の不思議
これで EA を今までいくつも作ったのですが、不思議と4時間足と30分足での成績がよいが、他の時間足はいまいちなんです。
理由はわかりませんが、4時間足と30分足の利用者が少ないので、ストップハントなど逆に仕掛ける大口投資家によるノイズが排除されるためかなという気がしております。
ということで、簡単なプログラムを作ってみました。
平均足1本と移動平均線1本しか使っていない超シンプルなもの。
- 移動平均線が上向きのときに平均足が陽線になれば買い、陰転化すれば決済
- 移動平均線が下向きのときに平均足が陰線になれば売り、陽転化すれば決済
たったそれだけです。
2021/1/1-2021/5/15 ユーロドル 4時間足 1万通貨
純益 502ドル、プロフィットファクター 1.79、勝率 48.65%、最大ドローダウン 0.99% と大したことはありませんが、4時間足なので回数が 74回しかないことを考えるとなかなかじゃないでしょうか。
「ユーロドルはこの期間ずっと上げ基調だったからダロ」と鋭いことをおっしゃる人もいるかもしれませんが、上の結果では 買いポジションより売りポジションのほうが勝率は高いのです。売りも買いも回数同じだし。
なにしろロジックもプログラムも超簡単なのでこの結果は・・・ギャップ萌えしてしまいます。
プログラムソース
//
// 「傾いた平均台」 4時間足用
// エントリ:平均足の色
// フィルタ:SMA の傾き
// フィルタ:タイムフィルタ
// イクシット:平均足が陰転//マジックナンバーの定義
#define MAGIC 2021051901//パラメーターの設定//
extern double Lots = 0.1; //取引ロット数
extern int Slip = 10; //許容スリッページ数
extern string Comments = “”; //コメントextern int MA_PERIOD = 20 ;
extern int in_time = 4; // 取引開始時間(0以上)
extern int out_time = 22; // 取引停止時間(24以下)//変数の設定//
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 HA_open1 = ( iClose(NULL, 0, 2) + iOpen(NULL, 0, 2) ) / 2.0 ;
double HA_close1 = ( iClose(NULL, 0, 1) + iOpen(NULL, 0, 1) + iHigh(NULL, 0, 1) + iLow(NULL, 0, 1) ) / 4.0 ;double sma1d = iMA(NULL,0,MA_PERIOD,0,MODE_SMA,PRICE_MEDIAN,1);
double sma1dp = iMA(NULL,0,MA_PERIOD,0,MODE_SMA,PRICE_MEDIAN,2);//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();if( ( HA_open1 > HA_close1 )// || ( 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_open1 < HA_close1 )// ||( OOPS + lc * Point <= Close[1] ) )
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}//買いエントリー
if( HA_open1 < HA_close1 && sma1d > sma1dp && Close[1] > High[2]
&& (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( HA_open1 > HA_close1 && sma1d < sma1dp && Close[1] < Low[2]
&& (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】リセット&ゴー(2)
以前の記事「【FX】リセット&ゴー」の続きです。 開幕ダッシュ 4月1日からの新体制(Dark
-
-
【FX】CCI をエントリトリガに使ったEA を試作してみた
CCI は Commodity Channel Index(商品チャネル指数)というオシレーター系の
-
-
ラテ・マネーを惜しみましょう
ラテ・マネーとはコーヒーのラテを買うくらいの些細な金額のこと。 対象はコーヒーとは限らず、少額
-
-
【FX】1年で100倍になる自動売買プログラム
●年で●●倍になる自動売買プログラム Youtube 動画には「●年で●●倍になる自動売買プログラ
-
-
ミニPC(NipoGi AK1plus-n97)にて 10ケの MT4 を動作させる
Intel N97 CPU を積んだミニ PCの NipoGi AK1plus-n97 ですが、現在
-
-
VQ システムとフィルタ
本日、Boliinger BandWidth のプログラムを作りましたが、それをもとに BBW
-
-
【FX】新しい FX自動売買プログラム作成(2) 朝スキャから昼スキャへ
「【FX】新しい FX自動売買プログラム(朝スキャ)作成」の続きです。 つくった朝スキャのプロ
-
-
[FX] Synergy Trading Method
Synergy Trading Method は しろふくろうさんが以下の著書の中で「Easy Tr
-
-
【FX】FX に付いての雑談
本日は FX についての雑談。 自動売買プログラム(EA)での FX トレードは、ふつう
-
-
月刊「FX攻略.com 2019年12月号」におまけの AI インジケーター(2)
前回紹介した「月刊「FX攻略.com 2019年12月号」におまけの AI インジケーター」ですが、
- PREV
- 謎とき古代日本列島 / 関裕二
- NEXT
- [FX] 異国のゴールデンゲート








