2016年5月27日金曜日

[MT4インジケータ]2016/05/27のフラクタルバンド

販売中のフラクタルバンドのEURUSDとUSDJPYの表示を紹介していきたいと思います。ご購入の参考に。無料で使用できる試用版もございます。

■フラクタルバンド EURUSD D1

■フラクタルバンド EURUSD H1

EURUSDは、フラクタルバンド判定では、日足では買い継続、時間足では売りとなっていますが、フラクタルからのトレンド判定ではレンジ相場を示しています。時間足のトレンドライン角度も緩やかになりつつあります。時間足トレンドラインを上に抜けると、時間足で買いトレンドに転換していくことになりそうです。

■フラクタルバンド USDJPY D1

■フラクタルバンド USDJPY H1

USDJPYは日足は下げトレンドです。時間足はフラクタルトレンドもフラクタル相関もレンジ相場を示しています。レンジ相場ということで、フラクタルから求めた高値安値の範囲も表示してみたいと思います。

インジケータの設定を下記に変更しました。
・上限下限バンドを表示するかどうか true
・上下回帰直線を描画するかどうか false
・合成回帰直線を描画するかどうか false
・合成回帰直線平行線を描画するかどうか false

■フラクタルバンド USDJPY H1 レンジ表示

110.5~109.4の範囲のレンジであることが描画されます。

フラクタルバンドは試用版を公開中です。
フラクタルバンド2016/06/24まで使用可能な試用版
フラクタルバンド 試用版

フラクタルバンド 1680円 認証コードなしの売り切りにて販売中です。
頂点位置からレンジ帯を表示する
フラクタルバンド

P.S.
本業のほうが、いよいよ忙しくなってきました。
ちょっと新しいことを調査して記事にする時間はなさそうですので、販売中のインジケータ表示などを紹介していきたいと思います。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2016年5月26日木曜日

[MT4プログラム]バックテストでEAの呼び出し一回目はヒストリカルデータが構築されていない場合がある対策

EAのバックテストで謎現象に悩まされていました。

次の構文をOnTickの頭で記述してあります。

   // バー数が少なすぎる場合は、処理しない。
   if( iBars(Symbol(), PERIOD_D1) < 100 ) return ;
   Print("iBars(Symbol(), PERIOD_D1)=", iBars(Symbol(), PERIOD_D1));

その際の操作履歴での結果で
iBars(Symbol(), PERIOD_D1)=0
と表示される場合があります。

・・・・
・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・オイ(--#

iBars(Symbol(), PERIOD_D1)を2回呼び出しています。1回目で値が100未満であれば、処理を終了してしまうアルゴリズムです。
2回目は値を単純に操作履歴に表示するだけですが、1回目と2回目の間には何も入っていないため本来であれば、100以上の値が帰ってくるはずです。

ところが、1回目では100以上の値が帰ってきたのに、2回目では0が帰ってくるという謎現象となっています。

EAは5分足をみて動かしていましたので5分足チャートで動かしています。 そのためなのか、なぜか日足のデータが正しくとれない場合があると想定しました。起動直後に1発目から取れないのであれば、まぁ仕方がないと思うのですが、続けて2回同じ関数を呼び出したうえで、1回目と2回目で結果が違うというのは、これいかに?1回目が0で2回目が1以上というのであれば、MT4の動きとして理解できるのですが・・。

ま、最終的にはMT4のバグじゃないかなぁと思うのですが、仕方がありません何かしら対策を打ちたいと思います。

さて、原因を探るためにGetLastErrorという関数をコールしてみます。
コード的にはこんな感じです。

   //インジケータの計算
   int ratesTotal = iBars(m_symbol, m_timeframe);
   if( ratesTotal == 0 )
   {
      Print("iBars return zero GetLastError= ", GetLastError());
   }

これで、操作履歴を見ると
GetLastError=4073
というログが残っていました。

MQL4.com Runtime Errors

から4073はNO HISTORY DATAとのこと。

・・・・。じゃぁ最初から0返せ!と言いたくなりますが、とても言いたくなります(大切なので2回言いました!)が、まぁこのように動くものは仕方がありません。

まぁ仮定に仮定を重ねる形になりますが、1回目の呼び出しではキャッシュ上かなにかの履歴を見ますが、その際実際に通信してデータが取れてきていない状態になるため、2回目で0リセットされてる・・・・・・のでしょうか・・・・。でもバックテストだし(自信なし)

そうはいっても、何かしら対策を打つ必要があります。

ヒストリデータは、iClose関数など価格情報を読みむ関数をコールすると構築されます。
そこで、EAの頭で、あらかじめiClose関数で価格データを読み込みします。


//------------------------------------------------------------------
//初期化
int OnInit()
{
   // 初回価格データを読み込み、ヒストリーを構築する。
   for( int i = 0; i < 500; i++ )
   {
      iClose(Symbol(), PERIOD_D1, i);
   }

   return(INIT_SUCCEEDED);
}

上記処理を入れたところ、2回目でiBarsが0を返すような症状は発生しなくなりました。
うーん。うーん。うーーーーーーーーーーーん。

気持ち悪いですがおまじないということで。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2016年5月25日水曜日

[MT4インジケータ]TEMA傾き累積インジケータによるトレンドフォロー 追加考察 その3

TEMA傾き累積インジケータを使った戦略の続きです。
また時間が空いてしまいましたが、EAに少し改良を加えてみたのでサラッとだけ。

これまでの記事はこちら
TEMA傾き累積インジケータによるトレンドフォロー 追加考察
TEMA傾き累積インジケータによるトレンドフォロー 追加考察 その2

前回の記事の追撃ありの場合と追撃なしの場合を見比べていて、PFが1.28→1.41と上昇していたので、「もしかして1回目の売買タイミングのほうがダマシが多くて、追撃のタイミングのみで売買したほうが効率いいのかな?」と予想してやってみることにしました。
その結果がこちら。

通貨ペアEURUSD (EUR/USD)
期間15分足(M15) 2011.01.03 00:00 - 2015.12.31 00:00 (2011.01.01 - 2015.12.31)
モデルコントロールポイント(おおまかな方法。結果はあまり信頼性はない)
パラメーターMagicNumber=55351234; Lot=0.1; SpreadFilter=5; MaxPosition=8; Slippage=5; CloseBarCount=110; CloseLimitBarCount=80; StopLoss=100; TakeProfit=400; FixProfit=40; MinProfit=2; Threashold=5; EnableDiff=2; PositionPeriod=5; PositionStdPeriod=21; PositionEmaAlfa=0.8; PositionSigma1=0.7; PositionSigma2=2; ScanPeriod=60;
テストバー数124772モデルティック数4393676モデリング品質n/a
不整合チャートエラー0
初期証拠金10000.00スプレッド現在値 (5)
純益16799.60総利益37876.10総損失-21076.50
プロフィットファクタ1.80期待利得23.56
絶対ドローダウン1137.50最大ドローダウン3758.60 (18.00%)相対ドローダウン19.84% (2193.70)
総取引数713売りポジション(勝率%)713 (64.66%)買いポジション(勝率%)0 (0.00%)
勝率(%)461 (64.66%)負率 (%)252 (35.34%)
最大勝トレード400.00敗トレード-100.00
平均勝トレード82.16敗トレード-83.64
最大連勝(金額)23 (1319.70)連敗(金額)19 (-1305.00)
最大連勝(トレード数)3045.40 (17)連敗(トレード数)-1305.00 (19)
平均連勝8連敗5

利益が1.5倍ほどになりました。PFも1.80と高くなっています。
ちょっと極端に上がった気がしないでもないですが、期待通りの結果となりました。

思いついたことをやってみて期待通りの結果が出るのは気持ちがいいですね。これが自作EAならではの楽しさじゃないかなと思います。

TEMAの傾き量インジケータの無料ダウンロードはこちらから
TEMAの傾き量でトレンドフォロー
TEMAの傾き量でトレンドフォロー

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2016年5月24日火曜日

[MT4インジケータ]フラクタルバンド トレンドフォローで取引してみるバックテスト

フラクタルでトレンドラインを引いた際、やはりはっきりと出やすいのは日足です。

日足において合成トレンドラインが上昇トレンドかつ-1σを下回っている段階で、短期トレンドが上向きになった場合、買い。売りはその逆でバックテストをしてみました。

1ロット0.02 最大11ポジションにてトレードします。Gewinn7のポジションシグナルをフラクタルトレンドに置き換えた形です。

■フラクタルバンド トレンドライン日足 EURUSD 1Hベース

通貨ペアEURUSD (Euro vs US Dollar)
期間15分足(M15) 2007.01.02 08:00 - 2015.12.31 00:00 (2007.01.01 - 2015.12.31)
テストバー数223183モデルティック数7618960モデリング品質n/a
不整合チャートエラー0
初期証拠金10000.00スプレッド15
純益5330.39総利益10410.49総損失-5080.10
プロフィットファクタ2.05期待利得3.92
絶対ドローダウン143.18最大ドローダウン498.12 (3.22%)相対ドローダウン3.50% (412.30)
総取引数1361売りポジション(勝率%)658 (81.91%)買いポジション(勝率%)703 (81.65%)
勝率(%)1113 (81.78%)負率 (%)248 (18.22%)
最大勝トレード80.19敗トレード-40.24
平均勝トレード9.35敗トレード-20.48
最大連勝(金額)54 (330.25)連敗(金額)14 (-223.20)
最大連勝(トレード数)849.82 (32)連敗(トレード数)-315.23 (9)
平均連勝15連敗3

かなりいい感じです。トレンドには逆らうなということがわかります。

ちなみにこのアルゴリズムだと、ドル円は現在売り、ユーロドルは時間足のトレンドが転換したら買いとなります。(ユーロドルは短期トレンドが売りのままですので、まだ買いタイミングではありません。)

こんな感じで判断します。日足合成トレンドライン±1σ、時間足は±2σに平行線を描画しています。
■USDJPY D1 フラクタルトレンド

■USDJPY H1 フラクタルトレンド

合成トレンドラインが売りに傾いています。相関係数的にはレンジ相場を示しています。
今回検証したアルゴリズムですと、このタイミングで売りとなります。

■EURUSD D1 フラクタルトレンド

■EURUSD H1

現在フラクタルトレンド 相関係数がマイナス-0.5付近で売りトレンド中です。合成トレンドラインも売り状態で、まだ買場ではありません。

相関が-0.3~0.3でレンジ相場、0.3~買いトレンドとなります。

トレンドライン・バンドによるプライスアクションベースでの素早い判断と、相関係数での長期判断、インデックスベースでの中期判断と状況に応じたインジケータが含まれています。

皆さまもぜひご確認ください。

フラクタルバンドは試用版を公開中です。
フラクタルバンド2016/06/24まで使用可能な試用版
フラクタルバンド 試用版

フラクタルバンド 1680円 認証コードなしの売り切りにて販売中です。
頂点位置からレンジ帯を表示する
フラクタルバンド

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

[MT4インジケータ]フラクタルバンド 試用版公開中

フラクタルバンドの2016/06/24まで無料で利用可能な試用版を公開しました。
ご購入の際の検討材料にご利用ください。

フラクタルバンド2016/06/24まで使用可能な試用版
フラクタルバンド 試用版
フラクタルバンド 試用版 | fx-on.com 

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

[雑記]ドル建ての積立をEAで検証してみる

今回はテクニカルとは関係ないお話を軽く。

最近は、ドル建て等で外貨預金をする人も珍しくないかと思います。
また学資保険なんかでも、ドル建てで積み立てする人も少なくないのではないでしょうか。

外貨建ての積み立てをする場合に一番考えなくてはいけないのは為替リスクでしょう。

どの程度のリスクが発生するのか?過去のデータから調べてみる際に、EAを使ったバックテストが役に立ちます。

ということで、月に1度、決まった額でドルを買うという積み立てをEAでちょっと検証してみました。

また、ドル建ての積み立てでは、毎月決まったドル額を買う場合がありますが、毎月決まった円金額で積み立てるドルの通貨数を変えるドルコスト平均法も選択肢に入ります。その違いを含めて比較してみましょう。

積み立て期間10年で、約200万円を積み立てるという例で、積み立て期間を1年ずつずらしてみた結果がこちら。

■ドルコスト平均法で17,000 円/月で積み立てた場合
  総積立金額(円) 総保有ドル 平均ドル単価(円) 最終ドル単価(円) 損益(円) 利益率
2006~2015年 2,040,000 20,775 98.19 120.52 469,519 23.0%
2005~2014年 2,040,000 20,954 97.36 119.46 468,700 23.0%
2004~2013年 2,040,000 20,905 97.58 105.14 163,852 8.0%
2003~2012年 2,040,000 20,533 99.35 85.89 -270,084 -13.2%
2002~2011年 2,040,000 19,583 104.17 76.95 -526,686 -25.8%
2001~2010年 2,040,000 18,711 109.03 81.49 -508,214 -24.9%
2000~2009年 2,040,000 18,293 111.52 92.42 -342,567 -16.8%

■160 ドル/月で積み立てた場合
  総積立金額(円) 総保有ドル 平均ドル単価(円) 最終ドル単価(円) 損益(円) 利益率
2006~2015年 1,923,644 19,200 100.19 120.52 390,325 20.3%
2005~2014年 1,901,780 19,200 99.05 119.46 391,453 20.6%
2004~2013年 1,906,554 19,200 99.30 105.14 112,227 5.9%
2003~2012年 1,945,717 19,200 101.34 85.89 -296,451 -15.2%
2002~2011年 2,034,963 19,200 105.99 76.95 -557,439 -27.4%
2001~2010年 2,113,966 19,200 110.10 81.49 -549,189 -26.0%
2000~2009年 2,150,841 19,200 112.02 92.42 -376,274 -17.5%

最大で約±25%、50%近くの差があります。これだけ差があると、多少の運用利益の差はひっくり返ってしまいます。
このように外資積み立てというのはかなりリスクが大きい投資であることがわかります。

解約のタイミングが重要になります。当たり前ですが平均購入単価より高い金額で決済しないと、マイナスになってしまいます。

さて、平均単価を比べてみます。円基準のドルコスト平均法で購入した場合と固定ドル数で購入した場合、平均単価が1~2円近く安くなっています。その分利益額や利益機会が多くなります。

例えば保険でドル基準の商品のほうが運用利率がいいものもあるかもしれませんが、平均単価の差だけで2%くらいの差が出そうですのでひっくり返ってしまうかもしれません。

まとめです。
・外貨投資は多少の利率は為替変動リスクで吹き飛んでしまう可能性がある。
・今回の場合は(定期的に毎月買うような場合)ドルコスト平均法のほうが効果が高い。

このようにバックテストで投資効果を確認というのもちょっと違った使い方です。

ちなみに実施FX業者を使った仮想積み立てをやろうと思うと、MT4では1000通貨単位でしか取り扱えない所が多いため、数万円の定期預金気分ではちょっと使えません。

ただし、OANDAのWebAPIなどを使うと1通貨単位から取引可能ですので、それこそ本当に外貨定期預金のつもりで取引が可能です。

また、取引ルールも、ドルコストや定額だけではなくて、日銀のように1%下がった買うとかいうルールも考えられます。運用が入らない外資積み立てという意味では、銀行任せの外貨定期預金より自分ルールで組み立てるFXを活用した仮想積み立てのほうがおもしろいと思ってしまうのは私だけでしょうか?あと、スプレットもFX業者のほうが基本小さいですしね。

ちなみに個人的な意見ですが、日本は、ここ40年継続して大きな流れでは円高でデフレです。投資という意味で単純に海外通貨や債権を購入するのはどうかな?と考えてしまいます。日本に何かあった場合の退避資産として割り切るぐらいの気持ちでないといけない気がします。
投資で考えるなら、世界的にはインフレの流れであることを考慮して世界株なんだろうなと思う今日この頃です。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2016年5月23日月曜日

[MT4インジケータ]フラクタルによるトレンド描画 EURUSDサンプル

フラクタルによるトレンド描画サンプルです。

購入のご参考にEURUSDにおける各時間帯の描画です。現在こんな感じです。

■EURUSD D1

■EURSUD H1


■EURSUD M15


EURUSDですが、日足では、上昇トレンドです。トレンド下限に達しています。時間足では下降トレンドですがトレンド上限に達しています。15分足では上昇トレンド中です。

日本時間はトレンド下限とみて逆張りの下値拾い中に見えますね。
時間足で見るなら売り、日足で見るなら買いとなります。15分足は上昇トレンドですが、フラクタルトレンド高値警戒ラインが近くなってきているのが気になります。

フラクタルバンド 1680円 認証コードなしの売り切りにて販売中です。
頂点位置からレンジ帯を表示する
フラクタルバンド


「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

[MT4インジケータ]フラクタルバンドにトレンドライン描画機能を追加しました。

フラクタルバンドをアップデートします。修正点は下記の通りです。

・フラクタルの回帰直線をトレンドラインとして描画する機能を追加しました。
・フラクタルからダブルトップ・ボトムの矢印を描画する機能を追加しました。
・フラクタルの相関係数を求めて長期的なトレンドをみるインジケータを追加しました。

フラクタルの回帰直線に対する説明は前回記事をご覧ください。
フラクタルからトレンドラインを計算する。最終版

フラクタルの相関係数について下記の記事をご覧ください。
フラクタルで相関係数を計算してみる。

フラクタルトレンドにて短期的な値動きを見ながら、フラクタル相関係数で長期的な値動きを確認します。
またトレンドの上限下限を狙ってより良い位置でポジションを取っていくというのがフラクタルを利用したトレードの基本戦略となります。

■フラクタルバンド 更新内容


フラクタルバンドのパラメータがたくさん増えましたので簡単な説明を載せておきます。
■フラクタルバンドパラメータ

・このPips以下の差分は同じ値として、次の高値安値を調査しにいく。
 上限下限バンドを描画する際、同じ位置のフラクタルを無視する範囲です。

・trueの場合Close値を対象とする。falseの場合高値安値を対象とする。
 フラクタルの計算をClose値で行う場合Trueを指定します。

・Tick値ボリューム値平滑化期間
・Tick値平均期間
・Tick値とTick値を比較する際に平均側に掛けるレート
 フラクタルを算出する際にTick値によるフィルタを行います。レートを0にするとフィルタを行いません。

・ATRフィルタにおけるATR期間
・ATRフィルタ倍率 0の場合フィルタを行わない
 下限値上限値を付けた後の値動きが、ATRを超えない場合はフラクタルとして採用しません。レートを0にするとフィルタを行いません。

・計算対象矢印数
 上限下限バンドを計算する際の計算フラクタル数です。

・回帰直線を描く場合のフラクタル数
 回帰直線を描く場合のフラクタル数です。
 5分足以下の場合は20程度、それ以外では10程度をお勧めします。

・フラクタルを表示するかどうか
 フラクタルとして判定して上下矢印を描画するかどうかを指定します。

・上限下限バンドを表示するかどうか
 フラクタルから求めた上限下限バンドを表示するかどうかを指定します。値動きがレンジを示している場合はこちらの描画をお勧めします。

・ダブルトップ・ボトム矢印を表示するかどうか
 フラクタルがダブルトップ/ボトムを表している矢印を描画するかどうかをしています。
 ポジションのオープンタイミングを計ります。

・上下回帰直線を描画するかどうか
・上下回帰直線を指定σ分だけ外側にずらす
 フラクタルの上矢印、下矢印それぞれから求めた回帰直線を描画するかどうかを指定します。また描画した場合、回帰直線の標準偏差から平行移動する量をσ値で指定します。

・合成回帰直線を描画するかどうか
 フラクタルの上矢印、下矢印両方から求めた回帰直線を描画するかどうかを指定します。トレンド方向を示します。

・合計回帰直線平行線を描画するかどうか
・合計回帰直線平行線のバンド幅
 フラクタルの上矢印、下矢印両方から求めた回帰直線に対する平行線を描画するかどうかを指定します。トレンドに対するフラクタルの発生幅を描画します。

・トレンドラインを自動更新する
 フラクタルが発生するたびにトレンドラインを自動更新するかどうかを指定します。
 Falseにするとチャート左上にトレンドラインを更新するためのボタンが表示されます。

・上矢印タイプ
・下矢印タイプ
・ダブルトップ矢印タイプ
・ダブルボトム矢印タイプ
・上回帰直線色
・下回帰直線色
・合成回帰直線色
 描画に関するパラメータです。好みで変更してください。

フラクタルバンド 1680円 認証コードなしの売り切りにて販売中です。
頂点位置からレンジ帯を表示する
フラクタルバンド

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。