2016年7月29日金曜日

[雑記]ドル円ハードモード 2円爆下げ、1.5円爆上げ、1.5円爆下げ・・・・? ハーモニックで見た場合

いやー、この1週間のドル円ハードモードはすごすぎますね。

クライマックスの今日は2時間ごとに100~200pipsの値動きです。

今日の朝から昼にかけての値動きです。

■USDJPY H1

ものすごい長い下ひげでの買いバタフライ・・・。こんなの取れません。朝ごはんを食べている間の出来事でした・・・。

■USDJPY M15

M15で見ると、買いハモからの5-0観測での売りとなっていますね。こちらは取れないことはなかったですね。

・・・まぁはっきり言って今日はよくわかりません。ここ最近、日銀発表→円暴騰(円高)の流れが続いていますので、事前に警戒されています。
もし暴騰なら、ヨーロッパ時間の頭がクライマックスになるパターンがここ最近多いので、ハーモニックでの逆張り狙うなら夕方5時頃にしたいです。

想像以上の手を打って円暴落(円安)となる場合は、ちょっと様子見ですね。ここ最近円安が一時的になることが多いですが、FOMC声明が改めて利上げ方向に評価されると、円安に流れが変わるかもしれません。

■USDJPY D1 フタクタルトレンドライン

日足のトレンドラインからみても、次に107円台にある程度の日数滞在するなら、トレンドブレイクとみることができそうです。
トレンドに従って円高に振れると次はいよいよ95円が見えてきます・・・。

記事を書いているそばから、また1円値動き・・・見ている分には楽しいですが、参加している人たちはドキドキですね(笑)

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

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

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

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

2016年7月28日木曜日

[ハーモニック]トレード履歴 EURUSD 売りハモ参入&夏バテにご注意

■EURUSD H1

■EURUSD H4

売りハモからの売り参入です。
エントリラインちょと手前で参入しました。
H4での上限トレンドの目標にいい感じにタッチしたためです。
トレンドラインを明確に超える1.14を損切りに、利益目標は1.1014としています。

さてどうなることでしょう?
ちなみに、先程まで夏バテで寝込んでいました^^;;;;

ハーモニックパターンを自動検出するインジケータ
ハーモニックパターン検出インジケータ

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

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

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

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

2016年7月27日水曜日

[ハーモニック]バグ発見報告

ハーモニックパターン検出インジケータ でバグを発見してしまいました。

昨日のブログ記事で書いたUSDJPY H1のバタフライですが、インジケータを再描画したら消えてしまいました。

ただいま、調査中です。対策版をアップデートいたしますので、しばらくお待ちください。



2016/07/27 12:36追記
アップデートを行いました。

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

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

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

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

2016年7月26日火曜日

[ハーモニック]トレード履歴 久しぶりにUSDJPYに手を出す。バタフライからの買い。飛んで行くか?

■USDJPY H1

今日の下げ局面で、たくさん買いハモが観測されましたが、ようやく、ターゲットライン超えをしたため、買い参入です。

28日の日銀政策までは、一時的な期待値による戻りが期待できるという予想もあり機会を伺っていましたが

・綺麗な買いハモ
・ターゲットライン超え
・RCI8しきい値超え

とやっとこさシグナルが揃いました。
念のためRCI8のしきい値シグナルが出た後、ターゲットライン付近で下げ渋ったのを確認してから参入してみました。
ある程度の時間をかけて価格が大きく動いた時の逆張りは、多少慎重になっても大丈夫なことが多いです。

昨日のEURUSDも様子を見る時間が十分ありましたね。

トレード補助ツールでポジションオープンしたため、本を読んでいる間にブレークイーブン処理が走って損切り位置が移動していました。

ターゲットはDC0.382と浅めにしてあります。

あ、ちなみに9とか8とか出ているのは、PeakyFxさんのTD Sequentialも表示しています。
ハーモニックと同様に逆張り系のインジケータなので、見比べるために使用しています。

ハーモニックは波形形状解析なのですが、TD Sequentialも大きな意味では仲間です。単純化してカウントするというやり方をしています。

チャートの天底を取る!
トム・デマークの傑作、TD Sequential
トム・デマークの傑作、TD Sequential | fx-on.com


ハーモニックパターンを自動検出するインジケータ
ハーモニックパターン検出インジケータ

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

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

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

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

Gewinn7/8を2.03/1.03のアップデートを申請しました。バグフィックスとなります。

Gewinn7/Gewinn8において、M5チャートにてEAを動かしていると、正しく発注処理が行われない業者がある件を対応したバージョンのアップデート申請を行いました。

Gewinn7 2.03
Gewinn8 1.03

Gewinn7/8は、基本的に3時間ごとにポジションをとります。稀に、1時間間隔でもポジションをとりますが一回だけになります。
中期下げトレンド中に、短期トレンドが上げから下げに転じた場合などは、3時間おき制限を無視して1回だけ売りポジションをとります。買いの場合は逆です。

これが、毎回1時間間隔でポジションをとるような場合は、まず下記の作業をお試しください。

1.一度チャートをすべて閉じてください。
2.MT4→ファイル→データフォルダを開く にてデータフォルダを開いてください
4.MT4を終了します。
3.データフォルダ/history/業者名/EURUSDXXX.hstファイルを全て削除します。
4.MT4を起動します。
5.EURUSD D1、H1、M5のチャートを開きます。
6.それぞれのチャートで、チャートのスクロールが止まるまで、一番古いデータを表示させます。
7.EURUSD H1でEAを起動します。

このEAは、M5で動作しますが、基本どの時間足のチャートに挿入してもEURUSDであれば正しく動作するように設計していました。ただ、これが正しく動作しない環境があるかもしれません。

その場合H1が一番重要な足となりますので、H1のチャートに挿入してみてください。

上記の作業とアップデートで改善すると考えていますが、それでも改善しない場合は、メッセージにてご連絡ください。

その際、お使いの業者名も合わせましてご連絡よろしくお願いいたします。

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

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

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

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

2016年7月25日月曜日

[MT4プログラム]EA内でマルチタイムフレームを見る場合、常時取得しないと値がずれる

Gewinn8のコミュニティで、おかしな動き(SELLしかしない)をするという報告がありました。

直接的には、その現象とは関係ないのですが、調査している途中に、不思議な現象を確認しました。

たとえば、5分足でEAを動かしている際、足の期間の違う3つの最新足のClose値を見るとします。

double closeM5 = iClose(NULL, PERIOD_M5, 0);
double closeH1 = iClose(NULL, PERIOD_H1, 0);
double closeD1 = iClose(NULL, PERIOD_D1, 0);

時間足が異なろうが、最新足のクローズ値は基本変わりません。
現在価格が、見る足によって変わったら困りますよね?

・・・・・。この困る現象が発生します(滝汗)

例えば、このプログラムは5分に一回だけ動くEAだとします。M5に新しい足が追加された時だけ動くような形になっている感じです。

その時1時間足、1日足をとると、古い値が帰ってくるのです。

具体的には、次のコードで、if文の中に入ってきてしまいます。
   double closeM5 = iClose(NULL, PERIOD_M5, 0 );
   double closeH1 = iClose(NULL, PERIOD_H1, 0 );
   double closeD1 = iClose(NULL, PERIOD_D1, 0 );
   if( closeM5 != closeH1 || closeM5 != closeD1 )
   {
      PrintFormat("miss match %f %f %f", closeM5, closeH1, closeD1);
   }

ここからは、動作から見た推測になります。
MT4は、価格情報をサーバーから取得しますが、表示していないチャート時間足毎の情報までは構築していません。

iCloseなどの問い合わせがあって、初めて構築します。その際、MT4はいったん古い情報を返した後、改めて内部で構築、サーバーから再取得を行っているようです。

いったん、iCloseがその時間足で呼ばれると、しばらくは取得していますが、ある程度呼び出しがないと再び取得を停止するようです。

そのため、この症状を解消するには、とにかくTickの発生の度にすべての価格情報をいったん読み取る必要がありそうです。

■症状が発生するコード
//------------------------------------------------------------------
// 気配値表示処理   
void OnTick()
{
   //5分に一回だけ動作する
   static datetime lastUpdate = 0 ;
   datetime current = iTime(Symbol(), PERIOD_M5, 0);
   if( lastUpdate == current ) return ;
   lastUpdate = current;

   //ヒストリカルデータは取得する。
   double closeM5 = iClose(NULL, PERIOD_M5, 0 );
   double closeH1 = iClose(NULL, PERIOD_H1, 0 );
   double closeD1 = iClose(NULL, PERIOD_D1, 0 );
   if( closeM5 != closeH1 || closeM5 != closeD1 )
   {
      PrintFormat("miss match %f %f %f", closeM5, closeH1, closeD1);
   }

■症状が発生しないコード
//------------------------------------------------------------------
// 気配値表示処理   
void OnTick()
{
   //ヒストリカルデータは取得する。
   double closeM5 = iClose(NULL, PERIOD_M5, 0 );
   double closeH1 = iClose(NULL, PERIOD_H1, 0 );
   double closeD1 = iClose(NULL, PERIOD_D1, 0 );
   if( closeM5 != closeH1 || closeM5 != closeD1 )
   {
      PrintFormat("miss match %f %f %f", closeM5, closeH1, closeD1);
   }

   //5分に一回だけ動作する
   static datetime lastUpdate = 0 ;
   datetime current = iTime(Symbol(), PERIOD_M5, 0);
   if( lastUpdate == current ) return ;
   lastUpdate = current;



この現象は、マルチタイムフレームだけではなく、多通貨を同時に監視するようなEAにも同じことが言えます。
まとめると下記の通りです。

1.最新値が読めるのは、EAが挿入されているチャートの値のみ。

2.他の通貨や時間は最新値ではない。

3.一回iCloseなどで価格を取りに行くと、そのタイミングで最新値を構築する。
 ただし、その際、iCloseはいったん古いデータを返却する。

4.一度最新値を構築すると、しばらく(1分ぐらい?)は構築し続ける。

ということで、対策は、処理の頭で、使う時間軸と通貨のiCloseを読み込み続けるということになるかと思います。

Gewinn8のように、5分一回しか動作しないし、数秒ずれたところで・・・というEAでは特に問題ないかもしれませんが、スキャル系に1秒を争う場合はちょっと許容しがたい処理遅れになるかしれませんね。このあたりは、処理内容で、価格チェックをする場合と、発注処理をする場合とで切り分けるなど、工夫が必要そうです。

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

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

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

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