MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 526

 
novichok2018:

この対応は、私の場合if(!rost)if(rost==false) が同じでないことを示しているだけです。なぜならfalseの条件が別に あるからです。

基本的なことから始めなければなりません。この2つは全く同じエントリーです。

 
Artyom Trishkin:

この2つは全く同じエントリーです。

μl4の論理がロシア語の論理(と数学的論理)と一致しない場合のみ。rost==falseの場合を規定する条件が別にあるので、("NOT "rost)という表現はrost==(イコール)falseという意味にはならないからです。だから、「5ではない」というのは「2」という意味には全くならない。

 
novichok2018:

μl4の論理がロシア語の論理(および数学的論理)と一致しない場合のみ。rost==falseの場合を規定する条件が別にあるので、("NOT "rost)という表現はrost==(イコール)falseという意味にはならないからです。つまり、「5ではない」ということは「2」ということでは全くないのです。

rost を 5 でも 2 でもない値にしたい場合は、rost を int に設定します。
 
novichok2018:

μl4の論理がロシア語の論理(および数学的論理)と一致しない場合のみ。rost==falseの場合を規定する条件が別にあるので、("NOT "rost)という表現はrost==(イコール)falseという意味にはならないからです。つまり、「5ではない」ということは「2」ということでは全くないのです。

基本を学ぶ ;)

それだけでなく、bool rost を 5 か 2、あるいは -5 か -2 と設定すると、明らかに真になります。ブール変数では false はゼロ、true はそれ以外のすべてだからです。

 
Artyom Trishkin:

基本を学ぶ ;)

それだけでなく、bool rost を 5 か 2、あるいは -5 か -2 と設定すれば、間違いなく真になります。ブール変数では false はゼロ、true はそれ以外のすべてだからです。

つまり、Vladislav Andruschenkoが 以前説明したのと同じことを私に説明しようとしているわけですが、私はそれを理解できませんでした。「2行目は関係ない。なぜならrost = boolは2つの値だけを取ることができ、デフォルトではfalseで ある。

では、2つ目の条件はどのように指定すればよいのでしょうか。追加フラグで?それとも、旗を立てずに「コンディション・イン・コンディション」なのか?確かにこっちの方がいい。

ありがとうございます。

 
novichok2018:

つまり、Vladislav Andruschenkoが 以前に説明したのと同じことを私に伝えようとしているわけですが、私には理解できません。「2行目は重要ではありません。なぜなら、rost = boolがあり、それは2つの値しか取ることができず、デフォルトではfalse だからです。

では、2つ目の条件はどのように指定すればよいのでしょうか。追加フラグで?それとも、旗を立てずに「コンディション・イン・コンディション」?この方がいいかもしれません。

プログラミング言語には慣例があることを当たり前のように思っていただければ、理解しやすいと思います。例えば、n=n+10とありますが、これは数学・論理学的に正しいのでしょうか?そして、そのような大会はたくさんあります。どんな数字も論理的な値に対応すると考えるべきでしょう。0=偽、それ以外の数値は正負ともに=真。それを証明するスクリプトを紹介します。

//+------------------------------------------------------------------+
//| Логика языка mql-4                                     PROBA.mq4 |
//+------------------------------------------------------------------+
#property strict
void OnStart()
{
  string s1="Числовое значение n:   ";
  string s2="Логическ значение n: ";
  string s3="ЛогичЧис значение x: ";
  string s4="Числовое значение x:   ";
  bool x;
  int k;
  Alert("-------------------------");
  for(int n=-4; n++<3;)                  // Вот еще: можно ли так цикл записать?  а Вы попробуйте!!!
  {
     s1 +=string(n)+"        ";
     s2 += (n ? "TRUE" : "false")+"   ";
     x=n;
     s3 += (x ? "TRUE" : "false")+"   ";
     k=x;
     s4 += (string)k + "         ";
  }
  Alert(s4);
  Alert(s3);
  Alert(s2);
  Alert(s1);
}

そして、その結果がこれです。

 
STARIJ:

プログラミング言語には慣例があるのだと、素直に受け止めると理解しやすいでしょう。例えば、n=n+10とする。これは数学的、論理的に正しいか?そして、そのような大会はたくさんあります。どんな数字も論理的な値に対応すると考えるべきでしょう。0=偽、それ以外の数値は正負ともに=真。それを証明するスクリプトがここにあります。

そして、その結果がこれです。

ありがとうございました。コンベンションについて入手しました、考慮に入れておきます。しかし、提案されたスクリプトを理解するには、残念ながら私のmcl4に関する知識は十分ではありません。申し訳ありません :( .

 
口座の資金が底をつき、EAが注文を開こうとしている。サーバーは「not enough funds for...」と言い、結局BANNEDになる。もうお金がないなら挑戦しない、という方法はないのでしょうか?
 
PolarSeaman:
口座の資金が底をつき、EAが注文を開こうとしている。サーバーに「資金が足りない...」と言われ、BANされる。溶岩がなくなったら、挑戦するのをやめることはできないのでしょうか?

はい、あります

AccountFreeMarginCheck - Информация о счете - Справочник MQL4
AccountFreeMarginCheck - Информация о счете - Справочник MQL4
  • docs.mql4.com
Размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете. Если свободных средств не хватает, то будет сгенерирована ошибка 134 (ERR_NOT_ENOUGH_MONEY).
 
Ihor Herasko:

はい、あります

ありがとうございます。