[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 346

 
謝辞
 
Stepan241 >> :

スクリプトの冒頭で、次のように書きます。

#property show_inputs

extern double Lot=0.1

その後、シンボルウィンドウにスクリプトを貼り付けると、ダイアログボックスが表示されます。

了解しました。でも、私が必要としているのは、そんなことではありません。これらのコマンドでは、ダイアログボックス-EA全般の設定と現在のスクリプト設定が表示されますが、「スクリプト設定でDO ONLYを一度に出力するような機能はないのか?

 
すべてのオープンオーダーを指定した時間にクローズさせる方法を教えてください。
 
JackaLrus писал(а)>>

了解しました。でも、私が必要としているのは、そんなことではありません。これらのコマンドを実行すると、EA全般の設定と現在のスクリプトの設定というダイアログボックスが表示されますが、スクリプトの設定でDO ONLYを一度に出力できるような機能はないのでしょうか?

それならMetaEditorだけでいい。

 
vik-777 >> :
指定した時刻にすべての未決済注文を決済する方法を教えてください。

if (HourTime[0]=12)_CloseAllOrder(クローズオーダー)

前ページまたは前々ページの_CloseAllOrder関数を参照してください。

 
Stepan241 >> :

if (HourTime[0]=12)_CloseAllOrder(クローズオーダー)

_CloseAllOrder関数そのものについては、最終ページまたはその前のページを参照してください。

ありがとうございます、この機能はとても便利です

 

専門家の皆様へ

この結果の理由は何なのか、ご教示ください。

要旨

int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}

c=3 q=2 "と表示されます。

質問:3つのうち2つはどうやって手に入れるのですか?

0.3を0.4や他の分数に置き換えると、意図したとおりに問題が解決するのです。

例えば

int start()
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}

"c=3 q=2 v=4 w=4"

質問:3つのうち2つはどうやって手に入れるのですか?

コンパイルしてみると、私のパソコンではカウントできないかもしれません(単なるバカですが・・・)。

 
mukata >> :

専門家の皆様へ

この結果の理由は何なのか、ご教示ください。

要旨

int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}

c=3 q=2 "と表示されます。

質問:3つのうち2つはどうやって手に入れるのですか?

0.3を0.4や他の分数に置き換えると、意図したとおりに問題が解決するのです。

例えば

int start()
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}

"c=3 q=2 v=4 w=4"

質問:3つのうち2つはどうやって手に入れるのですか?

コンパイルしてみてください、多分私のコンピュータは計算方法を知らないのでしょう(バカですね・・・)。


無意味なことではなく、実数を扱うときによくある丸め誤差に過ぎないのです。

最初のケースでは,例えば c が 2.9999999 に等しい場合,出力は丸められ,すなわち 3 となりますが, 整数型に代入する場合は,端数部分は捨てられます。

 
splxgf >> :

これはナンセンスなことではなく、実数を扱うときによくある丸め誤差です。

最初のケースでは、例えば、cは2.999999999に等しい......。

2.99999999が2.9999になるわけがない。0.3/0.1=3ぴったり、1を3で割って0.33333になるはずなのに...というようなことはありません。

ただし、整数型に代入する場合は、端数部分を切り捨てる。

整数型に値cを代入すると、端数がなく明らかに3である。 捨てるものがない......。

答えは100%間違いです。

他の選択肢は?

 
mukata >> :


2.9999が2.9999になるとは思えませんが?0.3/0.1=3偶数、1を3で割って0.33333になるはずなのに...という感じ。


これは正確に見えるだけで、機械表現では異なる値を取ることができる。例:2.9999、3または3.00000001


このような誤解をなくすために、MQLにはNormalizeDouble()関数があります。