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

 
Михаил:

アローコードを探すことはあまりないのですが、ヘルプで探すとすごい大変なんですよねー。

アスタリスクや丸印などの表です。

そして、検索では正しいもの以外が返されるのです

ウイングディング
 

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

ライブラリ:HistoryTicks

fxsaber, 2020.01.09 14:43

KBのバージョンが古いことに気がつかなかった。残念ながらアップデートの方法はありません。KB機ではこのようになります。
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MEではすべてエラーなくコンパイルされます。
 
Stanislav Korotky:

なぜ3行目に。

"符号の不一致 "の警告?

Datetimeは符号なし数値(ulongのように8バイト)であることが前提です。ネガティブデートの例を教えてください。

おそらく、個別のタイムスタンプ型がなく、datetimeも 時間差の保存に使われているためと思われます
 
停止ボタンが押されたとき、テスター内でどのイベントが発生するのか(もしあれば)教えてください。
 
もう一度、助けてください!どうしたら接続が回復するのかわかりません。 アカウントを変更しても解決しません。
ファイル:
Mc3FTItT2F8.jpg  18 kb
 

OnInit インジケータでChartSetSymbolPeriod を適用し、現在のデータでデバッグしていると、奇妙なことが起こります - OnTick() で古い TF から rates_total を、新しいものからタイムセリングの Arrays を取得しています。

datetime shift,arr[],arr2[];
void OnInit()
  {
 if (ChartPeriod()!=PERIOD_D1)
 {
     ChartSetSymbolPeriod(0,Symbol(),PERIOD_D1);
     CopyTime(Symbol(),PERIOD_D1,0,iBars(Symbol(),PERIOD_D1),arr);     
     ChartRedraw();
     Sleep(100);
  }  
 CopyTime(Symbol(),PERIOD_H1,0,iBars(Symbol(),PERIOD_H1),arr2); 
  }

ここでは、チャートのTFをDaytimeに変更 したDaytimeのTime[x]と、H1のrates_totalをデバッガウィンドウで見て います。


 
Aleksey Mavrin:

OnInit インジケータでChartSetSymbolPeriod を適用し、現在のデータでデバッグしていると、奇妙なことが起こります - OnTick() で古い TF から rates_total を、新しいものからタイムセリングの Arrays を取得しています。

ここでは、チャートのTFをDaytimeに変更 したDaytimeのTime[x]と、H1のrates_totalをデバッガウィンドウで見て います。


タイムフレームを変更すると、インジケータは完全に再作成されます。つまり、前のインジケーターハンドルが削除され、新しいインジケーターハンドルが作成されます。
しかし、1つだけ「しかし」があります。前回のインジケーターがしばらく残っています。

そのせいではないか......。

 
Aleksey Mavrin:

OnInit インジケータでChartSetSymbolPeriod を適用し、現在のデータでデバッグしていると、奇妙なことが起こります - OnTick() で古い TF から rates_total を、新しいものからタイムセリングの Arrays を取得しています。

ここでは、チャートのTFをDaytimeに変更 したDaytimeのTime[x]と、H1のrates_totalをデバッガウィンドウで見て います。

インジケーターリリース

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Artyom Trishkin:

タイムフレームが変更されると、インジケータは完全に再作成されます。前のインジケーターハンドルが削除され、新しいインジケーターハンドルが作成されることを意味します。
しかし、「しかし」がある。前回のインジケーターがしばらく残っています。

そのせいではないか......。

はい、私の実験から理解したように、ChartSetSymbolPeriodのOnInitが完了 した後、一度(少なくともデバッグモードで)OnCalculateが実行されます(この瞬間はキャッチされます)。すなわち、オンライン操作に支障をきたさないことです。

OnCalculateに異なる時間軸のデータが届くことがあるのは、単なるバグだと思います。

 
これはArraySwapの 欠陥なのでしょうか?
void OnStart()
{
  int ArrayStatic[1];
  int ArrayDynamic[];
  
  ArrayResize(ArrayDynamic, ArraySize(ArrayStatic));
  
  Print(ArraySwap(ArrayStatic, ArrayDynamic)); // false
}