[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 265

 
vasabu2012:

みんな、私はキムを知らない、多分誰か詳しい人がこのスレッドで答えてくれるだろう。

ぜひともお願いします。

ここにキム・イーゴリVが いる。そして、KimIVから便利な 機能をご紹介します。
 

プロフェッショナルへの質問:最後に閉じた日のデータを引き出す必要があります。
のため、オーダー番号のカウントはできません。
最後の決済注文のデータを取得したい場合は、すべての注文番号をカウントする必要があります。
すべてのEAには、それぞれのウィザードがあります。
質問は、ターミナルで最後に閉じた注文のデータについてですか?

誰か答えを知っている人、お願いします!!!

 
vasabu2012:
プロフェッショナルへの質問:最後に閉じたデータからデータを引き出す必要があります。
のため、オーダー番号のカウントはできません。
いくつかのEAを動かしていますが、どれもプットしてクローズしています
すべてのEAには、それぞれのウィザードがあります。
質問は、ターミナルで最後に閉じた注文のデータについてですか?

私は科学者ではありませんが、ラストオーダーを探すなら、時間で探す...。
 
具体的にどのように
 
デモだけでなく、EAを動作させるにはどうしたらよいですか?
ファイル:
sovetnik.ex4  31 kb
 
sergio7:
デモだけでなく、EAを動作させるにはどうしたらいいですか?
ここに投稿されたもの - NOTHING
 
sergio7:
デモだけでなく、EAを動作させるにはどうしたらよいですか?

ソースコードではありませんeh4ではなくmq4であるべきだ!
 
paladin80:
ここに掲載されているのは、NOTHINGです。


別のスレッドでも同じように侵入者が。

sergio72013.04.04 21:04
デモだけでなく、EAを動作させるのに役立つ。
添付ファイル
tpyokfcx.ex4(30.27 KB)
 

TarasBy さんが書かれたライブラリをチェックすることにしました。私はまず、この1枚https://www.mql5.com/ru/code/10659

疑問もある。一貫性を持たせる例えば、こんな感じです。

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем торговую информацию по символу                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0)
{
//----
         if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
         {
                  if (fi_Ticket > 0)
                  {
                     bs_Symbol = OrderSymbol();
                  }
                  else
                  {
                     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }
                  else
                  {
                      bi_SymDigits = MarketInfo (fs_Symbol, MODE_DIGITS);
                      bd_SymPoint = MarketInfo (fs_Symbol, MODE_POINT);
                  }
        if (bd_SymPoint == 0.0)
        {
           bd_SymPoint = fGet_Point (fs_Symbol);
        }
                  bd_ProfitMIN = NDP (ProfitMIN_Pips);
         }
         if (fi_Ticket > 0)
         {
            fGet_OrderDetails (fi_Ticket);
         }
    //---- Получаем текущие цены по инструменту
    RefreshRates();
    bda_Price[0] = NDD (fGet_TradePrice (0, bb_RealTrade, bs_Symbol));
    bda_Price[1] = NDD (fGet_TradePrice (1, bb_RealTrade, bs_Symbol));
    bd_Spread = NDD (bda_Price[1] - bda_Price[0]);
//----
}

関数のパラメータそのものを見ればわかる。

fi_Ticket = 0

通常、このような関数は、注文を選択した時点ですでに呼び出されているため、チケットを持っていることになります。では、なぜデフォルト値をゼロに する必要があるのでしょうか?

さらに興味深いのは、その次の段階です。

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

変数fs_Symbolは 直ちにbs_Symbolと 比較される。

上記のbs_Symbolは fGet_MarketInfo()関数自体が呼び出される場所で、初期化されて いませんでした。また、このbs_Symbolは 何のためにあるのでしょうか?

も条件に入っています。

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

条件,fi_Ticket < 0 なら, 次...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

となり、すでに条件と矛盾している。コードの冒頭でfi_Ticket < 0という 条件が成立し、この条件の内部でticket > 0が 成立している必要があります。論理はどこにあるのか?