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

 
sergeev:

が、確認しないのですか?

情報が「すぐには見つからなかった」と指摘した。もし答えを知っているなら、この問題を管理するルールがどこに定められているのか教えてください。
 
Yedelkin:
と指摘したところ、「直ちに入手できるものではない」とのことでした。もし、答えを知っているならば、この質問に関するルールがどこに定められているのか教えてください。

え、同僚、猿が棒の使い方のガイドブックを探していたとしても、猿は猿のままでしょう......。

は怠けずに、数本の指に力を入れ、コードで確認すればいいのです。冬に溝を掘るのと変わらないくらい大変なんですよ。

 
sergeev:

え、同僚、猿が棒の使い方のマニュアルを探しても、猿のままなんですけど......。

というのは、指一本、二本でチェックすればいいだけだからです。冬に溝を掘るのと変わらないくらい大変なんですよ。

なるほど、そういうことだったんですね。経験則に基づく献身的な姿勢に感謝しつつ、1年が経ちました :)また、1年ほど前に、なぜ私が(できれば)基礎から学びたいのか、すでに説明しましたね。指を何本か絞る」については、この場合、冗長な感じがします。なぜなら、このコードの 作者がコンパイルに問題がなかったことを理解するには、1つの脳を酷使するだけで十分だからです(そうでなければ、彼の質問は違う言い回しになっていたでしょう) :)私が疑問に思ったのは、このような名前の組み合わせは、言語アーキテクチャ(構造、発想など)の観点から許容されるのか、ということです。

...参考文献に制約が見当たらないので、この場合のコンパイラの作業は言語の基本に反しないことが判明しました。

 

キーボードが不具合なのか、MEのバグなのかわからないけど。

コードセクションを選択してCtrl+Vを押すと、セクションがクリップボードからの情報で置き換えられるのではなく、フィルインが表示されます。

基本的なタイピングも同じです。

断片を選択し、任意のキーを押すと、置換するキー文字の代わりに、選択したコードの範囲が上書きされます。


table.SecondSize()    // было
postable.SecondSize() // стало
pos                   // хотелось бы
 
Urain:

キーボードが不具合なのか、MEのバグなのかわからないけど。

コードの一部を選択してCtrl+Vを押すと、クリップボードからの情報に置き換わるのではなく、余分なものが出てくるのです。

大丈夫です。
 
あ、そうだ、パソコンが32bitなんだ。
 
Urain:

キーボードが不具合なのか、MEのバグなのかわからないけど。

コードセクションを選択してCtrl+Vを押すと、セクションがクリップボードからの情報で置き換えられるのではなく、フィルインが表示されます。

基本的なタイピングも同じです。

断片を選択し、任意のキーを押すと、置換するキー文字の代わりに、選択したコードの範囲が上書きされます。



ちょうどいい感じになってきました。問題を探せ ;-)
 
7134956:
大丈夫です。原因を探る;-)
ご意見ありがとうございます!やはりキーボードに不具合があるようですね。
 
papaklass:

なぜか。

535 long dgt = SymbolInfoInteger(smb[number],SYMBOL_DIGITS)。

549 if(dgt == 0){。
Print("買いデータ == 0. エラー");
return(false)です。
}
556 sl = MathMin(mrate[1].high - mrate[1].low,level)。

560 Print(" sl =",DoubleToString(sl,dgt));// 1

Print(" sl =",DoubleToString(sl,_Digits);// 2)

ChampionShip2010_v6.mq5 560 49 - これは最初の印刷のことを指しています。

ここで smb[number] - メインチャート以外の通貨ペア

535行目のlongをintに修正すると、つまり。

535 int dgt = SymbolInfoInteger(smb[number],SYMBOL_DIGITS)。

型変換によるデータ消失の可能性 ChampionShip2010_v6.mq5 535 31

何が問題なのか?

問題は、SymbolInfoInteger(smb[number],SYMBOL_DIGITS);がlong型を返すのに対して、DoubleToString(sl,dgt) 関数は int型を渡さなければならない点です。だから、DoubleToString(sl,(int)dgt))と書けばいいのです。
 

テスト結果は正しいが、ログが正しくない!

---------------------------------------------------------

以下は、2つのペアのロット数をチェックするコードです。

  double vol1 =0.0;
  double vol2 =0.0;
  if(PositionSelect(Symbol1)) vol1=PositionGetDouble(POSITION_VOLUME);
  if(PositionSelect(Symbol2)) vol2=PositionGetDouble(POSITION_VOLUME);
  Print ("vol1=",vol1,"vol2=",vol1,"vol1<vol2=",vol1<vol2);

しかし、これはPrintが示して いることです。


どんな奇跡なんだろう?どちらが大きいかわかるような瞬間は一度もありませんでした。

すべてのTFで、シンボルが何であっても。