バイ・ストップ セル・ストップ クラスとしてのグリッド・アドバイザー - ページ 4

 
Vladimir Karputov:

ステップ35では、拡張合計。

売買の方向性_EURUSD_35

ここで、以下のことがわかります。

  • 実質的に全体の50%は、中断されない取引の長さが「1」に等しい場合です。つまり、「買いを建て、その後反転させた(=買いを損切りし、売りを建てた)」という状況や、「売りを建て、その後反転させた(=売りを損切りし、買いを建てた)」という状況があるのです。したがって、長さ "1 "の取引が途切れることのない状況は、損失が保証されることになります。
  • 次の例では、買いを建て、別の買いを建て、ポジションを反転させました(つまり、2つの買いを閉じ、売りを建て、その結果、損失はゼロに等しくなりました)。

この最も多いカテゴリー(中断されない取引の長さが「1」と「2」に等しい)は、Stoppending orderを 置く戦略を修正するために、より詳細に考える必要があると思います。


ピラミッド型の発想(前のポジションの方向にポジションを建てる場合)を確認してみましょう。

1.幾何級数的に敷地面積を拡大するバリエーション

幾何級数とは、数b1, b2, b3,...の数列のことです。(進行のメンバー)であり、2番目から始まる各数字は、前の数字にある数q(進行の分母)を掛けて得られるもので、b1!=0, q!=0: b1, b2=b1*q, b3=b2*q

2.等差数列のロット増加のバリエーション

算術級数(代数)とは、2番目から始まる各数字が、前の数字に一定の数d(ステップ、または級数の差)を加えて得られる数列(級数のメンバー)である。

 

2つの回帰型の導入に伴い、算出されたロットサイズを確認する必要が出てきました。その際、LotCheck 機能を使用します。この関数をスクリプトで使用する例。

//+------------------------------------------------------------------+
//|                                                     LotCheck.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.000"
#property description "Checking the volume of the lot"
#property script_show_inputs
//---
input double start_lot  = 0.85;
input double step_lot   = 0.354;
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   m_symbol.Name(Symbol());
   m_symbol.Refresh();
//---
   Comment("");
   Comment(StringFormat("Symbol %s. Lots Min: %.2f, Lots Max: %.2f, Lots Step %.2f",
           m_symbol.Name(),m_symbol.LotsMin(),m_symbol.LotsMax(),m_symbol.LotsStep()));
//---
   double ext_start_lot = start_lot;
   double ext_step_lot  = step_lot;
//---
   for(int i=0;i<21;i++)
     {
      Comment(ChartGetString(0,CHART_COMMENT),"\n",
              "Input lot ",ext_start_lot,", lot check: ",DoubleToString(LotCheck(ext_start_lot),2));
      ext_start_lot+=ext_step_lot;
     }
  }
//+------------------------------------------------------------------+
//| Lot Check                                                        |
//+------------------------------------------------------------------+
double LotCheck(double lots)
  {
//--- calculate maximum volume
   double volume=NormalizeDouble(lots,2);
   double stepvol=m_symbol.LotsStep();
   if(stepvol>0.0)
      volume=stepvol*MathFloor(volume/stepvol);
//---
   double minvol=m_symbol.LotsMin();
   if(volume<minvol)
      volume=0.0;
//---
   double maxvol=m_symbol.LotsMax();
   if(volume>maxvol)
      volume=maxvol;
   return(volume);
  }
//+------------------------------------------------------------------+

端末のログを散らかさないようにするため、出力全体をチャート上に整理しています。

ロットチェック

ファイル:
LotCheck.mq5  5 kb
 

EAクラスに幾何学と 算術の職業が追加されました。幾何学的プログレッションのロット計算を実装(現時点では)。

//+------------------------------------------------------------------+
//| 1.001:                                                           |
//|   when starting, sets Buy stop and sell stop                     |
//| 1.002:                                                           |
//|   OnTradeTransaction: if DEAL_ENTRY_IN delete all pending orders,|
//|   and, sets Buy stop and sell stop                               |
//| 1.003:                                                           |
//|   OnTradeTransaction: DEAL_ENTRY_IN                              |
//|      DEAL_TYPE_BUY => ClosePositions(POSITION_TYPE_SELL)         |
//|      DEAL_TYPE_SELL => ClosePositions(POSITION_TYPE_BUY)         |
//|   PlacesXXXX:                                                    |
//|      "RefreshRates()" is now inside the "PlacesXXXX"             |
//|   OnTradeTransaction:                                            |
//|      a "while" loop for "PlacesXXXX"                             |
//| 1.004:                                                           |
//|   add OnTester and save csv file                                 |
//| 1.005:                                                           |
//|   add Geometric and arithmetic progression                       |
//|      only a geometric progression is realized                    |
//+------------------------------------------------------------------+

ds

 

通常ロットでの取引と幾何学的進行による取引(EURUSDシンボル、ステップ35)の比較。

買いストップ 売りストップ クラスとしてのグリッド・アドバイザー:レギュラー・ロット

図1:Expert AdvisorのBuy Stop Sell Stop Gridをクラスとした場合:通常ロット


買いストップ 売りストップ クラスとしてのグリッド・アドバイザー:幾何級数的なロット

図2 Expert AdvisorのBuy Stop Sell Stop Gridをクラスとした場合:幾何級数的に変化する。


買いストップ 売りストップ クラスとしてのグリッド・アドバイザー:算術進行のロット

図3:Buy stop Sell stop Grid Expert Advisorのクラシファイア:算術順次ロット


言ってみれば、「一方向にポジションを持つときに幾何級数や算術級数でロットを増やしていくのは、一定ロットで取引するよりも悪いこと」なのです。

 

Storageからデータを更新しようとすると、何かが書き込まれます。

2017.10.03 12:59:10.146 ストレージがhttpデータの読み込みに失敗しました (storage.mql5.com:443 読み込み失敗 [12152]).

総じて、Storageとの連携が全然うまくいかない...。何か間違っているような...。
 
George Merts:

ウェアハウスからデータを更新しようとすると、メッセージが表示されるのですが。

2017.10.03 12:59:10.146 ストレージがhttpデータの読み込みに失敗しました (storage.mql5.com:443 読み込み失敗 [12152]).

一般的に、Storageとの連携は全くうまくいかないのですが...。何か間違っているような...。

Skypeをしてから、Storage問題の解決策をここに投稿しよう.

 
Vladimir Karputov:

スカイプしてから、倉庫問題の解決策をここに書き込もう・・・。

問題ありません。直接メールで送る

 

だから

Windows7 x64で、アカウント制御が無効になっています。メタエディタにログインするたびにウェアハウスに接続しなければならない。


 

ウラジミール、私もプロジェクトに加えて ください。ありがとうございました。