Forex MQLで行こう(旧株価チャートサイン)

FXで有名なMT4でMQLプログラムを勉強していきます。

MA 移動平均 長期線を入れたサイン◆_擦鳴るEA

前回の売買条件に以下を追加
買いシグナル:短期線が中期線より上で、長期線を中期線が上抜けた
if(fastNow > slowNow && slowPre <= longPre && slowNow > longNow)

売りシグナル:短期線が中期線より下で、長期線を中期線が下抜けた
if(fastNow < slowNow && slowPre >= longPre && slowNow < longNow)

*変数の説明
fastNow:1つ前の短期線の値
slowNow:1つ前の中期線の値
slowPre:2つ前の中期線の値
longPre:1つ前の長期線の値
longNow:2つ前の長期線の値

ダウンロード ma21.ex4


前回のテストのOptimizationでパフォーマンスが良かった値をつかってバックテスト

■5分足
短期線10本/中期線40本/長期線75本/モード単純移動平均/Open prices/期間2013.01.02〜
損益    P/F  トレード数 最大Drowdown 勝率
2814.79   1.14   266   3357.28   36.09%

■15分足
短期線8本/中期線50本/長期線75本/モード単純移動平均/Open prices/期間2013.01.02〜
損益    P/F  トレード数 最大Drowdown 勝率
5035.88  1.49   81    3308.20   34.57%

■30分足
短期線10本/中期線25本/長期線75本/モード単純移動平均/Open prices/期間2013.01.02〜
損益    P/F  トレード数 最大Drowdown 勝率
5915.09  1.73   56     2924.65   42.86%

■1時間足
短期線14本/中期線30本/長期線75本/モード単純移動平均/Open prices/期間2013.01.02〜
損益    P/F  トレード数 最大Drowdown 勝率
6642.69  2.16   22     5579.40  68.18%
素晴らしい!1lotでトレードしていたら6万円のプラスと言う結果に。
でも最大損失も5万5千円なり。

■4時間足
短期線10本/中期線25本/長期線75本/モード単純移動平均/Open prices/期間2013.01.02〜
損益    P/F  トレード数 最大Drowdown 勝率
3692.92  3.09   6     2800.09  50.0%

■日足
2000年からのテストをしたら、最初の3回のトレードでマイナスになり、終了。


次回は移動平均以外で新しい関数に挑戦です。

MA 移動平均 長期線を入れたサインで音が鳴るEA

移動平均の長期線も使ったプログラムを作ってみた。
ma2.ex4

パラメータの説明(Expert Propertiesで設定してください)
prmMaF:短期線の周期
prmMaS:中期線の周期
prmMaL:長期線の周期
eaOn :バックテスト時は1にする
mode :前回の移動平均の種類を指定するなら
0:単純移動平均(デフォルト)
1:指数移動平均
2:平滑移動平均
3:線形加重移動平均


移動平均の短期と中期のクロスでサインを判断するのは変わりませんが、
さらに条件として、長期線の上か下かで音がなります。

買いシグナル:長期線の上でゴールデンクロス
売りシグナル:長期線の下でデッドクロス
ですので、長期線より下で短期と中期のゴールデンクロスではサインとして
無視するので、音はなりません。

そして、プログラムではテスト用に決算方法を以下としてます。
買いポジション:中期線を短期線が下抜ける
売りポジション:中期線を短期線が上抜ける


Optimizationを使ったテスト結果
開始期間を1990年からにして、モデルはOpen Prices Only、長期線は75本固定。

日足での結果(収益の数字はUSD$です)
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
73921.32  84  2.14  880.02     12754.9  22.45%  prmMaF=10 prmMaS=35 prmMaL=75
72023.67  78  2.18  923.38     12885.87  24.92%  prmMaF=12 prmMaS=35 prmMaL=75
この2つがダントツでした。

4時間足での結果
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
37447.85  390 1.21   96.02     32184.02  42.40%  prmMaF=12 prmMaS=25 prmMaL=75
36929.02  581 1.16   63.56     38721.47  46.84%  prmMaF=14 prmMaS=20 prmMaL=75
35215.19  398 1.19   88.48     32285.94  43.60%  prmMaF=10 prmMaS=25 prmMaL=75
32094.14  518 1.15   61.96     39132.46  49.85%  prmMaF=10 prmMaS=20 prmMaL=75
31300.64  526 1.15   59.51     35405.69  48.16%  prmMaF=8 prmMaS=20 prmMaL=75

1時間足での結果
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
57354.99  926 1.25   61.94     18146.75  25.53%  prmMaF=12 prmMaS=35 prmMaL=75
48641.08  713 1.24   68.22     18803.90  55.41%  prmMaF=12 prmMaS=45 prmMaL=75
44046.06  1004 1.18   43.87    18031.33  27.22%  prmMaF=10 prmMaS=35 prmMaL=75
41791.76  875 1.18   47.76     18199.37  37.71%  prmMaF=14 prmMaS=35 prmMaL=75
37357.14  942 1.17   39.66     18047.19  41.42%  prmMaF=6 prmMaS=50 prmMaL=75

って、ここまでやって気がついたんだけど、この収益はスワップが入ってるのか!
ロングポジションが長ければその分プラスが増えるのか。

やり直し。。。
今年のみに絞ってテスト。
■5分足
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
668.80   10  2.21   66.88     572.57  5.49%   prmMaF=10 prmMaS=40 prmMaL=75
641.13   9  2.37   71.24     755.29  7.33%   prmMaF=14 prmMaS=30 prmMaL=75
523.65   8  2.03   65.46     776.83  7.43%   prmMaF=14 prmMaS=40 prmMaL=75
507.95   11  1.72   46.18     765.37  7.62%   prmMaF=12 prmMaS=30 prmMaL=75
484.40   10  2.00   48.44     667.86  6.53%   prmMaF=14 prmMaS=35 prmMaL=75

■15分足
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
7363.63   81  1.75   90.91    3431.69  19.88%   prmMaF=8 prmMaS=50 prmMaL=75
5608.27   53  1.68  105.82    2066.72  12.66%   prmMaF=14 prmMaS=55 prmMaL=75
5561.61   62  1.67   89.70    2539.91  18.09%   prmMaF=10 prmMaS=55 prmMaL=75
5243.93   89  1.52   58.92    3155.38  19.03%   prmMaF=10 prmMaS=35 prmMaL=75
5018.36   56  1.66   89.61    2395.74  14.53%   prmMaF=14 prmMaS=50 prmMaL=75
4825.77   60  1.64   80.43    2435.35  15.62%   prmMaF=12 prmMaS=45 prmMaL=75
4809.99   78  1.48   61.67    2962.76  18.56%   prmMaF=12 prmMaS=40 prmMaL=75

■30分足
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
226.53    1  0.00   226.53    258.07  2.49%   prmMaF=10 prmMaS=25 prmMaL=75
219.50    1  0.00   219.50    258.07  2.49%   prmMaF=8 prmMaS=20 prmMaL=75
127.70    3  1.95   42.57    585.43  5.57%   prmMaF=10 prmMaS=20 prmMaL=75
36.31    1  0.00   36.31    336.66  3.25%   prmMaF=14 prmMaS=25 prmMaL=75
36.31    1  0.00   36.31    336.66  3.25%   prmMaF=12 prmMaS=25 prmMaL=75
トレード回数が1回?話になりません。

■1時間足
■4時間足
  結果なし(なぜ?)

■1日足
損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%  設定
3558.02   2  0.00  1779.01    3011.31  19.36%   prmMaF=2 prmMaS=30 prmMaL=75
1419.23   1  0.00  1419.23    3011.31  22.44%   prmMaF=4 prmMaS=50 prmMaL=75
以下同じ結果


どうもプラスにする事が出来るようだ。
次回はレインボークロス(短期が中期を上抜けた後、中期が長期を上抜け)について
考えてみようと思う。

あ、時間にゆとりがある人、テスト結果募集します。

MA 複数の種類の移動平均でテストしてみる

複数の種類の移動平均でテストしてみる

移動平均には単純移動平均、指数移動平均、平滑移動平均、線形加重移動平均がある。
先に作ったのは単純移動平均だが、その他の移動平均を指定出来るようにしてみた。
移動平均 ma11.ex4

modeの値を0から3の間で設定出来ます。(Expert Propertiesからパラメータの入力)
0:単純移動平均
1:指数移動平均
2:平滑移動平均
3:線形加重移動平均


Optimizationでのテスト結果(eaOnを1に設定するとテスト出来ます)
1時間足/EveryTickを指定
         損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%
単純移動平均  :$248192.83 3872 1.26   64.10    74597.44  24.85%
指数移動平均  :$228324.23 2720 1.30   83.94    64648.05  22.87%
平滑移動平均  :$212624.56 4160 1.21   51.11    93289.18  31.61%
線形加重移動平均:$205945.48 1395 1.38   147.63    73872.74  25.51%

日足/EveryTickを指定
         損益    Trade P/F  ExpectedPayOff DrawDown$ DrawDown%
線形加重移動平均:$272532.23 488 1.70   558.47    35884.51  22.25%
指数移動平均  :$271487.44 319 1.95   851.06    57935.78  22.86%
平滑移動平均  :$249457.92 145 2.43   1720.40    47024.14  21.64%
単純移動平均  :$240454.37 481 1.62   499.91    54412.40  18.11%

本当にこんなに収益が出るんですかね。
相変わらず、バックテストが不安定だし、信用出来る数値とは言えないでしょう。
ヒストリーの取得とか、メモリとかちゃんと調べないと行けないかな。

MA 移動平均 ma1.ex4でのバックテスト結果

対象通貨:USD/JPY
期間:  1990-最近
使用通貨:USD

===1時間足でのテスト===
総純損益  102843.29
最大ドローダウン  52167.30
勝ちトレード数(率)  38.48%
1トレード当たりの最大利益18216.50
1トレード当たりの最大損失  -18582.85
ma1test1h

===日足でのテスト===
総純損益  51330.19
最大ドローダウン  55883.91
勝ちトレード数(率)  45.00%
1トレード当たりの最大利益  18215.08
1トレード当たりの最大損失  -18305.47
ma1test1d

1時間足と日足で収益が出ると言う結果が。


それより、このStrategy Testって、やる度に結果が違うのはなぜ?
また、他のパソコンでHistory Centerでダウンロードするんだけど、
最近2013年以降しかダウンロードできない。以前は出来た。


疑問ばかり。


そしてそして、嬉しいOptimazation機能。
値を変化させてパフォーマンスを見ることができます!

30分足では収益、プロフィットファクター共に短期線を12に、中期を60にすると
収益と、プロフィットファクターで一番いい結果が得られます。
総純損益  256098.46
最大ドローダウン  44249.61
勝ちトレード数(率)  32.6%
1トレード当たりの最大利益  39303.42
1トレード当たりの最大損失  -18608.30


30m足での結果:収益12,60
1H 足での結果:収益14,30/プロフィットファクター14,30
1D 足での結果:収益12,30/プロフィットファクター12,75

15分以下では結果が出ない。これも疑問。


今日はここまで。

MA 移動平均によるシグナル

移動平均線 Moving Average

有名過ぎて説明要らないですね。

買いシグナル:中期線を短期線を上抜る
売りシグナル:中期線を短期線が下抜ける

【使う関数】
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
*MetaSysSeekerより

【関数に渡す値】
1)ペア:実行するウィンドウで表示しているペア(symbol 0)
2)時間足:実行するウィンドウで表示している時間足(timeframe 0)
3)周期:14(period 14)
4)転移:意味がわからないので0を指定(ma_shift 0)
5)単純移動平均を使う(ma_method MODE_SMA)
6)終値で判断する(applied_price PRICE_CLOSE)
7)前の足が確定した時点で判断(shift 1)
  0だと現在なのでまだ確定してない。

こうなる
iMA(0, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 1)
25の周期は
iMA(0, 0, 25, 0, MODE_SMA, PRICE_CLOSE, 1)

クロスしたかどうかを判断するには、2つ前の移動平均と1つ前の
移動平均の値を取得して、2つ前と1つ前が逆転したらって判断します。


fastNow =iMA(0, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 1)
slowNow =iMA(0, 0, 25, 0, MODE_SMA, PRICE_CLOSE, 1)
fastPre =iMA(0, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 2)
slowPre =iMA(0, 0, 25, 0, MODE_SMA, PRICE_CLOSE, 2)

ゴールデンクロス
if( fastPre <= slowPre && fastNow > slowNow)
2つ前では短期線は下、1つ前では短期線が上に変化した。

デットクロス
if( fastPre >= slowPre && fastNow < slowNow)
2つ前では短期線は上、1つ前では下。


クロスで音がなる(Alert)ようにしてみた。
移動平均 ma1.ex4
デフォルトでは短期線14、中期線25としてありますが、「パラメータの入力」で変更可能です。

音が鳴ったら売買は自分で判断するって使い方もあるかな。

MQL メモ書き

■if(Volume[0]>1) return;
データはTickのタイミングで上がってくるようなので、最初の
タイミングのみを使いたい。
例えば、16時5分0秒過ぎて、最初のTickで、何かを判断
して、59秒までのデータは無視したい時など。

■extern int prmMaF =14;
定数でプログラムを作ってしまうと、変更してコンパイルが
必要になる。
テストするのに実行時に変更出来るようにするには、extern
で宣言してやる。

■作ったファイルがない!
Windows7って、勝手に保存場所を変えてた。UAC機能?
AppData/Local/VirtualStore
マイクロソフト迷惑です。

■意地汚いサイトばかり。
ネットでMT4自動売買とか、EA(Expert Advisor)で検索すると
ほとんどが「さくら」か宣伝広告ばかり。
ブログなんてみてみると、1ページの2/3は広告。
FX業者だったり、EA発売元だったり、私はこれで設けました
なんてね。
有料EAランキングなんて全く信用出来ない。どこも違うんだから。

MQLお勉強開始!

まず、MT4(Meta Trader 4)ですが、大変有名なフリーソフトで、高機能なチャートを表示
出来たり、このソフトに対応しているFX業者では売買もできます。

そして、MQLプログラムを作ることによって、MT4上にオリジナルインジケータを表示したり、
売買プログラムを実行できたりします。

株価チャートサインではエクセルを使ってVBA(びじゅあるべーっしっく)でしたが、
MQLはC言語に近い独自の言語なので、これから少しずつ勉強しながらプログラム
を作って行きたいとおもいます。

方向性としては、売買タイミング見つけるプログラムです。

【トレンド系】
市場の方向性を判断します。
・移動平均
・一目均衡表
  など

【オシレーター系】
振り子の原理で戻りを判断します。
・RSI
・ストキャスティクス
  など


ちなみに、株は塩漬け期間が長すぎて興味がなくなっちゃいました。。。
日経平均もやっと戻して来たので、資産は精算してFXへ移動です。

あ、あと、株価チャートサイン検索プログラム(エクセル)ですが、時間が
あったら、修正(データ取得先が変わったり、ゴミがあったり)して公開します。

7月17ひ

【下落窓空け】
3656 5423
【上昇窓空け】
8844
【陽線の包み】
8028 8574 3391
【陰線の包み】
3386 5479 7220 5632 5481
5344 5851 4343 5186 4091
2329 2594
【下落三空】
  なし
【上昇三空】
  なし
【下ひげ】
2124 8248
【上ひげ】
3398
【上離れ十字】
6935 3432 8804 4842 8522
6507 8074 8977 7908 9008
1884 8368 9735 3865 4704
9020 3360
【下離れ十字】
8175 8392 9065 8333 8880
4694
【明けの明星】
8801
【下げの陽線】
7593 1934 6005 2429
【上げの陰線】
2193 6796 7445 9543 3397
7494 3064 6768 3315 5727
6146 7274 8078 7294 3333
7777 3106 2127 6755 7943
【出来高急増】
  なし
【黒三兵】
6462 4902 6911 8316
【赤三兵】
2267 2333 3249

7月5日の株価チャートサイン

【下落窓空け】
  なし
【上昇窓空け】
8508
【陽線の包み】
6317 8574 6486 7541 7947
3302
【陰線の包み】
5915 6269 8007 6641 3101
4078 6419 3046 9507 1973
9616
【下落三空】
  なし
【上昇三空】
  なし
【下ひげ】
  なし
【上ひげ】
  なし
【上離れ十字】
8515 5481 7276 8175 8196
2432 3401 8125 3048 7550
2767 3269
【下離れ十字】
1898 8795 7007 7952 8604
1976 7721 6844 7725 4631
8360 9021 6417 5332 9101
4005 8703 3861 8982 2685
【明けの明星】
  なし
【下げの陽線】
9699 6432
【上げの陰線】
3845 2751 6358 6312 4406
5603 8291 7599 1883 5809
7459 6326 7222 6425 2670
8185 2130 6383 1881 8895
【出来高急増】
  なし
【黒三兵】
8804 2706 1972
【赤三兵】
2333 2400 4045

ひさしぶりにです。

7月2日

【下落窓空け】
6255
【上昇窓空け】
8890
【陽線の包み】
8574
【陰線の包み】
5479 7593 7451 9742 6920
1332 1911
【下落三空】
  なし
【上昇三空】
  なし
【下ひげ】
7942
【上ひげ】
3658
【上離れ十字】
2341 8600 5017 4005 9370
9101 9605 8360 1888 2733
6787 8392 8848 8090 6701
8015 4680 5741 5738 8985
【下離れ十字】
2687 7956
【明けの明星】
  なし
【下げの陽線】
  なし
【上げの陰線】
2124 8844 3645 8879 6432
9204 9507 6816 2410 3608
6339 6752 9509 2288 7740
9072 7245 8894 5852 6727
【出来高急増】
  なし
【黒三兵】
5358 6932
【赤三兵】
2333
カテゴリ別アーカイブ
記事検索
---ご紹介---

ソフト販売グレップス
パソコンレジソフトお試しDLあり
アンドロイドアプリ「消費税電卓」無料ダウンロード
明星塾 (白金台 英語個別指導)
個別指導でその生徒さんに合った指導を行っています
鈴木塾 (自由が丘 学習塾)
1クラス5人までの少人数制。納得するまで質問に答えます
旅館明治
山梨甲府湯村温泉 太宰治の宿
株式会社ベイ・アクティブ
横浜・上大岡の不動産屋
REPEAT
フィリピンでの結婚書類翻訳申請
Adsence
  • ライブドアブログ