MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1352

 
mt4でCopyBufferが 見つからない、mt5のみ mt4で見つからない? mt4でデータを取得するための簡単なバッファ配列の数値はあるのでしょうか?
 
Valeriy Yastremskiy:
CopyBufferがmt4で見つからず、mt5にしかない mt4にはない?

ノー

MT4 では iCustom()https://docs.mql4.com/ru/indicators/icustom です。

昨年確認したところ、EAからのiCustom()呼び出しはキャッシュ可能で、同じtickで異なるバッファやインデックスに対して EAから何度もiCustom() を呼び出しても、インジケータ自体はこのtickで一度だけ再計算される、つまりパフォーマンスには何も問題は ないとのことでした。

ZS: なぜMT4なのか。もしMT5がすでに「解明」されているなら、生産性はもっと高く、テスターはもっと正確なのですが......。研究にとって良いことずくめだと思います。

 
Igor Makanu:

ノー

MT4 では iCustom()https://docs.mql4.com/ru/indicators/icustom です。

昨年確認したところ、EAからのiCustom()呼び出しはキャッシュ可能で、同じtickで異なるバッファやインデックスに対して EAから何度もiCustom() を呼び出しても、インジケータ自体はこのtickで一度だけ再計算される、つまりパフォーマンスには何も問題は ないとのことでした。

ZS: なぜMT4なのか。もしMT5がすでに「解明」されているなら、生産性はもっと高く、テスターはもっと正確なのですが......。全体として、研究にとって良いことだと思います。

MT4でアイデアを出す方がやりやすい。シェルの方が簡単です)))いいえ、そうではありません。昔ながらの方法で、配列のループの中に))))を書いてみましょう。私はまだこれらの段階に達していません))) MT5では、MT4が動作しなくなったときにスケーリングすることに意味があります))) これは遅すぎるか、データ量が多すぎるかのどちらかです。

を追加しました。そして、そのアイデアが許容できる誤差になるまで練り上げられたとき。
 

皆さん、こんにちは。グレイルマシンはほぼ完成しているのですが、コンパイルすると「OrderSend」の戻り値をチェックするようにという警告が50~60個ほど出てきます TREND+ _V_1,1.mq4 1626 11

注文の開始をチェックなしで書くので、私が理解する限りでは、次のようになります。

//--- АО БАЙ--

   /*УСЛОВИЕ 1*/
   if(flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
   { // НАЧАЛО УСЛОВИЕ 1
   if(ao_buy!=EMPTY_VALUE && count_orders_market_buy ==0)
   {
     OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_buy); // ОТКРЫВАЕМ БАЙ ОРДЕР
   }
   } // КОНЕЦ УСЛОВИЕ1
 
DanilaMactep:

皆さん、こんにちは。グレイルマシンはほぼ完成しているのですが、コンパイルすると「OrderSend」の戻り値をチェックするようにという警告が50~60個ほど出てきます TREND+ _V_1,1.mq4 1626 11

私はチェックなしで注文の開始を書くので、私が理解する限りでは - このように。

こう書く

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_buy)) Print(Buy Open); // ОТКРЫВАЕМ БАЙ ОРДЕР
 
MakarFX:

これを書く

このコードの行は動作しません:( このようなエラーが一度に2つ表示されます。

買い」 - 未提示の識別子 TREND+_1,1.mq4 860 98


'Open' - 何らかのオペレータが予想される TREND+_V_1,1.mq4 860 102

そして、コード自体は以下のようなものです。

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_market_buy)) Print(Buy Open); // ОТКРЫВАЕМ БАЙ ОРДЕР


アドバイス通りに全て書きましたが、唯一違うのは、コメントの変数名を変えて、成行注文と保留注文の コメントを分けたことです。私は何を間違えているのだろう?
 
Print("Buy Open");
 
DanilaMactep:

このコードの行は動作しません:( このようなエラーが一度に2つ表示されます。

買い」 - 未提示の識別子 TREND+_1,1.mq4 860 98


'Open' - 何らかのオペレータが予想される TREND+_V_1,1.mq4 860 102

で、コード自体は以下のようなものです。


アドバイス通りに全て書きましたが、唯一違うのは、コメントの変数名を変えて、成行注文と保留注文の コメントを分けたことです。私は何を間違えているのだろう?

見逃した ""

ウラジスラフ・アンドルシェンコ

Print("Buy Open");


 
OnCalculate メソッドでインジケーターを最初に起動すると、CopyRatesが動作しません。
                MqlRates rates[];
                if (CopyRates(_Symbol, _Period, (datetime)SeriesInfoInteger(Symbol(), Period(), SERIES_SERVER_FIRSTDATE), 1, rates) == -1)
                {
                        return(0);
                }

ダミーは表示されますが、コピーされません。まるでターミナルにインジケータがないかのようです。

 
BillionerClub:
OnCalculateメソッドでインジケーターを最初に起動すると、CopyRatesが動作しません。

印刷物には表示されるが、コピーされない。まるで端末にインジケータがないかのように。

ヘルプ:CopyRates

備考

要求されたデータの間隔がサーバ上で完全に範囲外であった場合、この関数は-1を返す。TERMINAL_MAXBARS(チャート内の最大バー数)の範囲外で データを要求した場合、この関数は-1も返します。

インジケータにデータを要求する際、要求されたタイムシリーズがまだビルドされていないか、サーバからダウンロードする必要がある場合、この関数はすぐに-1を返しますが、ダウンロード/ビルドのプロセスが開始されます。

Expert Advisor またはスクリプトからデータを要求すると、端末がローカルにこれらのデータを持っていない場合はサーバーからの読み込みが 開始され、ローカル履歴からデータを構築できる場合は必要な時系列の構築が開始されますが、まだ準備ができていない場合があります。この関数は、タイムアウト時間までに準備できる量のデータを返しますが、履歴の読み込みは継続され、次の同様のリクエストではより多くのデータが返されます。

開始日と必要個数でデータを要求した場合、指定した日付より小さい(早い)か等しいデータのみが返されます。同時に、間隔を秒単位で指定し、考慮する。これは、値が返される任意のバーの開始日(ボリューム、スプレッド、インジケータバッファの値、価格オープン、ハイ、ロー、クローズまたはオープン時間タイム)が、常に指定したものと同じかそれ未満であることを意味します。

指定された日付範囲のデータを要求する場合、要求された間隔に該当するデータのみが返され、間隔は秒単位で指定され考慮される。つまり、値が返されるバーの開始時間(ボリューム、スプレッド、インジケーターバッファの値、価格オープン、ハイ、ロー、クローズ、オープンタイム時間)は、常に要求された間隔内にあることを意味します。

したがって、現在の 曜日が土曜日の場合、start_time=Last Tuesdayとstop_time=Last Fridayを指定して週足タイムフレームのデータをコピーしようと すると、週足タイムフレームの開始時刻は常に日曜日であり、指定した範囲に入る週足はないため、関数は0を返す ことになるのです。

現在の未完成のバーに対応する値を取得したい 場合は、start_pos=0とcount= 1を指定して、最初の呼び出し形式を使用 することができます。

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
CopyRates - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5