[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] 現在稼働中の VQシステム yasciiVQ04e.ex4(2)
以前の記事「 現在稼働中の VQシステム yasciiVQ04e.ex4 」で紹介したシステムを
-
-
FX トレード 2014/11/18 MACD も参考に
本日もリアルトレード。素直に USD/JPY で行くことにします。 そろそろ 11月の終わりな
-
-
[FX] 早朝のスプレッド 10/23
本日 10/23 早朝のスプレッドの酷さを晒します。 OANDA 5:22:13 AM
-
-
ど素人がはじめるFXの本 / 羊飼い
ど素人がはじめるFXの本 「羊飼いの外国為替証拠金取引FXブログ」管理人 羊飼
-
-
[FX] Tokyo Box(ロンドン・コーリング) の新作プログラム (2)
数日前の記事「Tokyo Box(ロンドン・コーリング) の新作プログラム」の続きです。 東京
-
-
【FX】 久々にプログラム書いてみる(日足ブレイクアウト手法)
Youtube で日足(ひあし)の手法を披露あるいは検証している方が多いです。 日足のいいとこ
-
-
【FX】RVI というインジケーターについて
Youtube で RVI というオシレーター系のインジケーターの解説がありました。 http
-
-
S&P500 についての雑談
最近、史上最高を更新中の S&P500 についてのお話です。 S&P500 と
-
-
[FX] Synergy Trading Method
Synergy Trading Method は しろふくろうさんが以下の著書の中で「Easy Tr
- PREV
- 謎とき古代日本列島 / 関裕二
- NEXT
- [FX] 異国のゴールデンゲート