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

 
Vitaly Muzichenko:

ボタンを使ってコードを挿入してください

ありがとうございます)))これでわかります)) コンパイル時にどの箇所でエラーが発生するのかを示しました。
double Price;                                                               // Цена выбранного ордера
  double Mas[];                                                                //массив для упорядочивания всех ордеров
  for(int i=0; i<OrdersTotal(); i++)                                           // Цикл перебора ордер
   {
    if(OrderSelect(i,SELECT_BY_POS))                                           // Если есть следующий
     {
      Price=OrderOpenPrice();                                                    //Заполняем массив ценами
      Mas[i] = Price;
     }
   }
  
          ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND);                           // Теперь цены открытия упорядочены по убыванию
          
        int Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND);           //Определен индекс ближайшего меньшего по значению елемента к текущей цене
        double PriceBlizko1=Mas[Blizko1];
     
     }  
      if (PriceBlizko1-Ask>=30*Point)                          //Если верхний ордер дальше чем 30 пунктов !!!! 'PriceBlizko1' - undeclared identifier!!!!!

       {OrderSend(Symbol(),OP_BUY,LtsB,Ask,2,0,Bid+30*Point);      //Открываем ордер Бай
               Alert (GetLastError());                                    //Сообщение об ошибке
上の行にPriceBlizko1が記述されているので不思議です
 

誰もClusterDeltaの指標を使ってないのか?

 
vikzip:
ありがとうございました)))これから知ります)) コンパイル時にどの場所でエラーが出るかを示しました。
上の行にPriceBlizko1が記述されているので不思議です

まさに上の行に記述されています。ローカル(現在の)ユニットだけでなく、すべてのユニットで利用できるように、グローバルに定義する必要があります。

 
voron_026:

ClusterDeltaのインジケータを使っている人はいないのでしょうか?

オブジェクトを読み込んでデータを取り出す:ObjectGetDouble

Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Vitaly Muzichenko:

まさに上の行に記述されています。ローカル(現在の)ユニットだけでなく、すべてのユニットで利用できるように、グローバルに定義する必要があります。


ありがとうございました)

 

EAの書き込みが 完了したように見えるが、エラーが表示される

')'- すべてのコントロールパスが値を返すわけではない

何に関連することができるのか。リターンを入れてみたところ、エラーが変化する

return' - この関数は値を返す必要があります。


初期化されていない変数 'Ticket' が使用されている可能性があります。
初期化されていない変数 'LtsB' が使用されている可能性があります。
初期化されていない変数 'LtsS' が使用されている可能性があります。
return' - 関数は値を返す必要があります。
エラー1件、警告3件

Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 (MQL5), среда разработки MetaEditor и инструменты тестирования стратегий. Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте MQL5.community. На этом же сайте в разделе Code Base могут быть...
 
vikzip:

EAの書き込みが 完了したように見えるが、エラーが表示される

')'- すべてのコントロールパスが値を返すわけではない

何に関連することができるのか。リターンを入れてみたところ、エラーが変化する

return' - 関数は値を返す必要があります。


多分、関数はreturn(0) でなければならない。

 
Vitaly Muzichenko:

このようなreturn(0) が必要なのかもしれませんね。


ありがとうございます!!!

 
vikzip:

ざまぁあああああああああああああああああああああああああああああああああああああありがとうございます!!!

なぜ「ありがとう」なのか?この関数は値を返す必要が あります。そして、いつもゼロを返すんですね。何も返さないのであれば、その型はvoid であるべきです。

 
Artyom Trishkin:

mql4, mql5では、配列は常に参照渡しのみです(& == アンパサンド)

まず、関数の正式なパラメータの中にアンパサンドがありますが、これは関数に渡されるのが配列そのものではなく、配列への参照であることを示しています。そして、関数内部ではすでに参照を扱っているので、改めて指定する必要がないのです。

チルダ(~)はクラスのデストラクタの名前の前に付きます。コンストラクタとデストラクタはクラス自身と同じ名前ですが、デストラクタには~が付きます。

リファレンスを使う場合とポインターを使う場合については、こちらの記事を ご覧ください。

とはいえ、やはり基本的なことは読んでおく必要がありますね。

ありがとうございました。