English Русский 中文 Español Deutsch Português
夜間の取引はどれ程信頼性があるか?

夜間の取引はどれ程信頼性があるか?

MetaTrader 4トレーディングシステム | 6 11月 2015, 08:20
690 0
Shashev Sergei
Shashev Sergei

概論

過去6か月間で、ロシアのネット上には、夜間にEURCADGBPCADEURCHFなどのペアで取引を行い、事実上リスクを伴わずに多くを稼ぎ出す、非常に多くのエキスパートアドバイザ登場しました。この戦略を採用したアルパリ社のPAMMアカウントでは、実際に素晴らしい結果が出ています。しかし、この取引システムには否定的な意見もあります。この記事の目的は、夜間取引の利益性を確かめることと、実際のアカウントでこのような取引をしたときに遭遇する、全ての落とし穴を明確にすることです。

理論

下の図では、代表的な夜間の時間帯が表示されており、図はこの戦略にとって最良のものではないものを意図的に選んでいます。夜間という時間帯の境界線は少し曖昧なので、EURCHFの場合には、この時間帯は、サーバーの時間で18時から20時に始まり、10時から14時に終わると仮定することにします。私たちは18時から10時までの時間に焦点を当てていきます。

夜間帯は、通常、太平洋とアジアセッションにまたがり、大多数の通貨ペアの若干のボリタリティに特徴づけられています。



実装

まず初めに、エキスパートアドバイザが夜間にどのように動作するべきかを定義します。

1) 取引開始時間―指定時間以降

2) 取引終了時間―指定時間以前

3) TP―十分に近く、10から50ポイント

4) SLTPよりも多く、30から70ポイント

5) エントリー―価格が夜間帯の境界線付近にある

6) 時間帯の境界線は、時間帯が始まる前の最後の数時間に定義される

7) 夜間の取引数は制限されることがあり、これは1回以上SellまたはBuyのエントリーをし、利益を持ってイグジットに成功することが稀であり、2回目のエントリーは、多くの場合、夜間帯が終わる頃に損失で終わってしまうからです。

これらの項目の実装は、大まかに次のようになります。

// 外部変数
extern double    Lots=1;
extern int       h_beg=20;
extern int       h_end=10;
extern int       TakeProfit=20; 
extern int       StopLoss=90;

// 補助変数
double max;
double min;
int slippage=5;
int magik=5;
int pos=0;

//夜間セッションの取引カウンター
int Buy_count=0; 
int Sell_count=0;
 
//決済機能
bool CloseOrder()
{
   int ticket,i;
   double Price_close;
   int err;
   int count=0;
   int time;      
       for(i=OrdersTotal()-1;i>=0;i--)
       {
          if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
            if (OrderSymbol()==Symbol())           
                if(OrderMagicNumber()==magik)
                   {                                                                
                     if(OrderType()==OP_BUY)      
                        Price_close=NormalizeDouble(Bid,Digits); 
                     if(OrderType()==OP_SELL)       
                        Price_close=NormalizeDouble(Ask,Digits); 

                     if(OrderClose(OrderTicket(),OrderLots(),Price_close,slippage))                        
                           return (true);
                   }                                         
      }
return(false);
}

//決定を下す 
int GetAction()
{
   int TotalDeals;
   int type=0;
   int N=OrdersTotal(); 

// 現在のポジションの計算     
   for(int i = N - 1; i >= 0 ; i--)
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if( OrderSymbol()==Symbol())
            TotalDeals++;
            type=OrderType();       
       }    

   if (TotalDeals==0)
   {
      pos=0;
   }
   else
   {
      if (type==OP_BUY)
         pos=2;
      if (type==OP_SELL)
         pos=-2;
   }

// 夜間セッションの開始。2つの以前のバーによる時間帯の境界の検索
   if (Hour()==h_beg)
   {
      max=MathMax(High[1], High[2]);
      min=MathMin(Low[1],Low[2]);
      Buy_count=0;
      Sell_count=0;
   }

// セッションの終了。全てのポジションの決済とエキスパートアドバイザによる取引操作の禁止。
   if ((Hour()>=h_end)&&(Hour()<h_beg))
   {
      Buy_count=1;
      Sell_count=1;
      max=0;
      min=0;
      if (TotalDeals!=0)
         CloseOrder();
   } 

// ポジション開始のチェック       
      if ((Bid>max)&&(max!=0)&&(pos==0)&&(Sell_count==0))      
            pos=-1;                  

      if ((Ask<min)&&(min!=0)&&(pos==0)&&(Buy_count==0))             
            pos=1;     

   return (0);       
}

//各ティックの処理
int start()
  {
   int action;
   double profit;
   double stop=0;
   double price=0;
   int ticket=-1;  

   GetAction();   
   if (pos==1)
         {
               stop=NormalizeDouble(Ask-StopLoss*Point,Digits);
               profit=(min+TakeProfit*Point);             
               pos=2;                                      

               while (ticket<0)
               {
                  if (!IsTradeContextBusy( )) 
                     ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,0,0,NULL,magik,0,Green);
                  if (ticket>0)
                     OrderModify(ticket,0,stop,profit,0,Blue);                           

                  if(ticket<0)
                     Print("OrderSend failed with error #",GetLastError());

                  Sleep(5000);
                  RefreshRates();
               }
               Buy_count=1;                       
         }  

   if (pos==-1)
         {
               stop=NormalizeDouble(Bid+StopLoss*Point,Digits);
               profit=(max-TakeProfit*Point); 
               pos=-2;                                   

               while (ticket<0)
               {
                  if (!IsTradeContextBusy( )) 
                     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,0,0,NULL,magik,0,Green);

                  if (ticket>0)
                     OrderModify(ticket,0,stop,profit,0,Blue);                           

                  if(ticket<0)
                     Print("OrderSend failed with error #",GetLastError());

                  Sleep(5000);
                  RefreshRates();
               }
               Sell_count=1;
        }                            
   return(0);
  }



テスト

下のグラフからわかるように、取引のいくつかは驚くべきものでした。夜間価格帯のLOWで買い、HIGHで売りとなっていますが、時間で終了している例外もあります。

テストは、1万ドルの証拠金で1ロットで取引を行った場合、起動したエキスパートアドバイザは、数か月の間に30%以上を稼ぐであろうということを示しています。リスクをさらに上げると、アルパリ社のPAMMアカウント上に、どのように数か月の間に千%の結果が現れたのかがわかってきます。

実際の使用

もちろん、全てはそんなに簡単ではないと思います。そうでなければ、半年間でドルの億万長者の数は一気に増えているはずです。夜間取引において何が利益獲得の障害となっているのでしょうか?

1) 特に夜間取引に良いEURCHFGBPCADEURCADの通貨ペアで、夜間にスプレッドが1.5から2倍に盛んに動き出します。

2) いくつかの取引センターでの取引条件が、急激な大きい利益の時に著しく悪化する恐れがあります。

3) 例えば、EURCHF/USDCHFの干渉時などに、大きな負けトレードのグループが発生することがあります。

4) TPのパラメータは、特に減少方向に絶えず変更する必要があります。EURCADは冬には取引あたり40ポイント取れるものが、今は20ポイントほどです。

夜間取引の為に引用されたエキスパートアドバイザは、最も単純で、とても複雑なのかもしれません。改善方法は多数あり、その中には以下のものがあります。

1) スケールイン

2) ボラティリティ分析

3) ニュース分析(干渉リスクを避ける為)

4) 主要なクロスにある通貨ペアの分析(例えば、EURCHFにとっては、EURUSDUSDCHF

5) より複雑な入力アルゴリズム

記事に記載されているテンプレートは、実際の取引で使用することができ、これで半年間で年率50%の利益を獲得することができました。これは現在はすでにその価値を失っていますが、この記事はフォーラムの参加者や、記事の筆者に使用される新しいアイディアに刺激を与えることができるかもしれません。

まとめ

夜間取引は冬には良く稼ぐことができ、春には難しく、また夏には遥かに難しくなります。この『トレンド』で秋には何が起こるかを言及するのは難しいです。しかし、この戦略を使用し、実際のアカウントでデポジットを増やすことができたので、存在の権利は持っています。

この戦略が完全に不用になるかどうかは、将来わかることでしょう。記事に引用されたエキスパートアドバイザは、最も簡単なもので、もしかしたらどこかにしまわれてしまうかもしれませんが、安定した夜間帯が再び現れた時にまた取り出して、使用することができます。

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

MetaTrader 5での自己組織化機能マップ(Kohonenマップ)の使用 MetaTrader 5での自己組織化機能マップ(Kohonenマップ)の使用
自己組織化機能マップ(Kohonenマップ)の最も興味深い特徴に一つとして、データを監視することなく分類するという点です。基礎的な形式では、入力データの類似マップを作成します。SOMマップは、高次元のデータの分類とビジュアル化のために使用することができます。この記事では、Kohnenマップのいくつかの簡単な使用方法を紹介します。
取引口座の分析 取引口座の分析
この記事は、MT4での取引履歴を元に取引の分析を行うためのツールについて説明しています。特に、その技術面を分析します。分析後に、取引要因の改善方法をまとめます。分析には、MQLab™ Graphic Reportスクリプトを使用します。
購入前に売買ロボットを検証する方法 購入前に売買ロボットを検証する方法
MQL5 マーケットで売買ロボットを買うことは似たような選択肢をしのぐ明らかなメリットがあります。提供される自動化されたシステムを MetaTrader 5 ターミナルで直接徹底的に検証することができるのです。購入前にシステムを完全に把握するため、内蔵ストラテジーテスタで Expert Advisor を不都合なモードで注意して実行することができる/する必要があるのです。
ローソク足の動きを予測するための簡単な方法 ローソク足の動きを予測するための簡単な方法
価格変動の傾向を知ることは、取引操作から良い結果を得るためには大切なことです。ローソク足が与えうる傾向についての、いくつかの情報があります。この記事では、ローソク足の動きを予測する、いくつかの簡単なアプローチを検証していきます。</div>