あんころ餅

唐突ですが、「あんころ餅」と聞いて連想するものは、餡(あん)が餅(もち)を包んでいます?それとも、餡がモチの中に入っています?
私の常識では、あんころ餅は後者の方で、これとかこれのイメージだったのですが、一般的には違うみたいですね^^;


私同様に、餅の中に餡が入っているのが、あんころ餅だ〜って思われる人がいらっしゃったら是非出身地をコメントください。



あんころ餅 2010/05/02 13:54
はじめましてこんにちは。
私もMT4のプログラムをしているのですが、ネットを検索していて
こちらにたどり着きました。
他にはない、玄人思考のコーディングテクニックが満載のサイトで
私もまだまだだ、と痛感しています。

MT5への移植も視野にいれてはいるのですが、コーディング上は移植
できたと思えたものが全く表示がされなかったりでメインチャートで
使うのは未だ先になりそうです。


MQL5 の文法を一通り学習して、移植作業を始めて最初に引っ掛かるのは、配列の範囲外アクセスかもしれません。 MQL4 では、配列の範囲外にアクセスしても何かの値を返してプログラム自体は動き続けるのですが、MQL5 では止まってしまいます。
例えば、10日間移動平均を作成した場合、データは10日目から始まるのですが、ここで9日目以前のデータにアクセスしたらNGです。あんころ餅さんの原因が、それとは限りませんが、配列へのアクセスに注意する必要があるのは間違いないです。


さて。もしご存知でしたら・・と思い、書き込ませていただきました。
1.サブウインドウに表示した場合、通常上限・下限設定をプロパティ
  ウインドウを開いてマニュアルで設定しますが、この値をインジ内部
  つまりプログラム側で設定する方法はありますでしょうか?
  応用で自動縦スクロールまでいければと思っています。

残念ながら、マニュアルで設定するしかありません。MQL5 には、ChartSetDouble() という関数で変更できるかもしれないのですが、MQL4 では #property 属性で固定的にしか指定できないのです。
(昔作ったオシレータを上下対称スケールに描画する手法で、多少は調整できるでしょうけど、厳密には設定できないですからねぇ・・・

2.customcandle.mq4を使っているのですが、MT4を再起動すると前回描画
  していたRECTANGLEやTRENDLINEが消えていたり表示されていたり、と
  表示が不安定なのです。ObjectsDeleteAllではオブジェクト名を指定で
  きないので同類のインジがあると全て消えてしまいます。
何かよい方法がありましたらご教授いただけませんでしょうか。
よろしくお願い致しますm(__)m

私が試した customcandle.mq4 では、表示が安定しているので不可解です。
(インジケータ名を書くときは、ダウンロード元も書かないと、異なるインジケータを見ている可能性があります…


回答としては、 deinit() 内で、オブジェクト名の部分一致検索して合致するものを削除したら良いはずです。

   for(int i=ObjectsTotal();i>=0;i--){
      string ObjName=ObjectName(i);
      if(StringSubstr(ObjName,0,5) == "JPNTZ"){
         ObjectDelete(ObjName);
      }
   }