English Русский 中文 Español Deutsch Português
いくつかの都市伝説の検証『アジアセッションでの取引のように、一日の取引が動く』

いくつかの都市伝説の検証『アジアセッションでの取引のように、一日の取引が動く』

MetaTrader 4トレーディング | 22 12月 2015, 15:54
841 0
Игорь
Игорь

概論

こんにちは!すでに約一年間FX取引で何かしら稼ごうとし、それで1つの小さなデポジットを失った者として、タバコを咥えながら、このようなテーマで利口ぶる権利はあると思っています。

テクニカル分析の全てのような大きな秘密は誰にも明かしませんが、簡単に言うならば、要点は規則性の発見になります。もしあなたが新月の真夜中に、ドルが一番初めの鶏までに下がり始めると95パーセントの確率で予想するなら、自然とあなたはこの時点で、この情報に基づいて取引を行います。

様々なFXフォーラムで実際の取引に使える情報の粒を探す中で、普遍的な真実になっている異なる見解を幾度となく見かけました。MTVの『神話の破壊者』という悪くない番組があるのですが、そこでは2人のアメリカ人がいわゆる『普遍の真実』を実地で検証し、実際にそれがどうなのかを見せてくれます。

そこで、私も様々なFXのまたは『FXに近い』もののグル(翻訳者注:インドなどの精神的指導者)によって、『不変』とされたいくつかの格言を検証することにしました。今日は次の見解を検証していきます。

『アジアセッションでの取引のように、一日の取引が動く』。

老人アインシュタインは、この世界の全ては相対的であると断言しましたが、何かしらの主張の具体的現象に移るとすぐに、彼がどれだけ正しかったかを確信します。例えば、アジアのセッションは何時から何時まででしょうか?取引セッションのスケジュールが記載された、以下の表を見てみましょう。


エリア 冬期
Open
冬期
Close
夏期
Open
夏期
Close
ASIA 東京
香港
シンガポール
03:00
04:00
04:00
11:00
12:00
12:00
04:00
05:00
04:00
12:00
13:00
12:00
ヨーロッパ フランクフルト
チューリッヒ
パリ
ロンドン
9:00
9:00
9:00
10:00
17:00
17:00
17:00
18:00
09:00
09:00
09:00
10:00
17:00
17:00
17:00
18:00
アメリカ ニューヨーク
シカゴ
16:00
17:00
24:00
01:00
16:00
17:00
24:00
01:00
太平洋 ウェリントン
シドニー
00:00
01:00
08:00
09:00
00:00
01:00
08:00
09:00

表1 取引セッションのスケジュール

ご覧のように、技術的にアジアは冬は3時から昼の12時まで、夏は4時から13時まで取引を行っています。しかし、ヨーロッパは9時から取引を開始します。さて、純粋なアジアセッションは、3時から9時までなのか、それとも3時から13時までなのか?次にサーバー時間があります。異なる取引センターには異なるサーバー時間があり、それはモスクワ時間と一致するとは限らず、冬時間や夏時間への移行も同じで、移行するところもあればしないところもあります。では、これらを検証していきましょう。そして、『一日の取引が動く』とはどういう意味なのか。これはどう理解したらいいのか?もしセッション全体が強気だった場合、次のセッションまで価格は成長するということでしょうか?

まず初めに、下のチャートの図1を見てみましょう。キム・イーゴリのインディケータ«i-Sessions»を使って、セッション時間ごとに異なる色で着色しました。3時から13時までの時間の『アジア』は、最も暗い色で着色しました。『ヨーロッパ』の9時から18時までは、少し明るめの色、16時から24時までの『アメリカ』は最も明るい色で着色しました。

図1セッションを表すNZDUSDチャート

次に、全くわからない人、つまり初心者トレーダーの為に、とても詳しく説明をしていきたいと思います。

では、以下のタスクの為のエキスパートアドバイザ«1- Session»を書いていきます。

エキスパートアドバイザは、私たちが指定したいセッション時間のオープン価格とクローズ価格を計算する必要があります。もしセッションのオープン価格がクローズ価格を超える場合、セッションはベア、逆の場合はブルであるとします。

もし不合理な事件によって、オープン価格がクローズ価格に等しい場合、セッションはレンジ相場となるでしょう。

エキスパートアドバイザのコードを初心者のために最大限にコメントを入れるよう努めました(私も初心者だから)。

//+------------------------------------------------------------------+
//|                                                    1-Session.mq4 |
//|                              Copyright © 2009, イーゴリ・アレクサンドロフ |
//|                                                sydiya@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, イーゴリ・アレクサンドロフ"
#property link      "sydiya@rambler.ru"

//---- 入力パラメータ

extern string  Open_session="01:00";   // 分析するセッションの開始時間 
extern string  Close_session="10:00";  // 分析するセッションの終了時間
extern int Day_kol_vo=50;              // 分析の為の日数
extern int Hour_kol_vo=15;             // 分析の為のセッション終了後の時間数
extern int Profit=20;                  // チェックするプロフィットレベル

//-----------------------------------------------------------------
string Symb;                           // エキスパートアドバイザが設定されている金融ツール名
//----------------------------開始--------------------------------

int start()
  {                                    // メイン開き括弧 
   int  Shift_open_H1,                 // 日バーと同じ
                                       // オープン時間の時間バー番号
   Shift_open_bars_session,            // セッションが始まる時間バーの番号

   Shift_close_bars_session,           // セッションが終わる時間バーの番号

   STOP_LEVER=0;                       // TPとSLの最小差

   double Open_bars_session,           // セッションの一番初めのバーのオープン価格
   Close_bars_session,                 // セッションの最後のバーのクローズ価格
   Vira_session,                       // セッション期間の最高価格
   Total_TP=0,                         // テイクプロフィット作動カウンター
   Total_SL=0,                         // ストップロス作動カウンター
   Total_day=0,                        // エキスパートアドバイザの作動時のテスト日数
   Total_SL_TP=0,                      // 空セッションカウンター 
   Maina_session;                      // セッション期間の最低価格

   datetime Time_open_day,             // i番目のバーの開始時間

   Time_open_session,                  // datatime形式でテストするセッションの開始時間
   Time_close_session;                 // datatime 形式でテストするセッションの終了時間

   string String_open_H1;              // "yyyy.mm.dd"列形式の 
                                       // テストする日の一番初めの時間バーのオープン時間                     
   bool   Session_buy=false,           // ブルセッションのフラグ
   Session_sell=false;                 // ベアセッションのフラグ                    
   Symb=Symbol();                      // 金融ツール名
   STOP_LEVER=MarketInfo(Symb,MODE_STOPLEVEL);   //TPとSLの最小差

   for(int i=Day_kol_vo;i>0;i --) //一日の時間軸の選択サイクル
     { //日バー選択サイクルの開き括弧
      Total_day++;                            //テストする日数のカウンター

      Time_open_day=iTime(Symb,PERIOD_D1,i); //i番目の日バーのオープン時間をリクエストする 
      Shift_open_H1=iBarShift(Symb,PERIOD_H1,Time_open_day,false); //日バーと同じ
                                                                   //オープン時間の時間バー番号をリクエストする  

      String_open_H1=TimeToStr(Time_open_day,TIME_DATE);  // テストする日の
                                                          // 一番初めの時間バーの開始時間を 
                                                          // datatime形式から"yyyy.mm.dd"期間形式へ変換する

      // datatime形式でテストするセッションの開始時間をリクエストする  
      Time_open_session=StrToTime(String_open_H1+" "+Open_session); 

      // セッションが始まる時間バー番号をリクエストする  
      Shift_open_bars_session=iBarShift(Symb,PERIOD_H1,Time_open_session,false); 

     // datatime形式でテストするセッションの終了時間をリクエストする
      Time_close_session=StrToTime(String_open_H1+" "+Close_session); 

      // セッションが終了する時間バーの番号をリクエストする 
      Shift_close_bars_session=iBarShift(Symb,PERIOD_H1,Time_close_session,false); 

      // 一番初めのセッションバーのオープン価格をリクエストする
      Open_bars_session=iOpen(Symb,PERIOD_H1,Shift_open_bars_session); 

      // セッションの最後のバーのクローズ価格をリクエストする 
      Close_bars_session=iClose(Symb,PERIOD_H1,Shift_close_bars_session); 

      Vira_session=iHigh(Symb,PERIOD_H1,
      iHighest(Symb,PERIOD_H1,MODE_HIGH,(Shift_open_bars_session-Shift_close_bars_session),Shift_close_bars_session));
      // セッション期間中の最高価格を見つける

      Maina_session=iLow(Symb,PERIOD_H1,
      iLowest(Symb,PERIOD_H1,MODE_LOW,(Shift_open_bars_session-Shift_close_bars_session),Shift_close_bars_session));
      //セッション期間中の最低価格を見つける

      if(Open_bars_session>Close_bars_session)
        {
         Session_buy=false;
         Session_sell=true;//オープン価格がクローズ価格より大きい
                           //セッションはベア       
        }
      if(Open_bars_session<Close_bars_session)
        {
         Session_buy=true;
         Session_sell=false;//オープン価格がクローズ価格より小さい
                            //セッションはブル 
        }
      if(Open_bars_session==Close_bars_session)
        {
         Session_buy=false;
         Session_sell=false;//オープン価格がクローズ価格と同等
                            //セッションはレンジ 
        }
      int PEREBOR=0;                       //時間カウンター(コードのテスト) 
      for(int j=Shift_close_bars_session;j>Shift_close_bars_session-Hour_kol_vo;j --)//i日目の 
         //時間軸の時間選択サイクル
        {  //時間バー選択サイクル開き括弧

         PEREBOR++;                           //時間カウンター(コードのテスト)

         if(Session_buy==true && Session_sell==false) //もしブルのセッションの場合
           {
            // もし時間バーの最高価格がセッションのクローズ価格プラス(プロフィット+最小差)よりも大きい場合 
            if(iHigh(Symb,PERIOD_H1,j-PEREBOR)>(Close_bars_session+(Profit+STOP_LEVER)*Point))
              {
               Total_TP++;     //テイクプロフィットカウンターが作動する

               break;          //時間バーの選択が停止
              }
             //もし時間バーの最小価格がセッション期間の最小価格よりも小さい場合
              if(iLow(Symb,PERIOD_H1,j-PEREBOR)<Maina_session)
            
              {
               Total_SL++;     //ストップロスカウンターが作動

               break;          //時間バーの選択が停止
              }

           }
         if(Session_buy==false && Session_sell==true) //もしセッションがベアで
           {
          //もし時間バーの最高価格がセッション期間の最高価格よりも大きい場合
            if(iHigh(Symb,PERIOD_H1,j-PEREBOR)>Vira_session)
         
              {
               Total_SL++;     //ストップロスカウンターが作動

               break;          //時間バーの選択が停止
              }
            //もし時間バーの最小価格がセッションのクローズ価格マイナス(プロフィット+最小差)より小さい場合
            if(iLow(Symb,PERIOD_H1,j-PEREBOR)<(Close_bars_session-(Profit+STOP_LEVER)*Point))
              {
               Total_TP++;     //テイクプロフィットカウンターが作動する

               break;          //時間バーの選択が停止
              }
           }
         if(Session_buy==false && Session_sell==false) //もしセッションがレンジの場合
           {
            Total_SL_TP++;     //カウンターが作動 
            break;          //時間バーの選択が停止
           }

        } //時間バーの選択サイクルの閉じ括弧
      double Pro_Total_TP=(Total_TP/Total_day)*100,//テイクプロフィット作動確率
      Pro_Total_SL=(Total_SL/Total_day)*100,//ストップロス作動確率
      Pro_Total_SL_TP=(Total_SL_TP/Total_day)*100; //レンジセッション確率 
      int
      Total_no=Total_day-Total_SL-Total_TP-Total_SL_TP; //テイクプロフィットもストップロスも作動しなかった
      double
      Pro_Total_no=(Total_no/Total_day)*100;            //テイクプロフィットもストップロスも作動しない確率
      Comment("テスト済",Total_day," 日","\n",
              "セッション開始時間",Open_session,"セッション終了時間",
              Close_session,"セッション後のテストする時間数",Hour_kol_vo,"プロフィット",Profit,"\n",
              "その中からテイクプロフィットが作動した",Total_TP,"回","\n",
              "その中からストップロスが作動した",Total_SL,"回","\n",
              "その中からレンジセッションがあった",Total_SL_TP,"回","\n",
              "テイクプロフィットもストップロスも作動しなかった",Total_no,"回","\n",
              "テイクプロフィット作動確率",Pro_Total_TP," %","\n",
              "ストップロス作動確率",Pro_Total_SL," %","\n",
              "レンジセッションの確率",Pro_Total_SL_TP," %","\n",
              "テイクプロフィットもストップロスも作動しない確率",Pro_Total_no," %");

     } //日バーの選択サイクルの閉じ括弧

   return(0);

  }                                        //-総閉じ括弧

ここで、次の検証方法を注意深く熟読し理解してください。例えば、セッションがベアである場合、セッションの終了価格より低いレベルで指定されたテイクプロフィットを模倣します。プロフィットのところ(変更可)の数値に(Profit+STOP_LEVER) 、これは私たちがテイクプロフィットを設定したいポイントの数です。つまり、セッション中に価格が下がった場合、その後も下がり続けると予想され、セッションがブルの場合には全て逆になります。

STOP_LEVERは、その通貨ペアの現在価格から発注をすることを、あなたのブローカーに許可されている最小差です。自動的にリクエストされるので、自分で入力する必要はありません。

あなたによってエキスパートアドバイザで«Profit»パラメータを使って指定したテイクプロフィットの実際のレベルは、いつも価格から少しSTOP_LEVER値の方へ離れ、様々な取引センターや通貨ペアによって異なります。より正確な結果を得るため、STOP_LEVERが作成されました。例えば、もし5ポイントのプロフィット(実際の)で金に注文を出したい場合、これを実行できるとは思えません。私が見た価格からの最少差は50ポイントでした。

次にストップロスについて。基本的に、特定のセッションの値動きの方向へテイクプロフィットを設置した時の、テイクプロフィットの作動確率を単に計算することもできます。しかしこれは科学的ではなく、不完全であると思いませんか。いくつの注文を利益を持って決済できたかだけでなく、いくつの注文が損失を持って終わったかを知ることは面白いだけでなく、重要でさえあるかもしれません。

もう一度図を見てみましょう(図1)。ここから次のことがわかります。アジアセッションが全体的にブルである場合、検証しているセッション中、次のアジアセッションまで価格は最小価格のレベルを割りません。図1では2009年11月4日の3:00~13:00までのセッションが縦線で表示されています。全体的にブルであることがわかり、つまり、オープン価格がクローズ価格以下で、ストップロスのレベルはセッションあたりの最小価格ということです。もしセッションがベアの場合は、ストップロスのレベルはセッションあたりの最高価格を表しますが、これは理解できます。

つまり、この検証の要点は、想像上のテイクプロフィットのレベルと算出されたストップロスを取得し、相場履歴で何が初めで何回作動したのかを明確にすることにあります。

エキスパートアドバイザの入力パラメータは以下の通りです。(「入力」タブで変更することができます)

図2エキスパートアドバイザのパラメータ

Open session – セッションの開始時間

Close_session – セッションの終了時間

Day_kol_vo – 履歴の日数(つまり値を50とした場合、エキスパートアドバイザは最後の50日間で計算を行います。あまり深くまでは掘り返さない方がいいと思います)

Hour_kol_vo – 時間数。このパラメータにより、エキスパートアドバイザが検証する、セッション終了後に経過した時間数を設定します。以下に添付したデータでは、私は次のセッションまでの時間数を設定しました。3:00~13:00までの時間を分析する場合、次の同じようなセッションまでは14時間です。

Profit セッションが終了した価格からのポイントの差を表しています。仮想テイクプロフィットのレベルです。

確率の計算は簡単です。テイクプロフィットの確率は、検証日数をテイクプロフィットが実行された回数で割って、%で表示する為に100を掛けたものです。

それと同じように、ストップロスの確率は、検証日数をストップロスが実行された回数で割って、100を掛けたものです。

レンジ相場の場合も同様です。

エキスパートアドバイザのインストールや機能についてもう少し説明したいと思います。最初は、通常通り、エキスパートアドバイザをエキスパートアドバイザのフォルダにダウンロードし、コンパイルします。次に、それを任意の時間軸で設定し(毎時が望ましい)、上述した私たちに興味がある時間と他のパラメータを設定し、取引の許可をします。取引を行う機能を持たないので、このエキスパートアドバイザは取引を行わず、左上の隅に情報を出力します。(計算日数、設定パラメータ、テイクプロフィット作動回数、ストップロス作動回数、レンジセッション数、テイクプロフィット作動確率、ストップロス作動確率)

繰り返しますが、エキスパートアドバイザをテストする必要はありません。インストールして、ティックが生成されることを待ちます。結果を見て、必要に応じて入力パラメータを変更します。再びティックの生成を待って、どこかに結果を保存します。必要がなくなったら削除します。おそらく、このエキスパートアドバイザはインディケータとして書かなければならなかったのでしょうが、やり直すことはまだしたくないです。もしこの作業に興味がでてきたら取り掛かります。

もしティックがあまりにも頻発する場合、ターミナルの『エキスパートアドバイザ』ボタンで、エキスパートアドバイザを停止することができます。

さて、ここでこれらを思いついた理由について。以下の表をご覧ください。2009年11月10日のEA「1-Session 」のデータに基づく表です。長い履歴を使用したくないので、最近の50日間を使用しました。どんな取引をするかを決める(買いか売りか)時間として、3:00~13:00、つまりアジアセッション全体、そして3:00~9:00までの間のヨーロッパを除いた純粋なアジアセッション、9:00から13:00までの間のアジアとヨーロッパセッションが一緒の時間を使用しました。

3.00-13.00

3.00-13.00

3.00-13.00

3.00-9.00

3.00-9.00

3.00-9.00

9.00-13.00

9.00-13.00

9.00-13.00

プロフィット-5

プロフィット-15
プロフィット-25
プロフィット-5
プロフィット-15
プロフィット-25
プロフィット-5
プロフィット-15
プロフィット-25
USDJPY テイクプロフィット作動 %
74
58
50
78
64
52
70
52
44
USDJPY ストップロス作動 %
24
36
44
22
36
48
30
48
56
USDJPY レンジセッション %
2
2
2
0
0
0
0
0
0
USDJPY 作動無し %
0
4
4
0
0
0
0
0
0
EURUSD テイクプロフィット作動 %
100
72
64
68
62
54
76
66
62
EURUSD ストップロス作動 %
0
28
36
32
38
46
24
34
38
EURUSD レンジセッション %
0
0
0
0
0
0
0
0
0
EURUSD 作動無し %
0
0
0
0
0
0
0
0
0
GBPJPY テイクプロフィット作動 %
72
62
54
72
66
50
78
64
56
GBPJPY ストップロス作動 %
28
34
42
28
34
50
22
34
42
GBPJPY レンジセッション %
0
0
0
0
0
0
0
0
0
GBPJPY 作動無し %
0
4
4
0
0
0
0
2
2
NZDUSD テイクプロフィット作動 %
80
66
56
74
58
50
68
58
46
NZDUSD ストップロス作動 %
20
34
42
24
40
48
30
40
52
NZDUSD レンジセッション %
0
0
0
2
2
2
2
2
2
NZDUSD 作動無し %
0
0
0
0
0
0
0
0
0

表2確率の総表 (%)

ご覧のように、テイクプロフィットは高く設定せず、 5、15、25ポイントとしました。

まとめ

表2からわかるように、「アジアセッションでの取引のように、一日の取引が動く」という話に根拠はありません。少なくとも、上記の通貨ペアで最近の50日間を分析した場合はそうです。

5ポイントのテイクプロフィットが作動する確率は60~70パーセントで、この場合コイントスのような確率であると考えられます。私見ですが。

5ポイントのテイクプロフィットの場合、EURUSDは100%です。つまり、 5ポイントのテイクプロフィットを設定して、直近の50日間13:00に、アジアセッションの取引が行われたように取引を行うと、 常に勝ちを収めました。言えることは、以前にこのことを知らなかったことが残念です。しかしながら、ピップスハンターにはこの情報を付加的に利用することをお勧めします。100以上の日数など、もっと長い履歴を分析すると、結果はそこまで同じようなものではないからです。

このエキスパートアドバイザの価値は、一日のうちでアジアセッションや他のセッションの間に依存性はないということを示すだけではありません。多くの人が取引の中に、時間と取引の関係性を見つけたがるものなので、これからはこれを面倒な手作業なしに行うことができます。

添付ファイル – インディケータTradeSession.mq4 (自身のターミナルに色付けしたい人に) 、そしてエキスパートは1- Session.mq4です。

MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/1575

添付されたファイル |
1-_Session.mq4 (13.33 KB)
TradeSessions.mq4 (15.43 KB)

この著者による他の記事

外部世界と情報交換するメタトレーダー4 エキスパートアドバイザー 外部世界と情報交換するメタトレーダー4 エキスパートアドバイザー
メタトレーダー4・エキスパートアドバイザーと外部世界との情報交換をおこなうための、シンプルで互換性があり、信頼できる解決策情報の提供者と利用者は、それぞれ異なるコンピューターに位置しています。そのため両者の接続はグローバルIPアドレスを使用します。
テクニカル分析と市場予測の手法について テクニカル分析と市場予測の手法について
本稿は、チャートなどを使用した視覚的思考と、"箱から出した"市場見通しを通じ、よく知られた数学的手法の能力と可能性について考察しています。 一方で、本稿は、トレードの考え方を再考する想像力を得ることがでますので、幅広く皆さんの注目を集めると思います。また他方で、本稿は幅広い分析および予測ツールについての代替開発並びにプログラムコードの実装に役立つでしょう。
われわれはいかにして MetaTrader シグナルサービスとソーシャルトレーディングを発展させたのでしょうか われわれはいかにして MetaTrader シグナルサービスとソーシャルトレーディングを発展させたのでしょうか
われわれはシグナルサービスを強化し、メカニズムを改良し、新しい関数を追加し、欠陥を修正し続けています。2012年の MetaTrader シグナルサービスと現在の MetaTrader シグナルサービスはまったく異なる2つのサービスのようなものです。現在、特定バージョンの MetaTrader クライアントターミナルをサポートするサーバーのネットワークで構成される仮想ホスティングクラウドサービスを導入中です。
計量経済学によるユーロ/ドル ワン ステップ アヘッド フォーキャスト 計量経済学によるユーロ/ドル ワン ステップ アヘッド フォーキャスト
本稿は、EViewsソフトウェアを使用した、ユーロ/ドル通貨ペアのワン・ステップ・アヘッド・フォーキャストと、EViewsのプログラムを使用した予測結果の検証について書かれています。予測は回帰モデルを含んでおり、メタトレーダー4で開発されたエキスパートアドバイザーを使用して評価します。