エラー、バグ、質問 - ページ 2798

 
Alexey Viktorov:

ドキュメントを見たのか、それとも私の投稿から関数の説明を鵜呑みにしたのか、疑問です。

トレンドのあるグラフィカルなオブジェクトしか持っていないのではないでしょうか?その場合、なぜプリフィックスが必要なのでしょうか?オブジェクトタイプによる削除もあります

と書くだけで、プロジェクト内で何も変更する必要がありません。

)))))))))))))

もちろん、ドキュメントを見てのことです。そして、そう、すべては可能なのですでも、これをやったのは...。そして、うまくいかなかったり、なぜか邪魔になったり......?

そして、プロジェクトでは、もっと複雑なことが起こっています。上に書いたように...
 
Artyom Trishkin:

これはあくまで特殊なケースです。接頭辞は一般的かつ普遍的なものです。すべてのトレンドラインを 削除すると、プログラムに属さないオブジェクトにも影響を及ぼしますが。

賛成。 chart_id: 0 (現在のチャート).このチャートにしか影響しないということです。また、他のプログラムがある場合は、各オブジェクト名にIDを付けて適切な接頭辞を付けてObjectsDeleteAllを 呼べば、この関数は何も混乱させる ことはありません。だから、上の書き込みで、オブジェクトの命名が複雑で、この機能を使う前に考える必要があると言ったのです。しかし、アレクセイは、彼の友人でもある私に腹を立て......。無駄だ!

 
Mihail Matkovskij:

なぜでしょうか? chart_id: 0 (現在のチャート)です。だから、このチャートの上だけなんです。また、他のプログラムもあるとすれば、IDという概念もあります。各オブジェクト名に追加しておけば、ObjectsDeleteAll関数が何かを混乱させることはないでしょう。だから、上の書き込みで、オブジェクトの命名が複雑で、この機能を使う前によく考えないといけないと言ったのです。しかし、アレクセイは、彼の友人でもある私に腹を立て......。無駄だ!

答える前に頭を使おう :)

オブジェクトの名前に書かれているIDは一種のプレフィックスで、プログラムからオブジェクトを識別したり、削除したりするためのものです。

そして今、私はアレクセイに私の応答を書いたコードを見て、どのように彼のコードは、IDを持っていない、あなたが必要とする唯一のオブジェクトを削除し、プログラムに属していないチャート "エイリアン "オブジェクトに残すのだろうか?

このコードに対する私の答えは、そんなアレクセイからのメッセージでした。

ということで、プロジェクトの中身は何も変えずに、ただただ

ObjectsDeleteAll(0, 0, OBJ_TREND);
)))))))))))))
 
Artyom Trishkin:

答える前に頭を使おう :)

IDは、オブジェクトの名前に書かれているもので、一種の接頭辞であり、その識別によって、プログラムのオブジェクトが削除されます。

今、私はアレクセイに私の応答を書いたコードを見て、どのように彼のコードは、あなたが必要とする唯一のオブジェクトを削除します、それはそれに書かれているIDを持っていないでしょうし、プログラムに属していないチャート "エイリアン "オブジェクトに残しますか?

私のアレクセイへの返信は、このコードにそんなアレクセイからのメッセージが添えられていた。

編集しました。正解です。ちょっと失敗したのは私です。もう一声欲しかった。

 
Mihail Matkovskij:

しかし、アレクセイは私に腹を立てた...。

わかってないなぁ・・・私は正義の味方だよ。自分の欠点を晒してはいけない、誰にでも欠点はある、私もそうだ、端末のバグのために。

少し前までは、変数の上で右クリックして「定義に移動」、同じ変数に戻るにはラットの「戻る」ボタンを押す、というギミックを使って喜んでいたのですが、最近になって、「定義に移動」ではなく「戻る」ボタンが使えるようになったのです。しかし、今日、それがうまくいかなくなっていることに気づきました。その理由は何ですか?昨日、2530にアップデートしたのですが...汚い言葉も使ってしまいましたが、ふと、キャップも変えなければならないことを思いだしました。ME2474を開いて、おっとっと......と思ったら、動かない。もし、頭の中に開発者について思ったことを全部書くようなメールがあったら?どのように見えるでしょうか?

つまり、バグについて書く前に焦らず、自分のコードに欠陥がないかを探すことです。

 
Alexey Viktorov:

そんなことはない・・・私は正義の味方だ。自分の欠点をさらけ出さないこと、誰にでも欠点はあるし、私にもある、端末のバグのために......。

誰が暴露してるんだ?https://www.mql5.com/ru/forum/1111/page2795#comment_17290368 .今回は じっくり読んでいただけたでしょうか...?何回言ったらわかるんだ、やっと理解してここに無意味なことを書くのをやめるんだ?

 
Mihail Matkovskij:

誰が貼ってるんだろう?https://www.mql5.com/ru/forum/1111/page2795#comment_17290368 .今回は じっくり読んでいただけたでしょうか...?あと何回言えば、やっと理解して、ここにくだらないことを書かないようになるんだ!

公平性は大賛成です。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

ミハイル・マトコフスキー, 2020.07.11 14:47

このバグが発生するソースコードを作成しました。
//+------------------------------------------------------------------+
//|                                           DeleteChartObjects.mq5 |
//|                                      Copyright 2020, © Cyberdev. |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev."
#property version   "1.00"
#property indicator_chart_window

#property indicator_plots 0

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#include <ChartObjects\ChartObjectsLines.mqh>
#include <Arrays\ArrayObj.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//--- input parameters
input int      nBars = 100000;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int customN_Bars = 0;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CArrayObj listOfTrendLines;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
//--- indicator buffers mapping
  int totalBars = iBars(NULL, PERIOD_CURRENT);
  customN_Bars = (nBars < totalBars) ? nBars : totalBars;
//---
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]
) {
  CChartObjectTrend * trend;
  int delta = rates_total - customN_Bars;
  int shift;
  int i;
  for(i = 0; i < customN_Bars; i++) {
    shift = delta + customN_Bars - i - 1;
    trend = new CChartObjectTrend();
    if(trend.Create(0, "trend"+(string)i, 0, time[shift], low[shift], time[shift], high[shift]))
      listOfTrendLines.Add(trend);
  }
  return(rates_total);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
  
  CChartObjectTrend * trend;
  
  int i = listOfTrendLines.Total() - 1;
  for(; i >= 0; i--) {
    trend = dynamic_cast <CChartObjectTrend *> (listOfTrendLines.At(i));
    
    if(CheckPointer(trend) == POINTER_INVALID)
      continue;
    
    delete trend;
  }
}
//+------------------------------------------------------------------+

バグを実証するためのアクション

チャート上にインジケータを投げる。

2.チャートからインジケータを取り外します。

3. Ctrl+Bを押して、ウィンドウ内の「List all」をクリックし、削除されていないオブジェクトを確認します。

対象物

10万人中294人もいるんですよ。

入力パラメータnBarsの値を小さくすると、不具合は発生しません。


 
Alexey Viktorov:

公平性は大賛成です。



だから、あの投稿には、私のプログラムと端末のバグ、どちらのバグなのかが書かれていなかったんです。端末のバグかと思った。でも、ラシード・ウマロフが 全部説明してくれて、理解できた。すべてにおいて、とてもクリアでした。端末のバグはなかった、私の思い込みは間違っていた。なんだか躁鬱な気分でついてきていますね。理由は何ですかと聞いたら、教えてくれましたね。

あなたはずっと前に黙っていただろうし、私は続けなかっただろう

それが理由です...。

こんな馬鹿げたことはやめてくれ!大人(だといいな)...

 
Mihail Matkovskij:

だからあのメッセージには、私のプログラムなのか端末のバグなのか、どちらのバグなのかが書かれていなかったんです。端末のバグかと思った。でも、ラシード・ウマロフが 全部説明してくれて、理解できた。すべてにおいて、とてもクリアでした。端末のバグはなかった、私の思い込みは間違っていた。なんだか躁鬱な気分でついてきていますね。理由は何ですかと聞いたら、教えてくれましたね。

それが理由です...。

こんな馬鹿げたことはやめてくれ!大人の対応、期待してます...。

わかりました。転ばぬ先の杖で、履き替えました。端末のバグとして報告し、............自分の知っている人生を生きるのです。

 
蓄電池の接続

https://storage.mql5.io ログインできません。