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

 
Evgeny Chernyshev:
こんにちは。

これは標準的な行動です。カウントダウンは、現在建設中のバーからスタートします。従って、オートスクロールがない場合、新しいバーが出現すると、その番号は1つずつ増加する。
OK、それなら、「最初に見えるバー」ではなく、現在の(未完成の)バーから始まる最初のバーであることをドキュメントのどこかに追加してください。
 

コンパイルの結果、実行中にエラーが発生した

#define MACRO( x )      #x
void OnStart()
{
        Print( MACRO( "1\0" )); //равносильно Print( "\"1\\0\"" );
}

結果:1

期待値:「1」。

2エラー:引用符の""が抜けている、および""が間違って解釈されている。

そして

void OnStart()
{
        Print( MACRO( 1\0 )); //Error: '\' - illegal escape sequence
}
というコンパイルエラーが発生しました。
 
Vladislav Andruschenko:

そうなんですが、それをお客さんに説明するのは無理ですよね?

エキスパートが動作している、動作している、あなたが眠りにつく、眠りにつく、あなたが目を覚ますとエキスパートが動作していない、なぜか想像してみてください。

このように、短いディレイで再起動するのが効果的です。

int err=-1;
      int count=5;
      {while((err!=0)&&(count>0))
      {
         ResetLastError();
         EventSetMillisecondTimer(MSTimerSet);                    //Установка таймера XXX миллисекунд
         err=GetLastError();
         Print("EventSetMillisecondTimer n=",count," err >>",err);
         {if(err!=0){Sleep(50);}}
      }}//while((err!=0)&&(count>0))
 
Yury Kirillov:

少し遅れて再スタートするのも、ある意味有効です。

int err=-1;
      int count=5;
      {while((err!=0)&&(count>0))
      {
         ResetLastError();
         EventSetMillisecondTimer(MSTimerSet);                    //Установка таймера XXX миллисекунд
         err=GetLastError();
         Print("EventSetMillisecondTimer n=",count," err >>",err);
         {if(err!=0){Sleep(50);}}
      }}//while((err!=0)&&(count>0))
インターネットが不具合を起こすと、タイマーがハングアップすることが、経験上わかりました。端末がフリーズし、タイマーが切れる。すなわち、理由もなく電話を切ることができる。インターネットが遅いとき

だから、違う方法でやったんだ、つまり。ティックでタイマーを実行する。
 

実行エラー

typedef void (*fn)();
class A { public:
        fn a;
};
class B : public A { public:
        void a() { Print( __FUNCSIG__ ); }
};
void OnStart()
{
        B b;
        b.a();
}

結果: 不正な関数 ポインタ呼び出し; B::a() の実行が期待されました。

とこちら→コンパイルエラー

typedef void (*fn)( int );
class A { public:
        fn a;
};
class B : public A { public:
        void a() { Print( __FUNCSIG__ );  }
};
void OnStart()
{
        B b;
        b.a(); //Error: 'a' - wrong parameters count
}
 
MT4はパックでユーザー イベントをスキップします。これは機能なのでしょうか、それともバグなのでしょうか?
 
Andrey Dik:
MT4がパックでユーザーイベントを スキップしてしまう。これはバグなのか、不具合なのか?


ダッシュボードで確認したところ、すべて問題なく、すべてのイベントが正常に動作しています。

 
Vladislav Andruschenko:

ダッシュボードで確認したところ、すべてOKで、すべてのイベントが通常通り動作しています。

私はいくつかのシンボルでスパイを実行し、EAはティックが来たときにこれらのスパイからイベントを取得します。MT5ではすべてのイベントが来るまでに時間がありますが、MT4では時々1秒以上フリーズすることがあります。
重いものは何も動いておらず、チャートが1つ開いている状態です。
 
ポジションを建てる のに必要な証拠金の適切な値がわからないのですが。私はすべてのシンボルで同じ値を取得し、異なるブローカーは、すべてのシンボルで0.0を示し、別のものは100000.0を示します。

MT4はどうなっているのでしょうか?Win 10 64, MT4 build 1031

しています。

void OnStart()
{
  Print(MarketInfo (Symbol (), MODE_MARGININIT));
  Print(MarketInfo (Symbol (), MODE_MARGINMAINTENANCE));
  Print(MarketInfo (Symbol (), MODE_MARGINHEDGED));
  Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED));
  Print(SymbolInfoDouble (Symbol (),SYMBOL_MARGIN_INITIAL));
}
MT4が完全にダメなのか、それとも私が完全に不勉強でMT4を理解できなくなっているのか。

2つのブローカーで得られた値です。


2017.01.31 22:15:59.312 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:15:59.310 2017.01.31 22:15:59.31 MarginReq M15:0:0:0.0 。31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.309 MarginReq AUDCHF,M15: 初期化
2017.01.29 22:15:59.309 2017.02:15:59.303 MarginReq AUDCHF:M15: 0.0 01.31 22:15:59.300 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:15:57.899 Script MarginReq AUDCHF,M15: loaded successfully
2017.01.31 22:15:57.899 Script MarginReq AUDCHF,M15: loaded successfully 2017.01.01.31 22:13:38.077 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 2017.01.31 22:14:00 AUDCHF,M15: 100000.031 22:13:38.075 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 初期化
2017.01.31 22:14:00:15.00 AUDCHF:0.0、MargeReq AUDCHF:0.0 01.01.31 22:13:38.066 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:13:36.806 Script MarginReq AUDCHF,M15: 正常にロードされました。
これはデタラメだ。
 
Andrey Dik:
ポジションを建てる のに必要な証拠金の適切な値がわからないのですが。私はすべてのシンボルで同じ値を取得し、異なるブローカーは、すべてのシンボルで0.0を示し、別のものは100000.0を示します。 MT4はどうなっているのでしょうか?Win 10 64, MT4 build 1031 しています。





void OnStart()
{
  Print(MarketInfo (Symbol (), MODE_MARGININIT));
  Print(MarketInfo (Symbol (), MODE_MARGINMAINTENANCE));
  Print(MarketInfo (Symbol (), MODE_MARGINHEDGED));
  Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED));
  Print(SymbolInfoDouble (Symbol (),SYMBOL_MARGIN_INITIAL));
}
MT4が完全にダメなのか、それとも私が完全に不勉強でMT4を理解できなくなっているのか。

2つのブローカーで得られた値です。


2017.01.31 22:15:59.312 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:15:59.310 2017.01.31 22:15:59.31 MarginReq M15:0:0:0.0 。31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.309 MarginReq AUDCHF,M15: 初期化
2017.01.29 22:15:59.309 2017.02:15:59.303 MarginReq AUDCHF:M15: 0.0 01.31 22:15:59.300 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:15:57.899 Script MarginReq AUDCHF,M15: loaded successfully
2017.01.31 22:15:57.899 Script MarginReq AUDCHF,M15: loaded successfully 2017.01.01.31 22:13:38.077 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 2017.01.31 22:14:00 AUDCHF,M15: 100000.031 22:13:38.075 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 初期化
2017.01.31 22:14:00:15.00 AUDCHF:0.0、MargeReq AUDCHF:0.0 01.01.31 22:13:38.066 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:13:36.806 Script MarginReq AUDCHF,M15: 正常にロードされました。
これはデタラメだ。

こころがける

AccountFreeMarginCheck