他の通貨ペアからbid/askをインポートする方法は? - ページ 2

 

マーケット情報のドキュメントを読み、ビッド/アスク価格しか引き出せないことに気づきました。例えば6本前の価格データ(HLOC)をどのように引き出せばよいのでしょうか?


正直なところ、私はドキュメントを読むのに多くの時間を費やしましたが、PythonやPRTのような他の言語と比較すると役に立ちません。

よろしくお願いします。

 
Simone Gill:

マーケット情報のドキュメントを読み、ビッド/アスク価格しか引き出せないことに気づきました。例えば6本前の価格データ(HLOC)をどのように引き出せばよいのでしょうか?


正直なところ、私はドキュメントを読むのに多くの時間を費やしましたが、PythonやPRTのような他の言語と比較すると役に立ちません。

よろしくお願いします。

iOpen(),iClose(),iHigh(),iLow()を使用します。

 

Prosさん、こんにちは。

このトピックを読んだとき、本当に腹が立ちました、この話題を持ち出してすみません。しかし、私も同じ問題を持っていたので、ここにコメントすることにしました。

以下は私のコードです。

double Ask2,Bid2;

----------------------------

void start()

{

Ask2=MarketInfo("GBPUSD",MODE_ASK);
Bid2=MarketInfo("GBPUSD",MODE_BID);
Comment(Ask2, Bid2);

}


コメントは00を示します。

なぜ、他のシンボルからAskとBidをインポート できなかったのでしょうか?


どんなアドバイスでも結構です。
Hossein

 
HosseinKOGO: なぜ他のSymbolからAskとBidをインポートできない のですか?
MT4では現在のチャートがその特定のペア/TFを参照していない限り、価格にアクセスする前に 4066/4073 エラーを処理する必要が あります。
MQL4 EAでのダウンロード履歴 - MQL4 and MetaTrader 4 - MQL4 プログラミングフォーラム

MT5の場合:チャートがその特定のペア/TFでない限り、サーバーから端末データを同期させる必要が あります。
タイムシリーズと指標へのアクセス / データアクセス - MetaTrader 5のアルゴリズム/自動売買言語に関するリファレンス
サーバーのデータをターミナルのデータと同期させる - シンボル - 一般 - MQL5プログラミングフォーラム

 
William Roeder:
MT4では現在のチャートがその特定のペア/TFを参照していない限り、価格にアクセスする前に 4066/4073 エラーを処理する必要が あります。
MQL4 EAでのダウンロード履歴 - MQL4 and MetaTrader 4 - MQL4 プログラミングフォーラム

MT5では、特定のペア/TFのチャートでない限り、サーバーから端末データを同期させる必要が あります。
タイムシリーズと指標へのアクセス / データアクセス - MetaTrader 5用アルゴリズム/自動取引言語に関するリファレンス
サーバーのデータをターミナルのデータと同期させる - シンボル - 一般 - MQL5プログラミングフォーラム

ご教授ありがとうございます。

eareview.netのTick Data Suiteを使用しており、バックテスト前にGBPUSDを含む対象ペアの履歴をダウンロードしました。また、Journalではエラーは出ません。連携に問題があるのでしょうか?Tick Data Suiteのサポートに連絡して解決策を探した方が良いでしょうか?

(私はコーディングにMQL4を使っています)
 

GBPAUD -4Hチャートでバックテストを しながら、誰かこのコードを試すことができますか?本当に困っています :(
コメントとして00を取得しますか?

double Ask2,Bid2;

----------------------------

void start()

{

Ask2=MarketInfo("GBPUSD",MODE_ASK);
Bid2=MarketInfo("GBPUSD",MODE_BID);
Comment(Ask2, Bid2);

}
 
HosseinKOGO: 私はeareview.netのTick Data Suiteを使用していますが、バックテスト前にGBPUSDを含む対象ペアの履歴をダウンロードしています。また、Journalではエラーになりません。連携に問題があるのでしょうか?Tick Data Suiteのサポートに連絡して解決策を探した方が良いでしょうか? (コーディングにはMQL4を使用しています)

TDSとは関係ない。アクセスする前に、端末にデータを読み込ませる必要があるのです。価格にアクセスする前に」のどのあたりが不明だったのでしょうか?

HosseinKOGO : 本当に困っています :( コメントとして00は出ますか?

ヘルプを無視するとそうなりますよ。どの辺が「must handle」の意味不明だったのでしょうか?

 
William Roeder:

TDSとは関係ない。アクセスする前に、端末にデータを読み込ませる必要があるのです。価格にアクセスする前に」のどの部分が不明だったのでしょうか?

ヘルプを無視するとそのまんまになりますよ。どの部分が "must handle "なのでしょうか?

私はコーダーの初心者で、あなたの言っていることが理解できなかったようですみません。実は、アドバイスでわかったのは、"2つ目の通貨ペアの履歴と現在の価格データのダウンロードを待ってから、何かをする "ということです。

投稿していただいたこのコードで何をすればいいのか、もう少し詳しく教えていただけませんか?

#define  HR2400 PERIOD_D1 * 60    // 86400 = 24 * 3600
int      TimeOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                          return( when % HR2400 );            }
datetime DateOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                          return( when - TimeOfDay(when) );   }
#define  SYMBOL string
#define  THIS_SYMBOL ""
bool  download_history(ENUM_TIMEFRAMES period=PERIOD_CURRENT){
   return download_history(_Symbol, period); 
}
bool  download_history(
      SYMBOL            symbol=THIS_SYMBOL,     ///< The symbol required.
      ENUM_TIMEFRAMES   period=PERIOD_CURRENT   /**< The standard timeframe.*/){
   if(symbol == THIS_SYMBOL)     symbol = _Symbol;
   if(period == PERIOD_CURRENT)  period = _Period;
   datetime today = DateOfDay();
   ResetLastError();
   datetime other = iTime(symbol, period, 0);
   if(_LastError == 0 
   && today == DateOfDay(other)) return true;   
   if(_LastError != ERR_HISTORY_WILL_UPDATED
   && _LastError != ERR_NO_HISTORY_DATA
      Print(StringFormat("iTime(%s,%i) Failed: %i", symbol, period,_LastError));
   return false;
}

上のコードをグローバルエリアにコピーしたのですが、エラーと警告が出ます。

このコードの行を私のスタート関数にも コピーしました。

while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }

このような場合、どこにどのような情報や句読点を挿入すればよいのでしょうか?

また、私の低レベルのスキルで申し訳ありません...。

 
  1. HosseinKOGO: そして、それは私にエラーと警告を与える。

    HosseinKOGO : あなたが投稿したこのコードをどうすればいいのか、さらに詳しく教えてください。

    1. こんな小さな修正も わからないんですか?
      int      TimeOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                                return( int( when % HR2400) );            }
      
        if(_LastError != ERR_HISTORY_WILL_UPDATED
         && _LastError != ERR_NO_HISTORY_DATA
         )  Print(StringFormat("iTime(%s,%i) Failed: %i", symbol, period,_LastError));
      

    2. あなたはすでにEA用にそれを投稿しました。
      while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }
 
William Roeder:
    1. こんな細かい修正も わからないの?

    2. すでにEA用に投稿されていますね。

ご回答ありがとうございました。

実は私はコーダーではないのですが、いくつかのEAをコーディングしてみたことがあります。私の仕事はクリエイティブとストラテジーに関係しているので、EAを作るために600~700のアイデアを思いつき、今まで作ってきました。私は簡単なEAしか作れないので、皆さんのような高度なコーディングは無理ですが...。

私はそれらのコードを私のEAに入れましたが、それはちょうどこのエラーを返します:2019.05.06 15:37:56.586 2018.01.02 00:00:07 MyEA!GBPAUD,H4: iTime(GBPUSD,240) Failed: 0です。

開いたチャートが GBPAUD、2つ目のペアがGBPUSDで試しています。

何が問題なのでしょうか?