【MT4】ヒストリカルデータの異常な価格を検出するスクリプト

FXDDのヒストリカルデータはこちらから手軽にダウンロードできるのですが、たまに異常な価格が紛れていることが有ります。
1分足のOpen/Closeの価格が前後の足と大きく乖離している箇所を検出するスクリプトを作って確認してみました。初期設定では価格が1%以上乖離している足を検出します。
 
1分足の異常な価格を検出.mq4
  1. #property copyright "Copyright 2015, nekonote"
  2. #property link      "http://nya0nekonote.blog.fc2.com/"
  3. #property version   "1.00"
  4. #property strict
  5. #property script_show_inputs
  6. //--- input parameters
  7. input double InpThreshold=1.0; // 異常価格検出の閾値(%)
  8. //+------------------------------------------------------------------+
  9. //| Script program start function                                    |
  10. //+------------------------------------------------------------------+
  11. void OnStart()
  12.   {
  13. //---
  14.    int i,object_cnt=0,object_color=clrMagenta;
  15.    double open_diff,close_diff;
  16.    string object_name,object_name_prefix="detect_abnormal_#";
  17.    string result_time_list="";
  18.    
  19.    // Arrow削除
  20.    //ObjectsDeleteAll(0,OBJ_ARROW);                     // Build830まで
  21.    ObjectsDeleteAll(ChartID(),object_name_prefix);    // Build840以降で使用可能
  22.    
  23.    for(i=1;i<Bars-1;i++)
  24.    {
  25.       // 当BarのOpenと1つ前のBarのCloseが閾値以上離れていて、
  26.       // かつ当BarのCloseと1つ後のBarのOpenが閾値以上離れていたら、異常な価格と判定する
  27.       open_diff=MathAbs(Open[i]-Close[i+1])*100/Open[i];
  28.       close_diff=MathAbs(Close[i]-Open[i-1])*100/Close[i];
  29.       if(open_diff>InpThreshold && close_diff>InpThreshold)
  30.       {
  31.          result_time_list=StringConcatenate(result_time_list,"\n",TimeToString(Time[i],TIME_DATE|TIME_SECONDS));
  32.          
  33.          // Arrowを表示
  34.          object_cnt++;
  35.          object_name=StringConcatenate(object_name_prefix,IntegerToString(object_cnt,5,'0'));
  36.          if(ObjectCreate(ChartID(),object_name,OBJ_ARROW_STOP,0,Time[i],High[i]*1.001))
  37.          {
  38.             ObjectSetInteger(ChartID(),object_name,OBJPROP_COLOR,object_color);
  39.             ObjectSetInteger(ChartID(),object_name,OBJPROP_WIDTH,5);
  40.             ObjectSetString(ChartID(),object_name,OBJPROP_TEXT,StringConcatenate("[abnormal]",TimeToString(Time[i],TIME_DATE|TIME_SECONDS)));
  41.          }
  42.       }
  43.    }
  44.    
  45.    if(result_time_list=="")
  46.       Comment("問題は見つかりませんでした。");
  47.    else
  48.       Comment("1分足の異常な価格を検出しました。該当の日時は以下のとおりです。",result_time_list);
  49.    
  50.   }
  51. //+------------------------------------------------------------------+

 
FXDDのUSDJPY1分足ヒストリカルデータで試すと異常値が2箇所見つかりました。この2箇所はネット上でも既に指摘されていますのでご存知の方も多いかもしれません。
FXDD_historical_price_abnormal.png
 
検出した箇所にArrowオブジェクトを置いているので、チャートでCtrl+Bを押して「表示中のライン等一覧」を表示させ、Arrowを選択して表示ボタンを押せば、検出箇所を表示することが出来ます。
FXDD_historical_price_abnormal_arrow.png
 
ちなみにMetaQuotesのUSDJPYヒストリカルデータでは1箇所の異常値が見つかりました。
なお1999年以前については日足の精度しかないので無視です (^_^;)
MetaQuotes_historical_price_abnormal.png
 
他にFXCM・Dukascopy(Tickstory)・ForexiteのUSDJPYヒストリカルデータを確かめましたが、1%以上乖離している異常な足は見つかりませんでした。
 
1分足に異常な価格が含まれていると上位足にも影響が出てしまいますので、異常値を削除して上位足を作りなおした方が良いでしょう。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

コメント

Secret

プロフィール

nekonote

Author:nekonote

EAを作るのが趣味になってしまったらしい。

あとマニアックな運用とかetc...その時の気分で書き殴る(?)
そんなブログ

※当ブログ記事へのリンクはご自由にどうぞ

 
運用は…fx-onのみんなのMT4に公開しているかも?
fx-on 通常会員ページ
fx-on 出品者ページ

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
ブログランキング
にほんブログ村 為替ブログ システムトレード 自作EA派へ





QRコード
QR
RSSリンクの表示
リンク
FX情報サイト
 優秀トレーダーの投資法をゲット!
FX投資情報コミュニティfx-on.com


国内MT4取扱会社
外為ファイネスト カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

アヴァトレード・ジャパン株式会社 カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

FOREX.com×タイアップキャンペーン☆Beatrice-07 FXTF×ForexSolidタイアップキャンペーン



自作EA紹介


EAフォワード集計結果
海外MT4業者
海外業者を選ぶ際は、まず金融庁の「注意喚起」を熟読して下さい。無登録業者で事故っても自己責任ですよ!
自分はゲムトレード&GEMFOREXに突撃してみましたw




自分もカコテンシリーズを幾つか出品しています。 運用結果でネタが集まれば時々記事にします。

ゲムトレードはEAの将来価値をリスクヘッジするには良い仕組みを提供していると思います。ただし本当に実力のあるEAはfx-on等から買った方が良いでしょう。
取引明細には現れませんがIBのような仕組みでゲムトレードへ報酬が渡っていますので、単一EAの長期運用ではデメリットが成績に現れると思われます。

※繰り返しますが海外業者でトラブっても自己責任です。お忘れなく!
FX専用VPS
レンタルサーバーなら使えるねっと



みんなのMT4
紫色:リアル口座
水色:デモ口座
ねこぱんち | fx-on.com
ねこぱんちMAXでも | fx-on.com
ねこのまえあし | fx-on.com
€$ XM demo | fx-on.com
£$ FxPro demo | fx-on.com
€¥ IFC Markets demo 2nd! | fx-on.com
£¥ IC Markets demo  | fx-on.com
$¥ MGK Global demo | fx-on.com
BigBoss demo AUDJPY | fx-on.com
€x LandFX demo | fx-on.com
KAKO10 iIchimoku リアル OANDA | fx-on.com
KAKO10 iIchimoku デモ FXTF | fx-on.com
KAKO10_iMA(H27.5~) | fx-on.com
KAKO10 iMA デモ Axiory(運用終了) | fx-on.com
KAKO10 iMA デモ Axiory新鯖 | fx-on.com
Ava demo iOsMA方向性スイング(運用終了) | fx-on.com
カコテン iOsMA (type DI) デモ Centrade | fx-on.com
カコテン iMomentum (type DI) デモ Arena | fx-on.com
瞬殺!!! NCSEC demo ※運用終了 | fx-on.com
GEMFOREX demo 新サーバーお試し ※破綻 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com