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

 
A100:
非取引時間帯には動作しません。何が邪魔なんだ?

パラメータは間違いないですか?

どちらの例も間違っているように見えます。

ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, 0, true )  - последний параметр должен быть long&, а не bool
ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, true )     - последний параметр должен быть номер подокна, а не bool

ChartSetIntegerと 混同しているように見えますが?

 
Renat:

パラメータは間違いないですか?

どちらの例も間違っているように見えます。

ChartSetIntegerと混同しているように見えますが?

はい、すみません、私のコードからの誤訳です - 非取引時間には動作しません。
bool bringToTop = true;
ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, 0, bringToTop ) 
ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, true )
//этим хотел показать что пробовал оба варианта
CHART_BRING_TO_TOP- 書き込みのみなので、ChartGetIntegerと 動作しないはずです。 私はServiceDeskにアプリケーションを 修正します。
 

全チャートのリトレースメント(5000の一時停止あり)をしています。

a) (昨日)非取引日 - 反応なし -スクリプトをアンロード すると、スクリプトを起動していなくても1番目のチャートに移動します。

b) 現在 - すべてが正常に動作しています。

必要であれば、コードを添付します - 単純なループ - GetLastError - エラーなし

 

これがどれほど重要なことかわかりませんが

ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, true )
ChartSetInteger( chart_ID, CHART_BRING_TO_TOP, false )
現在(取引時)は同じように動作します - チャートは他のチャートの上に配置されています。
 

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

バグ、バグ、質問

レナト, 2013.07.22 09:22

パラメータは間違いないですか?

どちらの例も間違っているように見えます。

ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, 0, true )  - последний параметр должен быть long&, а не bool
ChartGetInteger( chart_ID, CHART_BRING_TO_TOP, true )     - последний параметр должен быть номер подокна, а не bool

ChartSetIntegerと混同しているように見えますが?

また、CHART_BRING_TO_TOPを書き込みだけ でなく、 ChartGetIntegerを通して お書きになったように読み込みもできるようにご検討ください
long ChartID()
、厳密に言えば、後者は現在の選択範囲を返すのではなく、スクリプト実行中の選択範囲を返すので、この場合、役に立ちません
そして、そのスクリプトを実行する過程で、ユーザーは現在のものを変更することができます。
 
MetaDriver:

たくさんの.mqhと1つの実行可能な.mq5だけで、他には何もありません。

補足させていただきます。相対的なアプローチと比較して、絶対的な、モジュラーアプローチの利点は、場合、次のとおりです。
Print( __FUNCTION__, __FILE__ )

.ex5モジュールが1つしかない場合、多数の.mqhモジュールの中からどれを探せばいいのかわからず、コードサイズが大きくなることを考えると大きな違いです。

また、開発者にも聞いてみてください。

.mq5という拡張子を持たない__FILE__と同様の定義済みマクロ置換__MODULE__を追加で導入することは可能でしょうか?

これは、次のような形の式をコンパイルするために必要である。__MODULE__::f()

これは、開発中にファイル名を変更したり、モジュールからモジュールに機能を移すためによく使われます

 
A100:
付け加えます。相対的なものと比べて、絶対的なモジュール方式の利点は、それが出現したときに

というのは、どのモジュールで関数を探せばいいのか、.ex5が1つしかなければ、どの.mqhで探すのかが明確でなく、コードが大きくなると大きな違いが出てくるからです。

錯乱してるな、兄弟。

h1.mqh :

string GetH1()
{
  return  "Файл: "+__FILE__+"   Функция: "+__FUNCTION__;
}

h2.mqh :

string GetH2()
{
  return  "Файл: "+__FILE__+"   Функция: "+__FUNCTION__;
}

PrintTest、mq5 :

#include "h1.mqh"
#include "h2.mqh"

void OnStart()
  {
   Print( "Файл: "+__FILE__+"   Функция: "+__FUNCTION__);
   Print(GetH1());
   Print(GetH2());
  }
//+------------------------------------------------------------------+

結果

2013.07.22 14:40:17 PrintTest (EURUSD,M1) ファイル: h2.mqh 関数: GetH2
2013.07.22 14:40:17 PrintTest (EURUSD,M1) ファイル: h1.mqh 関数: GetH1
2013.07.22 14:40:17 PrintTest (EURUSD,M1) ファイル: PrintTest.mq5 機能: OnStart

---

壮大なネストしたdefineを開発する前に、プリプロセッサが実際にどのように動作するかを理解するのが良い」という結論を、ぜひご自身で出してみてください。

頑張ってください。

ファイル:
h1.mqh  1 kb
h2.mqh  1 kb
PrintTest.mq5  1 kb
 
MetaDriver:

結論:「壮大で多重ネストなdefineを設計する前に、プリプロセッサが実際にどのように動作するかを理解するのは良い考えです。

丈夫で快適な構造物を作るためには、建築現場や材料の特性について詳しく知る必要があります。

あなたの頭は非常に洗練されており、思慮深いのですが、自分の性急な結論をインプットすることで、しばしば間違った判断をしてしまう運命にあるのです。

 
MetaDriver:

あなたの心はとても洗練されていて、思慮深いのですが、自分の性急な結論を与えてしまうことで、しばしば間違った判断をしてしまう運命にあるのです。

パダワンの仲間入りをしても?:)
 
TheXpert:
パダワンの仲間入りをしても?:)

お金はあるのか?)

--

でも、冗談はやめておきましょう。

このフォーラムで、プログラムの構造化について書かれたスレッドがほとんどないのは残念です。 調和のとれた構造こそが、大規模なシステムを問題なく開発するための鍵です。

そのような議論を促すにはどうしたらよいのでしょうか。