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

 
関連

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

fxsaber さん 2018.02.07 15:48

質問を要約するとCAccountInfo, COrderInfo, CSymbolInfo, CPositionInfo, CTerminalInfoは何のためにあるのですか?

ソースコードを見てみた。使って何かいいことがあるのでしょうか?


CDealInfo と CHistoryOrderInfo - これらも論理エラーで書かれています。何のために使うのか?


まあ、CTradeがありますからね。これですべてがクリアになる、どこで使えるか、などなど。しかし、インフォクラスはどうでしょうか?

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

バグ、バグ、質問

fxsaber さん 2018.02.07 15:53

Info-Class のほぼすべてのメソッドは静的であるべきです。そうでない理由は何でしょうか。
 
かっこいい仕掛けですね。
2018.02.08 10:59:53.209 Network '8491779': no connection to MetaQuotes-Demo
2018.02.08 10:59:53.329 Network '8491779': authorization on MetaQuotes-Demo failed (Invalid account)
2018.02.08 10:59:53.904 Network current demo account '8491779' was deleted on trade server, new demo will be allocated
2018.02.08 10:59:53.904 Network demo account '8782677' was allocated on MetaQuotes-Demo


私だけがネッティングのアカウントを持っていて、Hedgeを作成しました。同じ設定でアカウントを再作成していただけますか?

 
このトピックに関係のないコメントは、「オフトピック」に移動しました。
 
fxsaber:
かっこいい仕掛けですね。


私だけがネッティングのアカウントを持っていて、Hedgeを作成しました。同じ設定でアカウントを再作成していただけますか?

このメッセージはサービスデスクには 表示されませんので、サービスデスクにお問い合わせください。復元できるかどうかはわからない

 
Rashid Umarov:

メッセージはここでは表示されませんので、サービスデスクまで ご連絡ください。復元できるかどうかはわかりません

SRの応募数がとんでもないことになっているんです。もう1つ作成しましたが、しかし、それは致命的ではありません。

 

4109エラーは時間が経っても消えない

専門家によるテストコード

//Test1.mq5
void OnInit() { if ( f() != ERR_SUCCESS ) EventSetTimer( 10 ); }
void OnTimer()
{
        int   last_error = f();
        if (  last_error == ERR_SUCCESS ) EventKillTimer();
static int count = 1;
        Print( "Повтор (", count++, ")… результат: ", last_error );
}
int f( long value=-1 ) { return ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0,value) ? ERR_SUCCESS : GetLastError(); }

端末起動時に、以下のような結果が返ってくる場合がある(※):4109エラーが全く消えない

2018.02.09 00:25:24.200 Test1 (ETHUSD,W1) 繰り返し(1)...結果:0件
2018.02.09 00:25:24.204 Test1 (EURUSD,D1) 繰り返し(1)・・・結果:0件
2018.02.09 00:25:24.204 Test1 (BTCUSD,M15) 繰り返し(1)...結果:4109件
2018.02.09 00:25:24.204 Test1 (BTCUSD,H1) 繰り返し(1)...結果:4109件
2018.02.09 00:25:24.205 Test1 (ZECUSD,D1) 繰り返し(1)...結果:0件
2018.02.09 00:25:24.205 Test1 (BTCUSD,M15) 繰り返し(1)・・・結果:0件
2018.02.09 00:25:24.343 Test1 (BTCUSD,D1) 繰り返し(1)...結果:4109件
2018.02.09 00:25:24.439 Test1 (BTCUSD,W1) 繰り返し(1)...結果:4109件
2018.02.09 00:25:34.195 Test1 (BTCUSD,H1) 繰り返し(2)...結果:4109
2018.02.09 00:25:34.195 Test1 (BTCUSD,M15) 繰り返し(2)・・・結果:4109件
2018.02.09 00:25:34.348 Test1 (BTCUSD,D1) 繰り返し(2)...結果:4109件
2018.02.09 00:25:34.444 Test1 (BTCUSD,W1) 繰り返し(2)...結果:4109件
2018.02.09 00:25:44.203 Test1 (BTCUSD,M15) 繰り返し(3)...結果:4109件
2018.02.09 00:25:44.204 Test1 (BTCUSD,H1) 繰り返し(3)...結果:4109
2018.02.09 00:25:44.367 Test1 (BTCUSD,D1) 繰り返し(3)...結果:4109件
2018.02.09 00:25:44.452 Test1 (BTCUSD,W1) 繰り返し(3)...結果:4109件
2018.02.09 00:25:54.214 Test1 (BTCUSD,M15) 繰り返し(4)...結果:4109件
2018.02.09 00:25:54.214 Test1 (BTCUSD,H1) 繰り返し(4)...結果:4109件
2018.02.09 00:25:54.381 Test1 (BTCUSD,D1) 繰り返し(4)...結果:4109件
2018.02.09 00:25:54.467 Test1 (BTCUSD,W1) 繰り返し(4)...結果:4109件
2018.02.09 00:26:04.221 Test1 (BTCUSD,M15) 繰り返し(5)...結果:4109件
2018.02.09 00:26:04.221 Test1 (BTCUSD,H1) 繰り返し(5)...結果:4109件
2018.02.09 00:26:04.395 Test1 (BTCUSD,D1) 繰り返し(5)...結果:4109件
2018.02.09 00:26:04.459 Test1 (BTCUSD,W1) 繰り返し(5)...結果:4109件
2018.02.09 00:26:14.247 Test1 (BTCUSD,M15) 繰り返し(6)...結果:4109件
2018.02.09 00:26:14.247 Test1 (BTCUSD,H1) 繰り返し(6)...結果:4109件
2018.02.09 00:26:14.402 Test1 (BTCUSD,D1) 繰り返し(6)...結果:4109件
2018.02.09 00:26:14.464 Test1 (BTCUSD,W1) 繰り返し(6)...結果:4109件
2018.02.09 00:26:24.265 Test1 (BTCUSD,M15) 繰り返し(7)...結果:4109件
2018.02.09 00:26:24.267 Test1 (BTCUSD,H1) 繰り返し(7)...結果:4109件
2018.02.09 00:26:24.399 Test1 (BTCUSD,D1) 繰り返し(7)...結果:4109件
2018.02.09 00:26:24.468 Test1 (BTCUSD,W1) 繰り返し(7)・・・結果:4109等から無限大へ

しかし、多くの場合、非常に良い結果が得られている (**): 2回目の反復でエラーが消失している

2018.02.09 00:29:45.470 Test1 (BTCUSD,D1) 繰り返し(1)...結果:0件
2018.02.09 00:30:14.215 Test1 (BTCUSD,M15) 繰り返し(1)...結果:4109件
2018.02.09 00:30:14.215 Test1 (BTCUSD,D1) 繰り返し(1)...結果:0件
2018.02.09 00:30:24.209 Test1 (BTCUSD,M15) 繰り返し(2)・・・結果:0件

しかし、これは簡単なテスト例であり、実際のExpert AdvisorではEventSetTimer(100)で遅延させてもエラーは何も変わりません。問題のあるチャートの該当タブを選択してクリックするとエラーが消える場合があります(なぜ効果があるのでしょうか?)例えば、BTCUSD,W1を選択してクリックすると、次の繰り返しで成功になります。

Test1 (BTCUSD,W1) 繰り返し(8)...の結果です。0

テストプロファイルはこのようなものでした。


ウィンドウ内の最大バー数 100000

結果(*)を得るには、通常、Expert Advisorを組み込んだ新しいチャートをいくつかプロファイルに追加し、ターミナルを再起動すれば十分です。

Запуск платформы - Для продвинутых пользователей - MetaTrader 5
Запуск платформы - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 

みなさん、こんにちは。

EAの内部で外部変数のリストを取得するにはどうしたらいいのでしょうか。

テンプレート経由のみ?

 

1755年製MT5

ROBOTOフォント、サイズ9を使用した場合、文字の半分が描画されない。


サイズ8で、全く問題ありません。


Arialは少ないが、フォントがひどい。

 

他社製UPUを使用した際の重複取引について

セッションの問題。前の端末が閉じずに新しい端末が開くと、古い端末が動作し、新しい端末が動作すると、重複して取得されます。:-)

@fxsaber どこかにこれを追跡する方法について書いてありましたね。

 
Vladislav Andruschenko:

皆さん、こんにちは。

EAの内部で外部変数のリストを取得するにはどうしたらいいのでしょうか?

テンプレート経由のみ?

はい、テンプレートを使って。

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

input string Input1 = "Hello World!";
input int Input2 = 123;

string GetExpertData( const ulong Chart = 0 ) 
{ 
  string Str = NULL; 

  MqlParam Parameters[]; 
  string Names[]; 

  if (EXPERT::Parameters(Chart, Parameters, Names)) 
  { 
    Str += "\n" + ChartSymbol(Chart) + " " + EnumToString(ChartPeriod(Chart)) + " " + Parameters[0].string_value + "\n"; 

    const int Amount = ArraySize(Names); 

    for (int i = 0; i < Amount; i++) 
      Str += (string)i + ": "+ Names[i] + " = " + Parameters[i + 1].string_value + "\n"; 
  } 

  return(Str); 
}

void OnInit()
{
  Print(GetExpertData());
}


その結果

0: Input1 = Hello World!
1: Input2 = 123


または次のようになります。

#include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003

input string Input1 = "Hello World!";
input int Input2 = 123;

void OnInit()
{
  MqlParam Parameters[];
  string Names[];   
  
  if (EXPERT::Parameters(0, Parameters, Names))
    ArrayPrint(Parameters);
}


結果

    [type] [integer_value] [double_value]      [string_value]
[0]    ...               0        0.00000 "Experts\Test2.ex5"
[1]    ...               0        0.00000 "Hello World!"     
[2]    ...             123      123.00000 "123"