オフラインのチャートが表示されない - ページ 2

 
lingwuchung:


こんにちは。

コンパイルエラーは全て解決しましたが、オフラインのチャート(PeriodConvertorで生成)ではEAのOnTick(添付のtestOffline.mq4に簡略化)がトリガーされないことがわかりました。 通常のM1チャートでは問題ないのですが。 何が問題なのでしょうか?



オフラインのチャートにはティックが入ってきません。

OnTickの代わりにOnTimerを試してみてください。

PeriodConverterからリフレッシュされたオフラインのチャートでEAを動作させた例をご覧ください。

int ExtCounter;
int ExtTickCount;
int ExtBars;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//----
   ExtCounter=0;
   ExtTickCount=GetTickCount();
   ExtBars=Bars;
   Print("init  ExtBars=",ExtBars,"  Time[0]=",TimeToString(Time[0]));
   EventSetTimer(1);
//----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtTickCount=GetTickCount()-ExtTickCount;
   Print("ExtTickCount=",ExtTickCount,"   ExtCounter=",ExtCounter);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(ExtBars!=Bars)
     {
      ExtBars=Bars;
      Print("start  ExtBars=",ExtBars,"  Time[0]=",TimeToString(Time[0]));
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   if(RefreshRates())
      OnTick();
//----
   if(ExtCounter%15==0)
      Print("OnTimer  ExtCounter=",ExtCounter,"  Time[0]=",TimeToString(Time[0]));
   ExtCounter++;
  }
 
stringo:

オフラインのチャートには、受信ティックがありません。

OnTickの代わりにOnTimerを試してみてください。

PeriodConverterからリフレッシュしたオフラインのチャートでEAを動作させた例をご覧ください。


OK、オフラインのチャートのティックを取得しました。 でも、EAは最速で1秒に1回しかトリガーできないってこと? EventSetTimer()は秒単位までしか設定できないので)。

もしそうなら、これは新しいmql4の劣化であり、なぜだろう。

 

劣化?なぜ?

エキスパートが オフラインのチャートで 作業 したことはない

 
RaptorUK:

FileOpenHistory()のドキュメントを更新してもらえますか ... ... 。

.他のフラグについての言及がありません。


ヘルプを更新してみてください。


 
Rosh:

ヘルプを更新してみてください。

申し訳ありませんが、私はFileOpen() とは言っていません ... ...私はFileOpenHistory()と言いました。

 
stringo:

劣化?なぜ?

エキスパートが オフラインのチャートで 作業 したことはない


冗談はやめてください。 私は1年間オフラインチャートでエキスパートと取引してきました。 私が使っていた最新バージョン(600に強制アップグレードされる前)はビルド509でした。
 
lingwuchung:

冗談はやめてください。 私は1年間、オフラインチャートでエキスパートと取引してきました。 私が使っていた最新版(600に強制アップグレードされる前)はビルド509でした。
Metaquotesがサポートしていないハックではありませんか?
 
angevoyageur:
Metaquotesがサポートしていないハックではありませんか?


Metaquotesはhstファイルの構造を公開していませんので、*.hstファイルを使用することはハッキングになります。
 
Ovo:

Metaquotes は hst ファイルの構造を公開していないので、*.hst ファイルを使用することはハッキングである。

PeriodConverterというスクリプトは誰が作っているのですか?

hint :この 記事の著者を探してみてください。

 
Ovo:

Metaquotesはhstファイルの構造を公開していないので(彼らは自分たちの目的のために保管している)、*.hstファイルの使用はすべてハッキングである。
いや、.hstファイルのフォーマットはターミナルのヘルプファイルに公開されています。mql4は.hsファイルの読み書きの機能も 提供しています。.ハックは不要です。

履歴ファイルフォーマット(HSTファイル)

データベースヘッダは、最初の

struct




HistoryHeader
{
int version; // データベースバージョン char copyright[64]; // 著作権情報
char symbol[12]; // シンボル名 int period; // シンボル時間軸 int digits; // シンボルの小数点以下桁数
time_t timesign; // データベース作成時の時分記号
xml-ph-0027@d

次に棒グラフの配列(半角文字揃え)です。

#pragma pack(push,1)
//---- データベース内の引用符の標準表現
struct RateInfo
{
time_t ctm; // 現在の時刻(秒
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)