*

[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】ECMarkets リアル口座運用中

海外 FX 業者 ECMarkets(ECM)は結局 TariTali 経由で口座を開きました。

記事を読む

[FX] リアル口座 2015/4/6-10 結果

今週のリアル口座の結果ですが、やや赤字となってしまいました。 デモ口座では15万円ほど勝ってい

記事を読む

【FX】MT4 build1420 の不具合(2)

以前の記事「【FX】MT4 build1420 の不具合」の続きです。 前回の記事へのコメント

記事を読む

【FX】朝スキャ

朝スキャという言葉はご存じでしょうか。普通の方は聞いたこともないでしょう。 え、夜明けのスキャ

記事を読む

仮想通貨はブロックチェーンを使っているから価値がある?

「仮想通貨はブロックチェーンを使っているから価値がある」とか言う人を TV でも見ます。 おかしい

記事を読む

【FX】なかなかすごいブレイクアウト Inquisition Breakout EA(5)

「【FX】なかなかすごいブレイクアウト Inquisition Breakout EA(4)」の続き

記事を読む

【FX】 パラボリックSAR と一目均衡表の雲を使ったトレード法

「The Truth About Parabolic SAR | Forex Trading Str

記事を読む

【FX】Hamster Scalper 1.5 という EA

今日は Hamster Scalper 1.5 という自動売買ソフト(EA)のお話。 だいぶ前

記事を読む

【FX】ForexTrend というインジケーター

ForexTrend というインジケーターがなかなか不思議なので、調べてみました。 実行ファイ

記事を読む

今どきのソーラーシステム

本日、ラジオを聴いていたら辛坊治郎がこんなことを言っていました。 最近は200万円くらいで

記事を読む

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

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

Antigravity で遊ぶ

数日前から Google の AI エージント Antigravity

AXI Select のエッジスコアがついに 70に

一昨日、「プロップファームの AXI Select の なかなか上がら

Gemini 3.5Flash について

NHK で好きな番組でほぼ毎回録画しているものに『美の壷』があります。

AXI Select ようやくエッジスコアが上昇傾向に

プロップファームの一種である AXI Select はインキュベーショ

ワークライフバランス

ワークライフバランスという言葉が一般的になって久しいですが、われわれ昭

→もっと見る

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