オブジェクトリストには作成順に並んでいますが、 ObjectName()では種類ごとに、そのオブジェクト名の順番にリストアップされます。
例えば楕円2つに水平線3本なら次のような順序になります。
Ellipse1234
Ellipse1238
Holizontal line 1225
Holizontal line 1236
Holizontal line 1240作成順にしたいのなら別途配列を用意したほうがいいと思います。
Shino Unada #:
オブジェクトリストには作成順に並んでいますが、 ObjectName()では種類ごとに、そのオブジェクト名の順番にリストアップされます。
例えば楕円2つに水平線3本なら次のような順序になります。
Ellipse1234
Ellipse1238
Holizontal line 1225
Holizontal line 1236
Holizontal line 1240作成順にしたいのなら別途配列を用意したほうがいいと思います。
ご回答ありがとうございます。
別途配列を用意するとして、時間足変更等を行うとインジやEAはプログラムを再起動してしまうので
OnDeinit()でFileWriteArray()を呼び出してオブジェクト名をファイルに出力しようと考えました。
しかしFileWriteArray()は文字列を含む配列を利用できないようでしたので、
面倒ですがFileWriteString()でオブジェクト名を1つずつファイル出力すればよいのかなと考えました。 (工夫次第で1行で書けるかな?)
ひとまずやってみます。ありがとうございました。

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
起きている問題
ObjectName()がオブジェクトリストのインデックス通りに動作しない。
ObjectName()のドキュメントを参考に、チャート上の全オブジェクトの名前を新しい順にターミナルに表示するスクリプトを書いたが
オブジェクトリストの順番通りに動作しない。
やりたいこと
オブジェクトリストの順番に対応したオブジェクト名を
ObjectName()に返させる方法を知りたい
やったこと
コード
解決策
スクリーンショット(screen.png)も添付しております。
お手数をおかけしますが、ご教示ください。よろしくお願いいたします。