*

[FX] 久々の新作自動売買プログラム ys3MTFSto01a.ex4

公開日: : 最終更新日:2023/07/26 マネー

何ヶ月かぶりに自動売買プログラムを作ってみました。

最近ようやく「魔の7、8月」が終わりかけなのか、自動売買の調子が復活してきたからです。

トレンドフォロワー系が稼いでくれそうな気がします。

とりあえず思いついた手法を超手抜きで、書き上げてみました。

手抜きなので1時間足専用になっています。

プロトタイプでテキトーに作った(とくにエントリが甘々)のに、案外いい成績が出たのでしばらく走らせてみようと思います。

2021/6/1-2021/8/25 ドル円 1時間足 1万通貨

プロフィットファクター 4.81、勝率 50.00%(14勝14敗)、最大ドローダウン 0.39% なのでまあまあのレベル。

取引回数が少なく、2日に1回くらいの頻度ですが、これは 1時間足用のデイトレまたはスイングタイプを意図したので納得できます。

オージー円でもよさげです。

バックテストの期間が短いですが、私は 3ヶ月くらいがいいと考えています

期間があまり長いと、現在というかこれからの相場と関係の乏しいものにフィッティングさせてしまうからです。

1-3ヶ月くらいの検証期間で「最近」に合わせたパラメーターに変えたほうがいいと思うのです。

ということで、このプロトタイプ、できがいいのでちょっと改良してみましょうか。

プログラムソース

//
// ys3MTFSto01a.mq4
// 1時間足専用
//

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

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

extern int Fast_period = 8 ;
extern double margin = 0.0 ;

extern int Sto_period = 9;

extern int in_time = 6; // 取引開始時間
extern int out_time = 14; // 取引停止時間

//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0; //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; //売りポジションの決済注文の結果をキャッチする変数

int OS1 ;
int OS2 ;
double OOPL;
double OOPS;

extern double ILC = 4.0 ;

int start() {

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

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

double FastHH2 = Low[iHighest(NULL, 0, MODE_LOW, Fast_period, 2)];
double FastLL2 = High[iLowest(NULL, 0, MODE_HIGH, Fast_period, 2)];

double AC_diff = iAC(NULL,0,1) – iAC(NULL,0,2);
double AO_diff = iAO(NULL,0,1) – iAO(NULL,0,2);

double sk1 = iStochastic(NULL,60,Sto_period,3,3,MODE_SMA,0,0,1);
double sk2 = iStochastic(NULL,240,Sto_period,3,3,MODE_SMA,0,0,1);
double sk3 = iStochastic(NULL,1440,Sto_period,3,3,MODE_SMA,0,0,1);

//買いポジションのエグジット

OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();
if( ( sk1 < 50.0 || OOPL – lc*Point >= Close[1] || Close[1] < FastLL2 – margin )
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Pink);
if( Exit_L ==1 ) {Ticket_L = 0;}
}

//売りポジションのエグジット

OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET);
OOPS = OrderOpenPrice();
if( ( sk1 > 50.0 || OOPS + lc*Point <= Close[1] || Close[1] > FastHH2 + margin )
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Aqua);
if( Exit_S ==1 ) {Ticket_S = 0;}
}

//買いエントリー
if( sk1 > 50.0 && sk2 > 50.0 && sk3 > 50.0 && AC_diff * AO_diff > 0
&& (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);
}

//売りエントリー
if( sk1 < 50.0 && sk2 < 50.0 && sk3 < 50.0 && AC_diff * AO_diff > 0
&& (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);
}

return(0);
}

 

###

関連記事

【FX】XM 極口座 発進

以前の記事「XM で極口座を開いてみる」で書いたとおり、有名(悪名高い?)な XM でスプレッドの最

記事を読む

FXで勝率を上げる方法はいくつも存在します

FX で勝率8割なんて無理だようという方もいらっしゃるかもしれませんが、すでにいくつかの方法が開

記事を読む

[FX]冬時間から夏時間への切り替わりの検証

最近忙しくて、FX についてはデータをとるだけになっています。 データ取得は VPSサーバーが

記事を読む

QQE を使った自動売買ソフト(3)

前回の記事「QQE を使った自動売買ソフト(2) 」でご紹介した、QQE という指標を使った E

記事を読む

【FX】Zigzag Extremum Point という EA

最近も新しい EA の検証を続けています。 割合おもしろいなと思ったものに、この ジグザグ エ

記事を読む

【FX】平滑化 RSI を使った簡単な EA

今はなき雑誌「FX攻略.com」の 2020年12月に のぶしサンの高速スキャルピング法が載っていま

記事を読む

【FX】エターナルエンジンという EA(2)

以前に紹介した MQL5 フォーラムで 599$で販売されている Eternal Engine とい

記事を読む

【FX】 FX のキモは資金管理

FX に必要な技術 FX トレードには 環境認識、エントリ、損切り、利確、資金管理、メンタル管理な

記事を読む

【FX】Fintokei チャレンジ 14日め

以前の記事「【FX】Fintokei チャレンジ 7日め」の続きです。 現在わたしはプロップフ

記事を読む

【FX】Dark Venus という自動売買ソフト(2)

前回の記事「【FX】Dark Venus という自動売買ソフト」の続きです。 昨日夜からデモ走

記事を読む

Comment

  1. 沼田芳彰 より:

    FX自動売買初心者で貴殿サイトのファンです。プログラムソースの開示ありがとうございます。私のパソコンで「動くプログラム」と「動かないプログラム」があり、当惑しています。たとえば下記は動きません。
    原因究明のためには、何を勉強すれば良いですか。

    ‘ys3MTFSto01a.mq4’

    ‘ys3MTFSto01a.mq4’ ys3MTFSto01a.mq4 1 1
    ‘“3MTFStochas”’ – undeclared identifier ys3MTFSto01a.mq4 12 27
    ‘“3MTFStochas”’ – constant expected ys3MTFSto01a.mq4 12 27
    ‘–’ – undeclared identifier ys3MTFSto01a.mq4 45 32
    ‘–’ – some operator expected ys3MTFSto01a.mq4 45 32
    ‘iAC’ – semicolon expected ys3MTFSto01a.mq4 45 34
    ‘–’ – some operator expected ys3MTFSto01a.mq4 46 32
    ‘iAO’ – semicolon expected ys3MTFSto01a.mq4 46 34
    ‘–’ – some operator expected ys3MTFSto01a.mq4 56 30
    ‘–’ – some operator expected ys3MTFSto01a.mq4 56 77
    ‘(‘ – unbalanced left parenthesis ys3MTFSto01a.mq4 56 3
    ‘)’ – unexpected token ys3MTFSto01a.mq4 56 86
    expression has no effect ys3MTFSto01a.mq4 56 79
    ‘&&’ – operand expected ys3MTFSto01a.mq4 57 1
    ‘)’ – unexpected token ys3MTFSto01a.mq4 57 39
    expression has no effect ys3MTFSto01a.mq4 57 20
    13 errors, 2 warnings 14 3

    • kotaro.yasuiwa@gmail.com より:

      ええと、‘“3MTFStochas”’ – undeclared identifier ys3MTFSto01a.mq4 ってことは・・・
      文法の解釈が広範囲で異なっているってことでしょうか。MT4 ならここは単なるコメントみたいな部分なので問題はないはずですけど。
      プログラムは MT4 じゃなくて MT5 をお使いではありませんか?

      • kotaro.yasuiwa@gmail.com より:

        こちら(↓)に答えがありました。ブログからコピーすると改行コードがおかしなことがありますね。
        https://onl.bz/y1EMM99

        • kotaro.yasuiwa@gmail.com より:

          ソースのコードも手直ししておきました。
          ブログ(Wordpress)上で編集すると改行がおかしくなる可能性がありますね。

          • kotaro.yasuiwa@gmail.com より:

            コンパイルできないと困るので、コンパイル済みの EA のダウンロードリンクをお教えします。
            > http://yiwasaki.com\fx\ys3MTFSto01a.ex4
            これは試作品なので、近々改良版を作ろうかなと思っていますが・・・

Message

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

【ふるさと納税】河内晩柑 / 愛媛県愛南町

【ふるさと納税】 【高評価★4

Apacer SSD 256GB(M.2 NVMe)

Apacer アペイサー SS

Core i3-8100 について(2)

Core i3-8100 という最近入手した中古の CPU について。

【ヤフオク】DELL OptiPlex 3050 到着後セットアップ

3,097円(税込)+送料 1,606円 で落札した DELL

DELL Vostro260S 逝く

2011年7月に新品で買った DELL Vostro260S が昨日壊

→もっと見る

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