いくつかの都市伝説の検証『アジアセッションでの取引のように、一日の取引が動く』
概論
こんにちは!すでに約一年間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
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索