[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本の移動平均線を使ったシンプルな EA
あるブログの記事「移動平均線クロスでエントリーするEA(フリーEA)」を読んで、「よし久々に作ってみ
-
東京帝大教授が教えるお金・仕事に満足し、人の信頼を得る法 / 本多静六(2)
一昨日の記事「東京帝大教授が教えるお金・仕事に満足し、人の信頼を得る法 / 本多静六(1)」
-
ロト7で4億円当選した男の話
ロト7で4億円当選した男の話が載っていました。>ロト7で4億円当選した男がネット上で明かした2年後の
-
FX トレード 2014/11/19 (2) 夕方
本日のトレードのご報告。 昨日持ち越した 1000ドル(買い値 116.691)に加え、10:
-
【FX】もう一つの Fintokei の使い方(2)
「【FX】もう一つの Fintokei の使い方」の続きです。 先週立てた今週の目標の中に、X
-
【FX】FX業者 easyMarkets でのトレードやめます
以前開いた easyMarkets の口座を閉鎖しました。 easyMarkets はスプレッ
-
今はETF投資の方がリスクは低くリターンが高い
登録していつも観ている Youtube チャンネル「とも'sチャンネル」の本日のビデオ のタ
-
FX トレード様子見 2014/11/22-24
本日は日本はお休みですが、世界の為替相場は開いています。 1時間足のチャートを見てみましょ
-
【FX】Trend Following Gold という EA
私の作ったものではありませんが、Trend Following Gold という EA がありまして
- PREV
- 謎とき古代日本列島 / 関裕二
- NEXT
- [FX] 異国のゴールデンゲート