初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 96

 

こんにちは、先物の 有効期限を取得したいのですが。

EXPIRATION=(datetime)SymbolInfoInteger(Symbol(,SYMBOL_EXPIRATION_TIME))とする。

1970 01 01 00 00を出します。

 

こんにちは。


以下の式でオートバリデーションが「ゼロによる除算」エラーを示しますので、アドバイスをお願いします。


NormalizeDouble(STOP/MarketInfo( Symbol(),MODE_TICKVALUE)*10,0)*Point

すべてのコンポーネントのプリントはゼロ値ではありません。

エラーの原因は何でしょうか?

 

エムティーフォー

int OrderType() の 値の最新かつ包括的なリストはどこで手に入りますか?

ヘルプ、更新されていないんですね。


AccountProfit()は入出金をカウントしますか?

ヘルプには、どうやってカウントするのか、何を考慮するのか、何も書かれていないのですが...。

正確な定義があれば、開発者が何を意味し、どのようにカウントすべきかを理解することもできるだろう。

もしかしたら、開発者から似たような機能の概要があり、その結果が導き出されて いるのでは?少しずつ集めていかなければならないのですが・・・。

 
Viatcheslav Pashkov:

こんにちは。


以下の式でオートバリデーションが「ゼロによる除算」エラーを示しますので、アドバイスをお願いします。


すべてのコンポーネントのプリントはゼロ値ではありません。

エラーの原因は何でしょうか?


もっと完全なコードを教えてください。変数の種類どのキャラクターか。式中の代入の前にどのような値を取るか。この式を計算した結果は、次にどこで使われるのか。

 
Kirill Belousov:

より完全なコードを与える。変数の種類どんなキャラクターか。式中の代入の前にどのような値を取るか。この式の計算結果はどこでさらに使われるのでしょうか。

定義済みの変数はSymbol()とMODE_TICKVALUEのみ であった)

なんだかよくわからないけど、この方法で解決しました。

式がゼロに等しくなければ実行する、といったゼロのチェックを導入しました。


そして、すべてがうまくいった。

オートバリデーターは、INIブロックの中でゼロによる除算の可能性を示しているのであって、明示的に示しているわけではないことを心に留めておいてください。

 
Viatcheslav Pashkov:

こんにちは。


以下の式でオートバリデーションが「ゼロによる除算」エラーを示しますので、アドバイスをお願いします。


すべてのコンポーネントのプリントはゼロ値ではありません。

エラーの原因は何でしょうか?

double TICK_VALUE = MarketInfo( Symbol(),MODE_TICKVALUE);
if(TICK_VALUE ==0) return;
NormalizeDouble(STOP/TICK_VALUE *10.0)*Point
 
Vitaly Muzichenko:

TICK_VALUEが 0に なるのはなぜですか

 
Viatcheslav Pashkov:

TICK_VALUEが 0に なるのはなぜですか


端末がアカウントに接続されるまで、ほとんどの変数はゼロです

 
Taras Slobodyanik:

端末がアカウントに接続されるまで、ほとんどの変数はゼロです


ありがとうございます!覚えておきます。

 
Viatcheslav Pashkov:

定義済みの変数はSymbol()とMODE_TICKVALUEのみ であった)

何が悪いのかわからないが、この方法で解決した。

式が0でなければ実行する、というような0チェックを導入しました。


そして、すべてがうまくいった。

私はそれが何を意味するのかわからない...しかし、私は心に留めておこう...オートバリデーターは、INIブロックでゼロによる分割の可能性を示し、明示的なものではありません。

ゼロによる除算を報告することは問題ではなく、結果である。

しかし、今度は0による除算についての不都合なメッセージを削除しただけなので、問題を見つけるのは難しいでしょう。

具体的に何をノーマライズしているのでしょうか?どこに結果を代入しているのですか?

与えた式の結果をさらに利用したコードを教えてください。そこで問題が発生するのだと思います。

理由: