bool Quote2Price(double diff,double &price4lot,string symbol="EURUSD") { int dig=(int)MarketInfo(symbol,MODE_DIGITS); if(dig == 0) return(false); // symbol is none double tickSizeMarketInfo = MarketInfo(symbol, MODE_TICKSIZE); // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке) double tickValue, tickSize2; if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке) Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_VALUE) returns false"); if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize2)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке) Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_SIZE) returns false");
管理者権限で実行してもダメ?
Windowsを再起動し、mql5エディタを閉じ、mql4エディタを閉じ、MT5とMT4の端末を 閉じようとしていました。しかし、私はmql4エディターで何かを見る必要がありました。もう一度開くと、なんと、ファイルがコンパイルされていた。これで、mql4とmql5の2つのエディタが同時に動作していることになりますね。異なるディレクトリの同じファイルが開かれないのは不思議です。
でも、二人が一緒に働いているところを見ます。
選択された。ゼロは最初の実行の後にのみ発生し、SGDのシンボルでは必ずしも発生しない。
SGDJPYは偶然にもソースに入りました。SGDJPY」を「_Symbol」に置き換えた修正版では、すでに結果が表示されています。
再現できていたのでしょうか?
それは4でも同じです。忘れないようにコメントもつけています。MT4を1052にアップデートしたところ、不具合が解消されない。管理者権限で実行してもダメです(Combinatorさんへの返信)
MQL4のファンクションコードです。インジケータをチャートに追加すると、すべてがOKになります。しかし、ターミナルを再起動すると - いくつかのNULL値が、投稿の最後にある出力を参照してください。
{
int dig=(int)MarketInfo(symbol,MODE_DIGITS);
if(dig == 0)
return(false); // symbol is none
double tickSizeMarketInfo = MarketInfo(symbol, MODE_TICKSIZE); // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке)
double tickValue, tickSize2;
if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_VALUE) returns false");
if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize2)) // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
Print(__FUNCTION__, " SymbolInfoDouble(...SYMBOL_TRADE_TICK_SIZE) returns false");
Print("tickSizeMarketInfo= ", tickSizeMarketInfo, " tickSize2= ", tickSize2, " tickValue= ", tickValue);
if(tickSizeMarketInfo == 0 || tickSize2 == 0 || tickValue == 0.0)
return false;
double price=diff/(tickSize2/tickValue);
price4lot=NormalizeDouble(price,2);
return (true);
}
端末再起動後の出力。
2017.03.01 00:31:43.588 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0です。
2017.03.01 00:31:43.460 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0です。
2017.03.01 00:31:43.351 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05 tickValue= 1.0です。
2017.03.01 00:31:42.961 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0を 表示します。
2017.03.01 00:31:42.910 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0を 表示します。
2017.03.01 00:31:42.866 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0を 表示します。
2017.03.01 00:31:42.301 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0を 表示します。
2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5: tickSizeMarketInfo= 1e-05 tickSize2= 1e-05tickValue= 0.0を 表示します。
2017.03.01 00:31:41.116 ShowImportantParams EURUSD.e,M5: 初期化されました。
2017.03.01 00:31:41.080 カスタム インジケータ ShowImportantParams EURUSD.e,M5: ロードに成功しました。
それは4でも同じです。忘れないようにコメントも立てて います。
試していない。ビルド1045以前は一度も起きなかった。それも、今はずっとそうなっているわけではありません。半日も働けば、このエラーに遭遇する。
Windowsを再起動し、mql5エディタを閉じ、mql4エディタを閉じ、MT5とMT4の端末を閉じようとしていました。しかし、私はmql4エディターで何かを見る必要がありました。もう一度開くと、なんと、ファイルがコンパイルされていた。これで、mql4とmql5の2つのエディタが同時に動作していることになりますね。異なるディレクトリの同じファイルが開かれないのは不思議です。
でも、二人が一緒に働いているところを見ます。
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
エディターが1つでも2つでも、エラーは時々出ますが変わりません。
2017.03.01 01:43:30.844 Windows 10 Home (x64 based PC), IE 11.00, UAC, 4 x Intel Core i3-3217 U @ 1.80 GHz, RAM: 1540 / 5005 Mb, HDD: 10397 / 260234 Mb, GMT+07:00
2017.03.01 01:43:30.844 Data Folder: D:\New MT4
ポータブルモードも問題が発生しますか?
これは/portableモードです。
MT4のせいではなく、フォルダへのアクセスに問題があるようです。隠しプロセスがアクセスをブロックしているのかもしれません。
これは、/portableモードです。