[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 420

 

この問題が発生し、ネットワーク上のコンピュータを検索することで解決しました。ネットワーク環境ではなく、検索で表示される...ある種のバグ。

P.S. 曲がった手の問題のどちらか。)))トレーサーでパケットの行き先を確認し、pingを打ってください。

 
stater:

こんにちは!時間があれば、ここで何が間違っているか見てください、テストではすべてがうまくいき、私は実際のチャートにそれを入れて、私は座って待っていますが、それは保留中の順序を置くことはありません!再び私はテストを開始し、それは購入... エラー130です。



err_invalid_stops130不正確な停止位置
[Deleted]  
moskitman:

ええ、私もそう思っていました...。しかし、実際には、64はネットワーク上の全員を見ることができ、32は32しか見ることができないのです。ワロタwwwwwwwwwwwwwwwwwwwwwwww

sub: このネットワークは、デスクトップ(32)だけがRG45コードで、他はすべて無線でつながっていることと関係があるのでしょうか?


アンドレイ、私の息子を呼んでください。彼が来てくれて、すべてをセットアップしてくれますよ。

ZS.真面目な話、ルーティングもきちんと設定するのがポリシーなんです。しかし、IMHOは地元でやらなければならない、近くに学生がいないのでは?

 
moskitman:

ええ、私もそう思っていました...。しかし、実際には、64はネットワーク上の全員を見ることができ、32は32しか見ることができないのです。ワロタwwwwwwwwwwwwwwwwwwwwwwww

sub: このネットワークは、デスクトップ(32)だけがRG45コードで、他はすべて無線でつながっていることと関係があるのでしょうか?

右くらい。

私も同じような悩みを抱えて いました。解決しました。Wi-Fiモジュールの設定ミスでした。XP以上のシステムには、セキュリティ機能があります。
[Deleted]  
Vinin:

err_invalid_stops130不正確な停止位置
うん、ありがとう、RefreshRates()を入れて、それは働いたが、唯一のコンピュータ上で私は別の端末にそれをコピーして、データが完全に異なっている...と悪いことに、それはすることができます?
 

売りと買いの未決済注文の 数量、もっと言えばその値を引き出すにはどうしたらいいのでしょうか?

 
Elektronik:

売りと買いの未決済注文の数量、もっと言えばその値を引き出すにはどうしたらいいのでしょうか?


売りの注文、買いの注文の数量はどのように計算するのですか?

OrderLot()は、要約しますか?

あるいは、損益分岐点価格の取得?

 
sergeev:


このデータは、買い 注文と売り注文の差を計算するために必要です。

例えば、数量0.09の買い注文を1つ、合計数量0.11の売り注文を2つ出したとすると、その差は0.09-0.11=-0.02、可能ならその値の差になります。

[Deleted]  

こんにちは。質問は以下の通りです。MQL 4.communityに あるMQL4の 本では、「標準関数」の「文字列関数とデータ変換 関数」のセクションで、strings.mq4 Expert Advisorの次の例が示されています(本から全文を引用しています)。

//--------------------------------------------------------------------
// strings.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
extern int Quant_Bars=100;             // Количество баров
datetime   Time_On;
string     Prefix    ="Paint_";
//--------------------------------------------------------------- 2 --
int init()                             // Спец. функция init()
  {
   int Ind_Bar;                        // Индекс бара
   Time_On=Time [Quant_Bars];          // Время первого раскрашенного
   for(Ind_Bar=Quant_Bars-1; Ind_Bar>=0; Ind_Bar--)// Цикл по барам
     {
      Create(Ind_Bar,1);               // Нарисуем тонкую линию
      Create(Ind_Bar,2);               // Нарисуем толстую линию
     }
   WindowRedraw();                     // Перерисовка изображения 
   return;                             // Выход из init()
  }
//--------------------------------------------------------------- 3 --
int start()                            // Спец. функция start
  {
   datetime T1, T2;                    // 1 и 2 координаты времени
   int Error,Ind_Bar;                  // Код ошибки и индекс бара
   double P1, P2;                      // 1 и 2 координата цены
   color Col;                          // Цвет созданного объекта
//--------------------------------------------------------------- 4 --
   for(int Line=1; Line<=2; Line++)    // Цикл по видам линий
     {
      string Nom_Lin =Line + "_";      // Строка с номером линии
      //    string Nom_Lin  = DoubleToStr(Line,0)+"_";// Можно и так
      for(Ind_Bar=0; ;Ind_Bar++)       // Цикл по барам
        {
//--------------------------------------------------------------- 5 --
         datetime T_Bar= Time[Ind_Bar];// Время открытия бара
         if (T_Bar < Time_On) break;   // Заграничные не раскрашиваем
         string Str_Time=TimeToStr(T_Bar);       // Строка со временем
         string His_Name=Prefix+Nom_Lin+Str_Time;// Имя объекта
//--------------------------------------------------------------- 6 --
         T1=ObjectGet(His_Name,OBJPROP_TIME1);// Запрос коорд. t1
         Error=GetLastError();         // Получение кода ошибки
         if (Error==4202)              // Если объекта нет :(
           {
            Create(Ind_Bar,Line);      // Вызов ф-ии создания объекта
            continue;                  // На следующую итерацию
           }
//--------------------------------------------------------------- 7 --
         T2 =ObjectGet(His_Name,OBJPROP_TIME2); // Запрос коорд. t2
         P1 =ObjectGet(His_Name,OBJPROP_PRICE1);// Запрос коорд. p1
         P2 =ObjectGet(His_Name,OBJPROP_PRICE2);// Запрос коорд. p1
         Col=ObjectGet(His_Name,OBJPROP_COLOR); // Запрос цвета
         if(T1!=T_Bar || T2!=T_Bar || // Не те координаты или цвет:
            (Line==1 && (P1!=High[Ind_Bar] || P2!=  Low[Ind_Bar])) ||
            (Line==2 && (P1!=Open[Ind_Bar] || P2!=Close[Ind_Bar])) ||
            (Open[Ind_Bar] Close[Ind_Bar] && Col!=Red)  ||
            (Open[Ind_Bar]==Close[Ind_Bar] && Col!=Green)  )
           {
            ObjectDelete(His_Name);    // Удаляем объект
            Create(Ind_Bar,Line);      // Создаём правильный объект
           }
//--------------------------------------------------------------- 8 --
        }
     }
   WindowRedraw();                     // Перерисовка изображения 
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --
int deinit()                           // Спец. функция deinit()
  {
   string Name_Del[1];                 // Объявление массива
   int Quant_Del=0;                    // Количество удаляемых объектов
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   ArrayResize(Name_Del,Quant_Objects);// Необходимый размер массива
   for(int k=0; k<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
      ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве
   return;                             // Выход из deinit()
  }
//-------------------------------------------------------------- 10 --
int Create(int Ind_Bar, int Line)      // Пользовательская функция..
  {                                    // ..создания объекта
   color Color;                        // Цвет объекта
   datetime T_Bar=Time [Ind_Bar];      // Время открытия бара
   double   O_Bar=Open [Ind_Bar];      // Цена открытия бара
   double   C_Bar=Close[Ind_Bar];      // Цена закрытия бара
   double   H_Bar=High [Ind_Bar];      // Максимальная цена бара
   double   L_Bar=Low  [Ind_Bar];      // Минимальная цена бара
 
   string Nom_Lin =Line + "_";         // Строка - номер линии
   // string Nom_Lin  = DoubleToStr(Line,0)+"_";// Можно и так
   string Str_Time=TimeToStr(T_Bar);   // Строка - время откр.     
   string His_Name=Prefix+Nom_Lin+Str_Time;// Имя созаваемого объект
   if (O_Bar < C_Bar) Color=Blue;      // Выбор цвета в зависимости..
   if (O_Bar >C_Bar) Color=Red;        // .. от характеристик бара
   if (O_Bar ==C_Bar) Color=Green;
 
   switch(Line)                        // Тонкая или толстая линия
     {
      case 1:                          // Тонкая линия
         ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar);
         break;                        // Выход из switch
      case 2:                          // Толстая линия
         ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar);
         ObjectSet(   His_Name, OBJPROP_WIDTH, 3);// Стиль     
     }
   ObjectSet(    His_Name, OBJPROP_COLOR, Color); // Цвет
   ObjectSet(    His_Name, OBJPROP_RAY,   false); // Луч
   ObjectSetText(His_Name,"Объект создан экспертом",10);// Описание
   return;                             // Выход из польз. ф-ии
  }
//-------------------------------------------------------------- 11 –
[Deleted]  

...続き...

StringSubstr 関数のサブセクションの最後に、次のような文言が括弧で囲まれています。「別に注意しなければならないのは、最初のforループ (私の注:他にオブジェクトを削除する方法がないのでdeinit()でなければならない)では、オブジェクトを削除できないことです。この場合、オブジェクトの総数とその番号が削除ごとに変わり、いくつかのオブジェクト名がスキップさ れることになるからです」。しかし、引用したEAでは、2つ目のfor ループが全くありません。さらに、for ループ の前の関数deinit() で定義された変数 Quant_Del は 0 で初期化され、変数ifor ループの前のどこにも定義されていない。

   for(int k=0; k<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
         ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве

というのは、上記の専門家は、プログラム行をいくつか些細に省略しているだけであることがわかったからです。

本当に数行の些細な省略だったのか、それとも外部の助けがないと初心者が意味を理解できないほどトリッキーなプログラムなのか、1つ目の質問 です。

さらに...同じ章の同じセクションの引用文の前に、同じExpert Advisor(添付ファイル)へのリンクがあり、クリックするとMetaElitorで同じExpert Advisorが開かれるようになっています。しかし、このExpert Advisorのテキストは異なって おり、ここでのdeinit()関数は次のようになります。

//--------------------------------------------------------------- 9 --
int deinit()                           // Спец. функция deinit()
  {
   string Name_Del[1];                 // Объявление массива
   int Quant_Del=0;                    // Количество удаляемых объекто
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   ArrayResize(Name_Del,Quant_Objects);// Необходимый размер массива
   for(int k=0; k<Quant_Objects; k++)  // По количеству объектов 
     {
      string Obj_Name=ObjectName(k);   // Запрашиваем имя объекта
      string Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 сим
      if (Head==Prefix)                // Найден объект, ..
        {                              // .. начинающийся с Paint_
         Quant_Del=Quant_Del+1;        // Колич имён к удалению
         Name_Del[Quant_Del-1]=Obj_Name;//Запоминаем имя удаляемого
        }
     }
   for(int i=0; i<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
      ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве
   return;                             // Выход из deinit()
  }
//-------------------------------------------------------------- 10 --

では、もし 「コンバイン言習わし"別に、最初のforループでオブジェクトを削除できないことに注意してください。この場合、削除のたびにオブジェクトの総数とその番号が変わり、一部のオブジェクト名がスキップ されるからです "テキスト 最後のバリアントのdeinit()関数について、2つ目の質問があります。

質問 です。 ObjectDelete(Obj_Name)関数をif 文の中に入れて、最初のfor ループでオブジェクトを削除できないのはなぜですか...?みたいな感じ。

int deinit()                           // Спец. функция deinit()
  {
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   for(int k=0; k<Quant_Objects; k++)  // По количеству объектов 
     {
      string Obj_Name=ObjectName(k);   // Запрашиваем имя объекта
      string Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 сим
      if (Head==Prefix)                // Если найден объект, …
        {                              // ... начинающийся с Paint_,
         ObjectDelete(Obj_Name);       // … то его и удаляем
        }                              //конец if
     }                                 //конец for
   return;                             // Выход из deinit()
  }                                    //конец deinit
//-------------------------------------------------------------- 10 --

なぜ削除のたびに「...オブジェクトの総数が変化 する」...?この場合、オブジェクトの総数を決定するQuant_Objects 変数がObjectsTotal() と等しい値を取得するため、for ループをFORWARD するのですか?

P.S. フォーラムを散らかさないためにも、回答よろしくお願いします。

ファイル:
strings_1.mq4  7 kb