*

ディナポリ手法で利用するDMA (2)

公開日: : 最終更新日:2019/09/24 マネー

前回の記事「ディナポリ手法で利用するDMA」で、ディナポリ移動平均線を使った自動売買プログラムを作りましたが、25本線があまり活躍していないので、トレンド期間でないときの損失を減少させる方策として 25本線の向きをフィルタに使うことにしました。

これでうまくいけばトレンド期間でないときの損失を半分にできるかも。しかもトレンドのときの利益には差し障りがないはず。

ポンド円 30分足での成績はかえって悪くなりましたが、なんとなく予感していたように性格がのんびり、つまり短期足では損益しか出ません。

タイムフィルタで日本時間の午前10時から午後7時まで動かして、91回とだいぶ動作回数が減少し、純益はプラス 12.19%どまり。

改良前後のポンド円4時間足どうしを比較します。

勝率が 44.68%と増加し、最大ドローダウンが 3.43%とやや減少。でもまだまだ改善の余地があります。

動作時間が増えたのに動作回数は減少しています。

勝率はトレンドフォロワーなら優秀なほうです。最大ドローダウンもあと頑張っても半減くらいかな。純益がもっと伸びないといけませんが、相場次第ですね。

移動平均線を使ったものはトレンドフォロワーという性格上、トレンドの部分でいかに多くの部分をおいしくとれるかという問題と、トレンドでない期間での損失をいかに小さくするかという問題があり、取る方策にとっては二律背反のこともあるのが頭が痛い点ですね。

プログラムソース

//
// ysDMAX01b.mq4
//
//  2019.9.22  ディナポリチャートその2
// エントリ: 終値が 3x3DMA を上抜け
// イグジット: 終値が 7x5DMA を下抜け
// フィルタ: 3本の DMA が順並びで 25×5DMA が上向きのとき

//マジックナンバーの定義
#define MAGIC  42404

//パラメーターの設定//
extern double Lots = 0.1;     //取引ロット数(0.1 は1万通貨)
extern int Slip = 10;         //許容スリッページ数
extern string Comments = “”; //コメント

extern double ILC = 40 ;

extern int in_time = 3; // 開始時間(サーバー時間 0から)
extern int out_time = 20; // 終了時間(サーバー時間 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(){

double lc = ILC;
if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

double dma1 = iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,4);
double dma2 = iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,6);
double dma3a = iMA(NULL,0,25,0,MODE_SMA,PRICE_CLOSE,6);
double dma3b = iMA(NULL,0,25,0,MODE_SMA,PRICE_CLOSE,7);

//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();

if(    ( Close[1] < dma2 || ( 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(    ( Close[1] > dma2 ||( 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( Close[1] > dma1 && dma3a > dma3b
&& 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( Close[1] < dma1 && dma3a < dma3b
&& 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] 2021年6月第3週の成績

先週からいくつか市販の自動売買プログラムを試しています。 上の売買履歴は自作のプログラ

記事を読む

[FX] こんな自動売買プログラムはどう?

Gogojungle というサイトで FX用の自動売買プログラムがいろいろ売られています。 す

記事を読む

【FX】「無料EA」を使わない理由

ここでの「無料EA」は単に無料な EA という意味ではなく、SNS でメンバー登録させて配布している

記事を読む

[FX] 勝率を上げる zero trailing

勝率を上げる一つの方法を思いついたので、EA に組み込んでみました。 いえ、裁量ではしょっちゅ

記事を読む

【FX】ThreeTrader の Rawゼロ口座を追加で開設

新たな FX口座を開設しようと、候補として TradersTrust という業者を調べていたものの、

記事を読む

【FX】VantageTrading という海外業者(2)

昨日紹介した(いや、紹介はしていないな)スプレッドが狭い業者の VantageTrading ですが

記事を読む

貯蓄型の生命保険

主に使っている銀行口座(普通預金口座)の残高が 8ケタになっていたので、相続目的で生命保険に入ること

記事を読む

ボンドミックスミリオン

ボンドミックスミリオンという投資信託を 10年以上前から持っています。 毎月1万円をクレジット

記事を読む

郵便振替という過去の遺物

久しぶりにちょっと離れていた郵便局に行ってきました。 以前勤めていた大津市民病院の敷地に隣接し

記事を読む

【FX】2本のEMAだけを使用したFXのシンプルなEMA手法の検証

昨日発見した Youtubeチャンネルの「FX手法検証ちゃんねる」では多数の FX手法の解説と検証を

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

【整備済み品】ウエスタンデジタル Western Digital 2.5 インチ HDD 500GB

12月4日に 1880円 で購入した 2.5インチ 500GB

闇の守り人 / 上橋 菜穂子

★★★☆☆ 上橋菜穂子先生のファンタジー代表作の「闇の守り人

セブンイレブン冷凍食品 カプリチョーザ監修 トマトとニンニク

本日久しぶりに昼食を買いにセブンイレブンに。 冷凍食品コ

新宿中村屋 中村屋 インドカリー ビーフスパイシー 200g

インドの革命家ボースゆかりのインドカレーで有名な新宿中村屋。 本

頭寒足熱

仕事部屋はまだ暖房を入れていません。 着る毛布と指先をカットした

→もっと見る

  • アクセスカウンター
PAGE TOP ↑