MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 580 1...573574575576577578579580581582583584585586587...1953 新しいコメント Alexandr Mordashov 2018.07.06 22:26 #5791 こんにちは!困っていることがあるので、助けてください。1つのEAから異なるシンボル/TFのデータを取得する必要があります。マニュアルには、「データのためのサーバーへのアクセスの仕組みは、リクエストがどのように開始されたかに依存しない - チャートをナビゲートするユーザーによって、またはMQL4内のプログラムによって」と書かれています。しかし、実際には、リアルタイムで、例えば、EAが動作しているシンボルとは異なるシンボル/TFのバー 数を追跡すると、次のようなことが起こります。新しいシンボルでは、最初のアクセスで少数のバーがロードされ(M1では約1000)、この数は変更されません。また、ChartNavigate(_ID, CHART_BEGIN)を移動させても、新しいデータはロードされず、バーの数も変わりません。しかし、同じExpert Advisorからプログラムでウィンドウを開き(以前にもChartNavigate()関数で開いています)、矢印/Home/PgUpボタンでチャートを左に移動すると、タイムシリーズ配列の増加につながり、バー数がリアルタイムで増加、つまりデータがロードされます。キーボードの物理キーを押さずにプログラムで履歴を読み込むには、どうしたらよいのでしょうか?ありがとうございます) Tigerfreerun 2018.07.07 09:48 #5792 Ihor Herasko:そのようにやってください。コードはほぼ正しいです。たった一文字足りないだけ。 ありがとうございました。 Mislaid 2018.07.07 16:52 #5793 Alexandr Mordashov: こんにちは!問題を解決するのを助けてください。1つのEAから異なるシンボル/TFのデータを取得する必要があります。ヘルプによると、「データに対するサーバーへのアクセスの仕組みは、リクエストがどのように開始されたかに依存しない - チャートをナビゲートするユーザーによって、またはMQL4のプログラムによって-」とあります。しかし、実際には、リアルタイムで、例えば、EAが動作しているシンボルとは異なるシンボル/TFのバー 数を追跡すると、次のようなことが起こります。新しいシンボルでは、最初のアクセスで少数のバーがロードされ(M1では約1000)、この数は変更されません。また、ChartNavigate(_ID, CHART_BEGIN)を移動させても、新しいデータはロードされず、バーの数も変わりません。しかし、同じExpert Advisorからプログラムでウィンドウを開き(ChartNavigate()関数用に既に開いています)、矢印/Home/PgUpボタンでチャートを左方向に移動すると、タイムシリーズ配列の増加につながり、バー数がリアルタイムで増加、つまりデータがロードされます。キーボードの物理キーを押さずにプログラムで履歴を読み込むには、どうしたらよいのでしょうか?ありがとうございます)もっと明確に質問する必要があります。問題が提起されていなければ、解決することはできない。 Galim_V 2018.07.08 15:19 #5794 Galim_V: フクロウがホバリングしている時間枠以外の時間枠から、一番下の指標を取得する方法を教えてください。double iRev() { static int wtf; static int tf; int xtf =Period(); // таймфрейм текущего графика //PERIOD_CURRENT; if(xtf != PERIOD_CURRENT) { Print("xtf ",xtf); switch(xtf) { case 1: tf = PERIOD_H1; break; case 5: tf = PERIOD_H4; wtf = PERIOD_H1; break; case 15: tf = PERIOD_D1; break; } } Print("tf == ",tf,"wtf ==",wtf); double iRa = NormalizeDouble(iCustom(NULL,tf,"iRevers",InpSARStep,InpSARMaximum,0),Digits); double wRa = NormalizeDouble(iCustom(NULL,wtf,"iRevers",InpSARStep,InpSARMaximum,0),Digits); if(iRa != 0) ObjectCreate("Ra",OBJ_HLINE,0,Time[0],iRa,0,0); ObjectSet("Ra",OBJPROP_TIME1,Time[0]); ObjectSet("Ra",OBJPROP_PRICE1,iRa); if(wRa != 0) ObjectCreate("weRa",OBJ_HLINE,0,Time[0],wRa,0,0); ObjectSet("weRa",OBJPROP_TIME1,Time[0]); ObjectSet("weRa",OBJPROP_PRICE1,wRa); Print("iRa ",iRa,wRa); return(iRa); } 動作するが、必ずしも正しく動作しない。視覚的に評価できるようにオブジェクトを添付しました。何かヒントや見るべきところがあれば教えてください。 Alexey Viktorov 2018.07.09 08:14 #5795 Galim_V: 動作はしますが、必ずしも正しく動作するわけではありません。視覚的に評価できるように、オブジェクトを添付しました。アドバイスか、どこを見ればいいのか、教えてください。DRAW_LINEは何のためにあるのですか? double iRa = NormalizeDouble(iCustom(NULL,tf,"iRevers",InpSARStep,InpSARMaximum,DRAW_LINE,0),Digits); double wRa = NormalizeDouble(iCustom(NULL,wtf,"iRevers",InpSARStep,InpSARMaximum,DRAW_LINE,0),Digits); Galim_V 2018.07.09 12:29 #5796 Alexey Viktorov:DRAW_LINEは何のためにあるのですか? コードを修正しました。しかし、コードに誤りがあるわけでもなく、正しく動作しませんでした。私はブローカーの端末でテストを行うので、常にサーバーとの接続を監視しているわけではありません。この場合、非常に重要です。ありがとうございます。 bij 2018.07.10 08:08 #5797 こんにちは。EAがH1チャートの場合、M30での終値を 知るには? Close_M30= iClose(Symbol(),PERIOD_M30,1); Ihor Herasko 2018.07.10 08:13 #5798 bij:こんにちは。EAがH1チャートの場合、M30での終値を 知るには? 質問して自分で答えてくれる人が好きです )) 基本的には、すべて正しいです。ただ、1つだけ微妙な点があります。それは、別の時間軸で得られたデータを使う前に、そのデータが全く存在しないことを確認しなければならないことです。 したがって、完全な正しいコードは次のようになります。 ResetLastError(); Close_M30= iClose(Symbol(),PERIOD_M30,1); if (GetLastError() != ERR_NO_ERROR) { // Значение Close_M30 использовать нельзя } bij 2018.07.10 08:41 #5799 Ihor Herasko:質問しておいて、自分で答えるというのが好きです )) 大体において、すべてが正しいのです。ただ、1つだけニュアンスがあります。他のTFのデータを使う前に、そのデータが全く存在しないことを確認する必要があるのです。 ですから、完全な正しいコードは次のようになります。ありがとうございます、アクションはH1クローズ後のみですが、H1クローズの30分前に条件を満たしています。 ResetLastError(); niz_=NormalizeDouble(iCustom(NULL,PERIOD_M30,"mand v.1",2,1),Digits); Close_M30=iClose(Symbol(),PERIOD_M30,1); if(GetLastError() != ERR_NO_ERROR)return; if(Close_M30>niz_)//условие { //действие } Ihor Herasko 2018.07.10 10:02 #5800 bij:ありがとうございます!アクションはH1クローズ後のみですが、H1クローズの30分前に条件が成立しています。 最後のH1終値と一緒に閉じたM30ローソクを取りたい場合、それはインデックス1だけでなく、2を持つローソクになることができます。もう一つは、それならなぜ、前のH1ローソクの終値と同じなのに、M30の終値が 取られるのかがはっきりしないことです。つまり、この場合、他のTFの終値は現在のTFの終値と一致しているので、問い合わせる意味がない。 1...573574575576577578579580581582583584585586587...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そのようにやってください。コードはほぼ正しいです。たった一文字足りないだけ。
こんにちは!問題を解決するのを助けてください。1つのEAから異なるシンボル/TFのデータを取得する必要があります。ヘルプによると、「データに対するサーバーへのアクセスの仕組みは、リクエストがどのように開始されたかに依存しない - チャートをナビゲートするユーザーによって、またはMQL4のプログラムによって-」とあります。しかし、実際には、リアルタイムで、例えば、EAが動作しているシンボルとは異なるシンボル/TFのバー 数を追跡すると、次のようなことが起こります。新しいシンボルでは、最初のアクセスで少数のバーがロードされ(M1では約1000)、この数は変更されません。また、ChartNavigate(_ID, CHART_BEGIN)を移動させても、新しいデータはロードされず、バーの数も変わりません。しかし、同じExpert Advisorからプログラムでウィンドウを開き(ChartNavigate()関数用に既に開いています)、矢印/Home/PgUpボタンでチャートを左方向に移動すると、タイムシリーズ配列の増加につながり、バー数がリアルタイムで増加、つまりデータがロードされます。キーボードの物理キーを押さずにプログラムで履歴を読み込むには、どうしたらよいのでしょうか?ありがとうございます)
もっと明確に質問する必要があります。問題が提起されていなければ、解決することはできない。
フクロウがホバリングしている時間枠以外の時間枠から、一番下の指標を取得する方法を教えてください。
動作はしますが、必ずしも正しく動作するわけではありません。視覚的に評価できるように、オブジェクトを添付しました。アドバイスか、どこを見ればいいのか、教えてください。
DRAW_LINEは何のためにあるのですか?
DRAW_LINEは何のためにあるのですか?
こんにちは。EAがH1チャートの場合、M30での終値を 知るには?
こんにちは。EAがH1チャートの場合、M30での終値を 知るには?
質問して自分で答えてくれる人が好きです ))
基本的には、すべて正しいです。ただ、1つだけ微妙な点があります。それは、別の時間軸で得られたデータを使う前に、そのデータが全く存在しないことを確認しなければならないことです。
したがって、完全な正しいコードは次のようになります。
質問しておいて、自分で答えるというのが好きです ))
大体において、すべてが正しいのです。ただ、1つだけニュアンスがあります。他のTFのデータを使う前に、そのデータが全く存在しないことを確認する必要があるのです。
ですから、完全な正しいコードは次のようになります。
ありがとうございます、アクションはH1クローズ後のみですが、H1クローズの30分前に条件を満たしています。
ありがとうございます!アクションはH1クローズ後のみですが、H1クローズの30分前に条件が成立しています。
最後のH1終値と一緒に閉じたM30ローソクを取りたい場合、それはインデックス1だけでなく、2を持つローソクになることができます。もう一つは、それならなぜ、前のH1ローソクの終値と同じなのに、M30の終値が 取られるのかがはっきりしないことです。つまり、この場合、他のTFの終値は現在のTFの終値と一致しているので、問い合わせる意味がない。