[FX] 2本の移動平均線を使ったシンプルな EA
公開日:
:
最終更新日:2023/07/26
マネー
あるブログの記事「移動平均線クロスでエントリーするEA(フリーEA)」を読んで、「よし久々に作ってみよう」と思いました。
超シンプルなものはもう 6年以上前に作りましたから、最近覚えた技を練り込みます。
できた。
厳密には平均線クロスではなく、2本の LWMA(線形加重移動平均線) をフィルタ的に使うことになりました。
つまりクロスさせないで使う・・・アレ、主旨が変わってしまった。
買いエントリ
- 2本の LWMA がどちらも上を向いている(速度が正)
- 2本の LWMA の差が拡大している(加速度が正)
- 終値が1本前の高値を超えた
のすべてが揃ったとき。
売りエントリ
- 2本の LWMA がどちらも下向いている(速度が負)
- 2本の LWMA の差が拡大している(加速度が負)
- 終値が1本前の低値を超えた
のすべてが揃ったとき。
エグジットは、
- 改良した HLバンド
- 終値が短期線とクロス
- 初期ロスカット
のどれかが成立したときにしました。
2021/1/1-2021/5/29 ドル円 15分足 1万通貨
取引数120回、純益 366.67ドル、プロフィットファクター 2.57、勝率41.67%(50勝70敗)、最大ドローダウン 0.49%(4.9% / lot)となりました。
勝率はよくないですが、回数と収益、資産曲線の形状はなかなかいいです。
ほんのちょっとブレイクアウトをかましたトレンドフォローなので、勝率はこんなものでしょう。
指標を移動平均線2本しか使っていないわりにはがんばっているのでは。
気に入ったので、来週から 1万通貨で運用テストに入ります。
プログラムソース
//
// ys2MA01a.mq4
// 愛称「2本のチカラ」
// エントリ、エグジットは LWMA 2本を使う
// 15分足でよい結果//マジックナンバーの定義
#define MAGIC 2021060401//パラメーターの設定//
extern double Lots = 0.1; //取引ロット数
extern int Slip = 10; //許容スリッページ数
extern string Comments = “ys2MA01a”; //コメントextern int Fast_period = 10 ;
extern double margin = 0.022 ;int ma1 = 30 ;
int ma2 = 100 ;extern int in_time =8; // 取引開始時間(サーバー時間)
extern int out_time = 11; // 取引停止時間(最大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 B_cnt = 0 ;
int S_cnt = 0 ;extern double ILC = 5.0 ;
extern int TeikyuuYoubi = 0 ; // 定休曜日(0=日, 1=月, 2=火, 3=水, 4=木, 5=金)int start()
{double lc = ILC;
if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;
if ( DayOfWeek() == TeikyuuYoubi ) return(0) ;
double lwma1 = iMA(NULL,0,ma1,0,MODE_LWMA,PRICE_CLOSE,1);
double lwma2 = iMA(NULL,0,ma2,0,MODE_LWMA,PRICE_CLOSE,1);
double lwma1p = iMA(NULL,0,ma1,0,MODE_LWMA,PRICE_CLOSE,2);
double lwma2p = iMA(NULL,0,ma2,0,MODE_LWMA,PRICE_CLOSE,2);
double lwma1pp = iMA(NULL,0,ma1,0,MODE_LWMA,PRICE_CLOSE,3);int trendy = 0;
if ( lwma1 > lwma2 && lwma1 > lwma1p && lwma2 > lwma2p && (( lwma1 – lwma1p ) > ( lwma1p – lwma1pp ) ) ) trendy = 1 ;
if ( lwma1 < lwma2 && lwma1 < lwma1p && lwma2 < lwma2p && (( lwma1 – lwma1p ) < ( lwma1p – lwma1pp ) ) ) trendy = -1 ;if ( B_cnt > 0){
if ( B_cnt > Fast_period) B_cnt = Fast_period ;
double FastLL2 = Low[iHighest(NULL, 0, MODE_LOW, B_cnt, 2)];
}
if ( S_cnt > 0){
if ( S_cnt > Fast_period) S_cnt = Fast_period ;
double FastHH2 = High[iLowest(NULL, 0, MODE_HIGH, S_cnt, 2)];
}//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();
if( ( OOPL – lc*Point >= Close[1] || Close[1] < FastLL2 – margin || Close[1] < lwma1 )
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Pink);
if( Exit_L ==1 ) {Ticket_L = 0;}
B_cnt= 0 ; S_cnt = 0 ;
}//売りポジションのエグジット
OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET);
OOPS = OrderOpenPrice();
if( ( OOPL – lc*Point >= Close[1] || Close[1] > FastHH2 + margin || Close[1] > lwma1 )
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Aqua);
if( Exit_S ==1 ) {Ticket_S = 0;}
B_cnt= 0 ; S_cnt = 0 ;
}//買いエントリー
if( trendy >0 && 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,Pink);
B_cnt= 1 ; S_cnt = 0 ;
}//売りエントリー
if( trendy <0 && 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,Aqua);
S_cnt= 1 ; B_cnt = 0 ;
}return(0);
}
関連記事
-
-
FXで勝率を上げる方法はいくつも存在します
FX で勝率8割なんて無理だようという方もいらっしゃるかもしれませんが、すでにいくつかの方法が開
-
-
【かんたん図解】しっかり儲けるFX入門 / 今井 雅人 酒匂 隆雄
【かんたん図解】しっかり儲けるFX入門 今井 雅人/酒匂 隆雄 日本実業出版
-
-
ラテ・マネーを惜しみましょう
ラテ・マネーとはコーヒーのラテを買うくらいの些細な金額のこと。 対象はコーヒーとは限らず、少額
-
-
FXトレーダーの大冒険 / ロブ・ブッカー ブラッド・フリード
FXトレーダーの大冒険 (ウィザードブックシリーズ) ロブ・ブッカー ブラッド
-
-
[FX] Trend Scalp ライクな自動売買プログラム(4) ysTS01e.ex4
先週、作ったプログラム「Trend Scalp ライクな自動売買プログラム(3) ysTS01e.e
-
-
【FX】Voorloper という EA(2) 同時トレード数と通貨ペア数の変更
「【FX】Voorloper という EA」の続きです。 含み損が増えたのはマーチンゲール倍数
-
-
【FX】Axiory と ThreeTrader
Axiory と ThreeTrader というのは優良な FX 海外業者です。 私は他に E
-
-
【FX】Ultimate Forex という EA
Ultimate Forex という EA があるようです。付属のセットファイルもあり、親切ですね。
-
-
[FX] PRICE_MEDIAN を使う (2) 半値の概念
以前の記事「 PRICE_MEDIAN を使う 」 の続きです。 移動平均線、ADX、RSI
-
-
黄金の扉を開ける賢者の海外投資術 / 橘 玲
黄金の扉を開ける賢者の海外投資術 (講談社プラスアルファ文庫) 橘 玲