MetaTrader 4 Build 529 ベータ版リリース、新コンパイラー搭載 - ページ 118

 
Candid:

インジケーターのデモ版が起動しない。右クリックではテストが全く提供されず、ダブルクリックしてから「テスト」ボタンを押すと、テスターはロードされますが、「開始」ボタンには全く反応しません。ストラテジーテスターの日誌は空白のままです。エキスパート・アドバイザーを発売ビルド555。


558で少し変わったのは、以前はダブルクリックでインジケーターの積み込みと次の積み下ろしの記録が一般ジャーナルに表示されていたのが、積み下ろしの記録が表示されなくなったことです。また、テスターでは「market」フォルダーを記載せずにインジケーターを表示するようにしました。しかし、テスターのログは原形をとどめていない。

私が理解する限り、誰も指標のデモ版のテストの問題を扱っていない、それはエキスパート-アドバイザーのテストでのエラーの検索のエコーであるように思える。もしかしたら、インジケーターをテスト した方が、エラーを見つけやすいかもしれませんね。

 
stringo:

IndicatorCounted()関数は、もともと松葉づえだったのです。3つのインジケータをプログラムしたことがある人なら、私の言っていることが理解できるはずです。

私たちは,パラメータ prev_calculated と関数 OnCalculate で計算されたバーの数を返すことで,5つのエレガントな解決策を見つけました.そして、このソリューションは、現在、新しい4つに移行しています。



ずいぶん前の ものですが、今でも素敵です :)
 
Candid:
インジケーターをテストすれば、故障が見つかりやすくなるのでしょうか?
インジケーターテストは ありますが、今すぐにはありません。でも、そうなります。
 
OBJPROP_ANCHOR入力により、Kimのオブジェクト作成 機能は廃止されたようです。今確認してみますが、やはりグラフィックに問題があるようです。後日、例を挙げて詳細を掲載しようと思います。
 
stringo:

繰り返す。ファイブのようにやっています。もう一つアンカーポイントを適用してください。オブジェクトの「アンカー」ポイントが、オブジェクトのどこに位置するかを指定してください。あなたの場合は、オブジェクトの右上隅です。




つまり、ObjectSet関数は、新しいバージョンの端末と古いバージョンの端末では、異なる動作をするのです。また、チャートへの出力を 使用するExpert Advisorはすべて少し変更する必要があります。

前バージョンでは、ObjectSet(Name,OBJPROP_CORNER, 1);
を選択すると、「アンカー」ポイントが自動的にオブジェクトの右上隅になるようになってました。互換性のために、これを残すつもりですか?

 
alexvd:

チャート上でEAをキャストしてみました(ストラテジーテスターではありません)?ログブックに何かメッセージは?


PS.問題は解決した。次のビルドで修正されるのを待ちます。

1.いいえ、チャートにEAを添付しようとしたわけではありません。Testerのジャーナルには、その設定の標準出力を除いて、何のエントリも見当たりませんでした。そのため、EAのinit()からの出力はありましたが、ジャーナルにEAのstart()からの出力はありませんでした。

2.迅速に対応する。ありがとうございます、楽しみにしています。

 
Lion.Fx:

ObjectSet関数の動作が、新しいバージョンのターミナルと古いバージョンのターミナルで異なっていることが判明しました。また、チャート上に情報を出力するExpert Advisorはすべて少し変更する必要があります。

以前のバージョンでは、次のようにすると、ObjectSet(Name,OBJPROP_CORNER, 1)となります。
アンカーポイントは自動的にオブジェクトの右上に配置されました。互換性のために、これを残すつもりはないのですか?

そうですね、古いビルドのようにデフォルトのアンカーリングを残すことが望ましいです。
 
ただ、長年にわたって忠実に機能してきたキムの機能を確認しました :)(今回も彼に感謝)。
OBJPROP_ANCHORパラメータを追加することで、オブジェクトをその場所に配置することができました(理解しがたい座標移動はありません)。

ANCHORを追加していただき、ありがとうございます。その方が便利なんですよ、それでいろいろと直さないといけないけど。

以下はその機能です。

//+------------------------------------------------------------------+
void SetLabel(string nm, string tx, string ft,color cl, int xd, int yd, int cr=0, int anch=0, int fs=9) {
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
  ObjectSetText(nm, tx, fs,ft);
  ObjectSet(nm, OBJPROP_COLOR    , cl);
  ObjectSet(nm, OBJPROP_XDISTANCE, xd);
  ObjectSet(nm, OBJPROP_YDISTANCE, yd);
  ObjectSet(nm, OBJPROP_ANCHOR, anch);   //<----------------
  ObjectSet(nm, OBJPROP_CORNER   , cr);
  ObjectSet(nm, OBJPROP_FONTSIZE , fs);
}
//+------------------------------------------------------------------+

と呼びかけます。

  SetLabel("Hello",  "Hello" ,  FontType, FontColor,  20, 20, 3, 1, FontSize);

 
Lion.Fx:

ObjectSet関数の動作が、新しいバージョンのターミナルと古いバージョンのターミナルで異なっていることが判明しました。そして、チャートに出力された情報を利用するすべてのEAを少し修正する必要があります。

以前のバージョンでは、次のようにすると、ObjectSet(Name,OBJPROP_CORNER, 1)となります。
そうすると、「アンカー」ポイントは自動的にオブジェクトの右上に行くことになります。互換性のために、これを残すつもりですか?

理にかなっている。何ができるのか、見てみよう。

PS.まさにその通りです。

 
ServiceDesk #907205 オープン アプリケーションの 追記を行い、確認用のコードを添付しました。