エラー、バグ、質問 - ページ 2943

 
MQLで、WinAPIに頼らずに、端末がユーザーフォーカスを持っているかどうか(つまり、ユーザーがアクティブなウィンドウを持っているかどうか)を知るにはどうすればよいですか?キーボードの状態を読み取る関数(TerminalInfoInteger(TERMINAL_KEYSTATE_CAPSLOCK)など)は、同じキーボードの状態を持つウィンドウの活動に応じて、異なる値を返すようになりました。これは残念なことです。
 
Alexandr Sokolov:

MT5ビルド2755

ターミナルがすべてのティックをカウントしない

なぜ、そのような結論になったのですか?

 
Alexandr Sokolov:

MT5ビルド2755

ターミナルがすべてのティックをカウントしない



このように試してみてください。

datetime st = 0;
int tics = 0;

//------------------------------------------------------------------

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   
   if(prev_calculated == 0)
{
 ArraySetAsSeries(time,true);
 ArraySetAsSeries(tick_volume,true);
 st = time[0];
}   
   else if(time[0] != st)
     {
      tics++;
      Alert("T - ",tics," TV - ",tick_volume[0]);
     };
   
  //-----------------------------------------------------------------
   return(rates_total);
  }
 
Renat Fatkhullin:

なぜ、そのような結論になったのですか?

なぜなら、私が気づいたように、OnCalculateは AskとBidの価格が変化したときに呼び出されますが、tick_volume[]はBidの変化のみをカウントします。

 

次の問題:ネッティング口座でExpert Advisorを使用し、ポジションをオープン、クローズしていましたが、ロボットがオープンしたポジションに手動でコントラクトを追加したところ、しばらくしてExpert Advisorのログにエラーが表示されました。

ポジションを開くときのエラー: 4753 - ポジションが見つかりません。

一番面白いのは、ポジションをクローズし、自動売買を無効に し、EAを チャートから削除しても、エラーが出続けることです。


 
Alexandr Sokolov:

というのも、OnCalculateはAskとBidの価格変動で呼び出されますが、tick_volume[]はBidの変動のみをカウントしていることに気づいたからです。

OnTick は、価格の変化時のみならず、いつでも呼び出されます(ターミナルは、データの追加ダウンロードやヒストリカルデータセットの再配布など、多くの場面で再計算を必要とする場合があります)。

ティックボリュームは、チャートと同様、買値の変動に基づき算出されます。取引所取引では、すべての売買取引が計上される独立した実数値カウンターを使用します。

 
Sayberix:

次の問題:ネッティング口座でExpert Advisorを使用し、ポジションをオープン、クローズしていましたが、ロボットがオープンしたポジションに手動でコントラクトを追加したところ、しばらくしてExpert Advisorのログにエラーが表示されました。

ポジションを開くときのエラー: 4753 - ポジションが見つかりません。

最も興味深いのは、ポジションがクローズされ、自動売買が無効に なり、Expert Advisorが チャートから削除されることです。


これはExpert Advisorのロジックに依存します。

エキスパートアドバイザーは、自分自身の操作だけを記憶し、考えることができるため、手動で操作するとエキスパートアドバイザーのロジックが台無しになる可能性があります。

 
Renat Fatkhullin:

EA自体のロジックに依存します。

それは、自分自身の操作についてだけ記憶し、考えることができ、あなたの手動介入はExpert Advisorのロジックを台無しにする可能性があります。

理解できましたが、なぜこのエラーがターミナルに残ってしまったのでしょうか?すべてのポジションをクローズし、自動売買を無効にし、Expert Advisorをアンロードし、さらに端末を再起動したことはお伝えしましたね。

 
K-meleonブラウザで、プライベートメッセージ の文字が反映されない(スクリーンショット参照)。傷つくけど!なんとなく内輪だけで。ブラウザは一番簡単で早いけど、普及してないし、Mozはフォントがない?知っている人を助ける。ハードウェアは古く、重いブラウザの引き回しが悪い。
ファイル:
 
Sayberix:

理解できましたが、なぜこのエラーがターミナルに残ってしまったのでしょうか?全てのポジションをクローズし、自動売買をオフにし、Expert Advisorをアンロードし、ターミナルも再起動したことをお伝えしました。

奇跡は起きない。Expert Advisorはチャートの1つで動作しています。