"ダミー "からの質問 - ページ 59

 
Yedelkin:
array[][]のような2次元配列は使えないのでしょうか?
理論的にはそうなるはずで、私も試しましたが......。まだ使いこなせていません。原理的に可能であれば、すぐにでも実装してほしい。早速、いろいろと不具合が...。2次元配列の話なら、まず戸惑ったのは、バッファが最初は未定義、つまり動的であることです。どのようにして親配列に読み込まれるのでしょうか?そして...もし、各バッファに個別の長さを持たせると、2次元ではなく3次元の配列になり、立方体ですらなく、3Dのテトリスのようなものになります。
 
x100intraday:
理論的にはそうなるはずで、私も試しましたが......。できなかったんです。原理的に可能であれば、完成された実装を見たい。早速、いろいろと不具合が...。2次元配列の話なら、まず戸惑ったのは、バッファが最初は未定義、つまり動的であることです。どのようにして親配列に読み込まれるのでしょうか?そして...もし各バッファが満たされたときに個別の長さを持つなら、2Dの配列ではなく立方体の配列になりますが、それは立方体ですらなく、ある種の3Dテトリスになるでしょうね。
構造体をダイナミックバッファのラッパーとして使用する。テスト済みで、効果があります。
 

取引の終了時刻を調べる方法を教えてください。

ディールプロパティに見当たらないのですが。

 
masharov:

取引の終了時刻を調べる方法を教えてください。

ディールプロパティに見当たらないのですが。

取引(注文)には、MT4と同様に終了時刻がありません。MT4でそうであったように、「一回の取引」の寿命を 決定するためには、「開始」(IN)取引と「終了」(OUT/INOUT)取引を分析する必要があるでしょう。

ポジションも同様です。

 
リファレンスマニュアルには、PositionGetSymbol() 関数について、「位置が見つからない場合は、空の文字列が返される」とあります。また、追跡する必要があるのが空文字列の戻り値である場合、関数が返す値は何と比較すればよいのでしょうか?NULLと""(2つの引用符)と比較するのでしょうか?
 
Yedelkin:
リファレンスマニュアルには、PositionGetSymbol()関数について、「位置が見つからない場合は、空の文字列が返される」とあります。また、空文字列の返り値を監視する必要がある場合、関数の返り値は何と比較されるべきでしょうか。NULLまたは""(2つの逆カンマ)でしょうか。
位置があるかどうかは別の関数で確認する必要があります。
 
Renat:
位置があるかどうかは別の関数で確認する必要があります。
いいえ、位置があるかどうかを確認するためではなく、ループ内で空文字列が返されたときにcontinue演算 子を適用するためです。以前の記事で「空文字列が返ってくるのを監視する必要が ある」と書きましたが、何を比較すればいいのか、どなたか教えてください。
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
  • www.mql5.com
Основы языка / Операторы / Оператор продолжения continue - Документация по MQL5
 
Yedelkin:
いいえ、位置が存在するかどうかを確認するためではなく、ループ内で空文字列が返されたときにcontinue演算子を 適用するためです。私は以前のメッセージで書いた:"それは空の文字列のリターンを追跡する必要が あります "だから何を比較するために、誰が言うのだろうか?

ヘルプセクションは、void型とNULL定数を 持つ。実は、もっと前からチェックできていたんですね。

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string a=NULL;
   string b="";
   if(a==b)
      Print("Пустая строка и NULL - одно и то же");
   else
      Print("Пустая строка не равна NULL");
  }
//+--
 
Rosh:

ヘルプにvoid型とNULL定数についての セクションがあります。

まあ、そうですね、セクションがあります。ただ、この項では、空の文字列をどのように表現するかについては、正確には書かれていない。このセクションの例では、初期化されていない文字列を検出するためにのみNULL変数を使用しています。

セルフチェックについては、コンパイラがぼやいた後に疑問が生じました。

switch(PositionGetSymbol(i)!=(NULL || ""))

を以下のとおりとします。「暗黙のうちに '数値' から '文字列' に変換する" が、指定された文字列値を別々に比較しても、コンパイラは異議を唱えませんでした。だからこそ、「古い型にキャストする」という理論に近い理屈に煽られ、コードを単純化しようとせず、質問したのです。

この例から、少なくとも言語開発者は空文字列を表すのにスペースなしのダブルクォートを使っていることがわかります。 それが知りたかったのです。ありがとうございます。

 
Yedelkin:

まあ、そうですね、セクションがあります。ただ、このセクションには、空の文字列がどのように識別されるのか、正確には書かれていません。このセクションの例では、初期化されていない文字列を検出するためにのみNULL変数を使用しています。

セルフテストについては、コンパイラが次のようなフレーズをぶちまけた後に疑問が生じました。

この表現に何を期待していたのですか?

(NULL || "")
ブール演算の 読み取り