mql5言語の特徴、微妙なニュアンスとテクニック - ページ 192

 
traveller00:

統計より:1日約200~300件の取引がある。通常のチェックでも、特に難しいチェックをしなくても、平均して週に2~3回はダブルロット開封をキャッチしていました。確率を計算し、そのような確率を受け入れる必要があるか、または準備ができているかを評価する。個人的には、チェックを最大にしました。

ありがとうございます。Pingは何ですか?
 
Vasiliy_Saharov:
ありがとうございます。また、Pingはどのくらいですか?

55~60msの範囲でジャンプする。でも、PINGは関係ないんです。やはり、通常のチェックでもそうなんですね。ここはもう、1秒待ちとか適当でいいんです。しかし、そこはpingを桁違いに超えるレンジでも飛び出していました。

P.S. 被写体におけるファントム・オーダーの興味深いテスト https://www.mql5.com/ru/forum/1111/page2220#comment_7834585
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.06.20
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Vasiliy_Saharov:
0.1ロットを作るアルゴリズムがあるとすれば、0.1を2回作る確率があり、この確率はゼロになる傾向があり、3回は、無理だと思います。20回はおろか何しろアプリケーションの話ですからね。経験則では、サーバーはおそらく10minsecの限界で応答する(正しいかどうか?)2回目の取引をつかむ確率は、どの程度だとお考えですか?このチェックはご自身でされているのでしょうか?サーバーの応答が遅くなることはありませんか?

サーバーからのトランザクション 結果の応答は、非常にさまざまな理由で遅れることがあり、どんな場合でも10msをあてにすることはできません(たとえPingが1msであっても)。

もちろん、このチェックはしています。より正確には、この点(および他の多くの点)を考慮した準備の整ったMT4Ordersを使用しています。

 
const int a=2;

void OnStart()
{
  int b[a];  //'[' - invalid index value
}

C++とは異なるこの挙動は、特徴なのかバグなのか?

 
Igor Makanu:

インジケータはCopyXXXの結果を待ちません。

CopyXXXを 処理し、EAからこのインジケータを呼び出す ために、インジケータ内のタイマーのオプションとして

うまくいきました!アイデアありがとうございました。

 

夏/冬の時間変更でMT5-Testerが壊れる理由
.

この問題を説明するのに一番簡単な方法は、例を挙げることです。引用セッションには、このような制限のある記号があります。

しかし、価格履歴には22:15以降から23:15までの価格があり、これはクォートセッションを外れても有効な価格です。


実は、冬時間に 切り替わる前は、「03:00~23:15」だったのです。説明は簡単です。取引サーバーは時刻を変更しますが、見積もり記号は変更しません。例えば、インデックス。そのため、取引サーバーは該当するシンボルのセッションタイムを変更します。


この状況は、MT5-Testerにおいて非常に不愉快な結果を招きます。22:15~23:15に有効な価格で取引できず、[Market closed] という形で拒否される。つまり、取引は本当にそこで行われていたのに、テスターがそれを許さないのです。


実際、テスターは故意に誤った結果を出すことによって、取引を歪めています。この特殊性に気づくのは、かなり問題です。この状況を解決するには、自分でセッションタイムを修正する必要があります。


この問題(および他のいくつかの問題)を忘れて、適切なセッション時間を自動的に計算/書き込む、カスタムシンボルに切り替えることができます。


シンボル設定の一番上のスクリーンショットで、一番下の行に「時間制限を使用する」というのがあります。おそらく、それが有効になると、まだそれを通してこの問題を回避することができます。


今のところ、このルールは有効です。カスタムシンボルは、MT5テスターの結果が正しくなる確率を大幅に高めることができます。


ターミナルで価格履歴(CopyRates/CopyTicks)の要求を行う場合、気配値に注目しないことを忘れないでください。

 
fxsaber:

夏/冬の時間変更でMT5-Testerが壊れる件。

先ほど時間の問題も提起しましたが、将来、バー上の価格が0より小さいときに誤ったマークアップが行われることに気づきました。

この疑問は、テスターでの取引を一切禁止することが正しい状況、少なくとも、ある時間帯に現実にその商品の取引を禁止する相場が存在する状況はあるのだろうか、というものである。いろいろな指標があり、それに対する利益のカウントの仕方がよくわからないということですが、この場合は無理やりポイントでカウントして、ログに「その商品は取引されていませんが、TSは確認できます」というメッセージを書き込むだけでよいのです。

 
Aleksey Vyazmikin:

ある商品の相場があり、その商品の取引が禁止されている時間帯が現実にあるのですか?

午前0時以降の1分間は禁止されています。重要かもしれないときは、チェックを入れています。

// true - торговые сессии совпадают с котировочными, false - иначе.
bool IsSessionsQuoteEqualTrade( const string Symb )
{
  bool Res = true;
  
  for (int i = 0; (i < 7) && Res; i++)
  {
    datetime FromQuote;
    datetime ToQuote;

    datetime FromTrade;
    datetime ToTrade;
    
    if (SymbolInfoSessionQuote(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromQuote, ToQuote) && (FromQuote != ToQuote))
      Res = SymbolInfoSessionTrade(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromTrade, ToTrade) &&
            (FromQuote == FromTrade) && (ToQuote == ToTrade);
  }
  
  return(Res);
}

1日に何度もセッションがあるときは、チェックしない。

 
fxsaber:

午前0時以降の1分間は立入禁止です。重要かもしれないときは、チェックします。

1日に何度もセッションがある場合は確認しない。

これは、証券会社が作り出した人為的な状況です。クローズドオークションで取引があったとして、それが相場であったとします。

 
Aleksey Vyazmikin:

これはDCが作り出した人為的な状況ですが、実際の例はあるのでしょうか?クローズドオークションで取引があり、なおかつ相場があるとします。

絶対にすべてのルールは人為的なものです。

理由: