ロボットの作成 - ページ 6

 
SanAlex:

を削除する - この機能はより複雑です。

数字が表示されるインジケーターもあります。

インジケーター名の画像はこちら

ファイル:
vn0wia.PNG  16 kb
 
SanAlex:

削除の場合は、より複雑な関数があります。

では、MQL5のマニュアルに すべてが明記されているのであれば、どのように使えばいいのでしょうか?

ObjectsDeleteAll

Удаляет все объекты в указанном графике, указанном подокне указанного графика, указанного типа. Существует два варианта функции:

int  ObjectsDeleteAll( 
   long  chart_id,            // идентификатор графика 
   int   sub_window=-1,       // индекс окна 
   int   type=-1              // тип объекта для удаления 
   ); 

Удаляет по префиксу имени в подокне графика все объекты указанного типа.

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );

Параметры

chart_id

[in]  Идентификатор графика. 0 означает текущий график.

prefix

[in]  Префикс, по которому будут удалены все объекты, чьи имена начинаются с данного набора символов. 
Префикс можно указывать как 'name' или 'name*' – оба варианта работают одинаково. 
Если в качестве префикса указана пустая строка, то будут удалены объекты с любым именем.

sub_window=-1

[in]  Номер подокна графика. 0 означает главное окно графика, -1 означает все подокна графика, включая главное окно.

type=-1

[in]  Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT. -1 означает все типы.

Возвращаемое значение

Возвращает количество удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().

Примечание

Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, 
которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. 
Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.

接頭辞で削除しています。それとも、私が何か理解していないのでしょうか?

敬具 ウラジミール

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
MrBrooklin:

では、MQL5ハンドブックに すべて明記されているのであれば、どのように使えばいいのでしょうか?

接頭辞で削除しています。それとも、私が何か理解していないのでしょうか?

敬具 ウラジミール

私はHandbookを使ったことがないのですが、うまくいくまでつつくだけでやっています。

これは私が作ったスクリプトです。

ファイル:
 

フォーラム関係者の皆様へ

どなたか、プログラミングにおける接頭辞の 意味を誤解していないか、アドバイスをお願いします。

ウラジミールさん、謹んで申し上げます。

 
MrBrooklin:

フォーラム関係者の皆様へ

どなたか、プログラミングにおける接頭辞の 意味を誤解していないか、アドバイスをお願いします。

敬具 ウラジミール

ロシア語と同じhttps://www.linguee.com/english-russian/translation/code+prefix.html

例: ENUM_ORDER_TYPE_FILLING → この場合の接頭辞は enumeration、次に _order_type_function
code prefix - Russian translation – Linguee
code prefix - Russian translation – Linguee
  • www.linguee.com
surname or family name, t h e prefix o f w hich was separated в именном указ а тел е в связи с фа ми ли ей, префикс которой Настрой к и префикса: В Ы можете создать список номер о в префиксных но ме ров и установи т ь определенные пр еф иксные имена пользователя , дл я международных к одо в доступа и ко до в города. scientific education, an eth...
 
MrBrooklin:

では、MQL5ハンドブックに すべて明記されているのであれば、どのように使えばいいのでしょうか?

接頭辞で削除しています。それとも、私が何か理解していないのでしょうか?

敬具 ウラジミール

ウィンドウズ・インデックスがないのでは?

 
Valeriy Yastremskiy:

ウィンドウズ・インデックスがないようですね。

ヴァレリーさん、こんにちは。

このコードでは、ウィンドウの チャートIDを "0"、つまり現在のチャートと書きました。

   ObjectsDeleteAll(0,"Examples\\ZigzagColor");

それとも、プリフィックスの後に"-1 "をつけるということですか?そんな感じなんですか?

   ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1);

私もその方法で試しましたが、とにかく削除されませんでした。

敬具 ウラジミール

 
MrBrooklin:

ヴァレリーさん、こんにちは。

このコードでは、ウィンドウ "0"、すなわちメイン・チャート・ウィンドウの chart_idを 指定しています。

それとも、プリフィックスの後に"-1 "が残っているということですか?そんな感じなんですか?

そうであれば、私も試してみましたが、やはり削除されません。

ウラジミールさん、ありがとうございます。

普段はprintかalertで、ハンドル取得後、alertに表示、出来ればインディケータ名とウィンドウインデックスとチャート識別子、削除後、delete関数の戻り値をalertに表示する。最初のゼロはチャート識別子で、接頭辞の後はウィンドウインデックスです。

int DelObjV=ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1,-1);
Alert ("DelObjV= " DelObjV);
 
通常、OnDeinitでハンドルと計算部をクリアすると、すべて削除されます。オブジェクトはインジケータではありません。
   IndicatorRelease(h_zz);
   ArrayFree(zz_buf);

https://www.mql5.com/ru/docs/chart_operations/chartindicatordelete

"チャートからインジケータを削除しても、インジケータの計算部も端末メモリから 削除されるわけではありません。インジケーターハンドルを解放するには、IndicatorRelease() 関数を使用してください」。

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Valeriy Yastremskiy:

通常はprintやalertを踏み、握手をしてもらった後alertに出力し、indicatorの名前とウィンドウインデックスとチャート識別子が できれば、削除後に削除関数のリターンをalertに出力します。最初のゼロはチャート識別子で、接頭辞の後はウィンドウインデックスです。

を使用して、チャートからインジケータを削除してください。


ChartIndicatorDelete()

long chart_id, // チャート識別子

int sub_window // サブウィンドウの番号

const string indicator_shortname // 短いインジケータ名

);