"ダミー "からの質問 - ページ 84

 
Expert:
...
アンドレイ、おかしいだろ、手動取引の テスターを作るのに、インジケーターを直せないなんて、カウンターのデータ欠落を探しに行けよ。
 
Urain:
I`m crazy about you, you're going to build a manual trading tester and you can`t fix indicator, you have to search for missing data in the counters.私はあなたに夢中です。

またAndreiと勘違いしているようですね=)

データが消えるのではなく、データが消えるのです。

インジケータが数バー前のポイントを再描画するため、掘り下げやデバッグが容易ではありません。

 
Expert:

またAndreiと勘違いしているようですね=)

データが消えるのではなく、データが消えるのです。

しかも、インジケータが数本前のポイントを再描画するため、掘り下げやデバッグが容易ではありません。

はい、すみません、混乱しました。

プリントと混同しないように、配列のインデックスの 向きに注意してください。
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Urain:

はい、すみません、混乱しました。

配列のインデックスの 向きに注意して、混乱しないように、プリントで自分で確認してください。

わかりました、そうします。

しかし、一番の疑問は、なぜTFを切り替えるとこれらのパターンが消えてしまうのか、ということです。

これらのパターンは、インジケータが構築された配列と一致することもあれば、グラフの中に無秩序に散らばっていることもある。

配列の要素を適切な場所でゼロにすると、そうなるようです...。

 
Expert:

わかりました、そうします。

しかし、一番の疑問は、なぜthefを切り替えると、これらのパターンが消えてしまうのか、ということです。

これらのパターンは、インジケータが構築された配列と一致することもあれば、グラフ上に無秩序に散らばっていることもある。

配列 要素の適切な位置でのゼロ化が行われているようですが・・・。

TFを切り替えると再初期化が行われるため、パターンが消えてしまうのです。

グラフオブジェクトでパターンを構築しているのではないのですか? もしそうなら、削除する必要があるときに管理する必要があります。

ZS 一般的に、コード(1枚の画像)がないと、原因を探るどころか、何が問題なのかさえも理解することが難しいのです。

 
Urain:

TFを切り替えると再初期化されるため、パターンが消えてしまう。

グラフオブジェクトでパターンを構築していないのですか? もしそうなら、削除する必要があるときに制御する必要があります。

HHは一般的にコード(一枚の絵)がないと、原因を探るどころか、何が問題なのかさえも理解するのが難しいのです。

#property indicator_type1 DRAW_ARROW

#property indicator_type2 DRAW_ARROW

#property indicator_type3 DRAW_ARROW

グラフオブジェクトではなく、バッファ。

しかし、コード、イエス・プリーズ)

ファイル:
WATL.mq4  24 kb
WATL.mq5  41 kb
 
Expert:

#property indicator_type1 DRAW_ARROW

#property indicator_type2 DRAW_ARROW

#property indicator_type3 DRAW_ARROW

グラフオブジェクトではなく、バッファ。

しかし、コード、イエス・プリーズ)

まずデコンパイルされたコードであること、そして移行処理に多くのバグがあることです。

例えば、次のようなPerlがあります。

iBarShift(NULL,0,ai_4,false);

CopyTime関数には ヌル文字という概念がないにもかかわらずです。

(NULL)を文字列型パラメータに渡すと,""が渡されます。

int iBarShift(string symbol,
              int tf,
              datetime time,
              bool exact=false)
  {
   if(time<0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime(symbol,timeframe,0,1,Arr);
   time1=Arr[0];
   if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
     {
      if(ArraySize(Arr)>2) return(ArraySize(Arr)-1);
      if(time<time1) return(1);
      else return(0);
     }
   else return(-1);
  }


開発者に連絡する

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyTime - Документация по MQL5
 
Urain:

まず、デコンパイルであること、そして、マイグレーションにバグが多いことです。

このperlを見てください。

CopyTime関数には ヌル文字というものが存在しないにもかかわらずです

(NULL)を文字列型パラメータに渡すと,""が渡されます。


開発者に連絡する

開発者と$$トークするのは嫌だ =)

いずれにせよ、賢明なアドバイスをありがとうございました。

 
Expert:

開発者に連絡するための$wish$がない =)

いずれにせよ、良いアドバイスをありがとうございました。

しかし、それだけではありません。アイデアとしては、チャート ID 0 の代わりにグラフ・オブジェクトを渡すこともできますが、実際には、チャート番号を渡した方がよいでしょう。

一般に、理解すべきことはたくさんあります

このコードでプログラマーが何を言いたかったのかが不明です。

int Double2Int(double ad_0) 
  {
   return(int(StringToInteger(DoubleToString(ad_0,0))));
  }

その方が楽だし、早いですからね。

(int)NormalizeDouble(ad_0,0)

よりも、Tバックによる丸め

 
Urain:

しかし、それだけではありません。理論的には、グラフオブジェクトを作るときに、チャートIDの代わりに0を渡すことも可能ですが、実際には、チャート番号を渡したほうがよいのです。

一般的には、整理することがたくさんあります

このコードでプログラマーが何を言いたかったのかが不明です。

その方が楽だし、早いと思うんです。

文字列で丸めを行うより

のオブジェクトは線であり、私はそれを切り捨てたので、明らかにエラーの原因はそこではありません。

文字列を丸めるのは、MQL4には(int)のようなメソッドがないためで、書き換えではコードの一致を最大化するためにわざとそのままにしています。

しかし、どうやらまだ古いバージョンを自分のものに置き換えることができるようです。