[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 451

 
bernc:

すなわち、関数F(8,5464.00) = 85464.00

8.5464/0.0001=85464
 
peshihod:

MathMod()は除算です。TimeLocal()の結果が毎秒20で割られるなら、20秒ごとに余りはゼロになります。

結論:同じアイデアでも、さまざまな方法で実現することができる。


なぜ20秒に1回なんだ?なぜ19歳や17歳ではダメなのか?

bool flag = true;
int i=0;
int w=0;
double sum;

int t=20;

int start()
{
sum=TimeLocal() / t;

if (flag)
{
while(i<20)
{

w=w+1;
Alert(+w,"-й, Результат TimeLocal-",+sum);
i++;
sum=sum/20;
Sleep(1000);

}
flag = false;
}
return(0);
}

ここでは、11秒ごとにゼロに等しい。20で割ると20倍。

ヌビアンの質問で申し訳ありません、私が理解したいことなので.

 

なぜ20回きっかりで割るのですか?

勝つまで割り切るしかない ;)

 
peshihod:
8.5464/0.0001=85464

ありがとうございます。

しかし、そういう意味ではなく、コンマは三分音符の区切りで、ドットは分数 部分を区切るのです。

8,5464.00という文字列がありますが、これを数値に変換する必要があります。StrToDouble(8,5464.00) は、8を取ります。

F(8,5464.00) = 85464.00

 

この関数を試してみてください

{

https://docs.mql4.com/ru/strings/StringFind でコンマを検索

カンマの前の文字列とカンマの後の文字列という2つの部分から新しい文字列を組み立てるhttps://docs.mql4.com/ru/strings/StringGetChar

数値に変換する StrToDouble()

}

 

おっしゃる通りの典型的な例がここにあります。

うーん...。

20秒後にちょうどゼロになるのは、どうしてだろう?8000000000の数字で現地時間を 確認する...やっかいなのは?ちょっと休んでみようかな、えへへ...。

int i=0;
int e;
int w=0;
int start()

{
while(true)
{
e=MathMod(TimeLocal(), 20);
w=w+1;
Alert(+w,"-й, Результат MathMod-",+e);


Sleep(1000); // Спим 1-ну секунду


return(0);
}

 
rlx:

この関数を試してみてください

{

https://docs.mql4.com/ru/strings/StringFind でコンマを検索

カンマの前の文字列とカンマの後の文字列という2つの部分から新しい文字列を組み立てるhttps://docs.mql4.com/ru/strings/StringGetChar

数値に変換する StrToDouble()

}

他に方法はないのか、この機能の実行に時間がかかるのではないか。

 

MathMod(EVERYTHING, 20) = 0とすると、(記憶が正しければ)次のような意味になります。

EVERY NUMBERが余りなく20で割れること。

20 40 60 80 100 120 140 160 etc.

 
bernc:

他に方法はないのでしょうか、それともこの機能には時間がかかるのでしょうか。



他に文字列からカンマを取る方法がわかりません。

 
bernc:

ありがとうございます。

でも、コンマで3分音符を区切り、ドットで分数部分を区切るというのは、そういう意味じゃないんです。

8,5464.00という文字列がありますが、これを数値に変換する必要があります。StrToDouble(8,5464.00) は 8 に変更されます。

F(8,5464.00) = 85464.00



文字で、文字列関数を通して、カンマを取り除き、StrToDouble()します。