MQL5で学び、共に書く - ページ 16

 
AUser:
みんな!プログラミング初心者のための、ハンドル操作のヒントをご紹介します。なんだろう、バッファにある何かのファイル?それを使って仕事をするために、どのように情報を取り出せばいいのか。

見てみてください。

MQL5リファレンスガイド / テクニカル指標

MQL5リファレンスガイド / 時系列とインジケータへのアクセス / CopyBuffer

簡単に説明すると、ハンドルは、CopyBuffer関数で使用するために、インジケータのコピーを作成したプログラムへのあるポインタ(リンク)です。

初心者のための記事も見てください。

 
AUser:

現在の 価格の値を変数に代入する方法を教えてください。

MQL4からMQL5への移行」の記事が読みやすいかもしれません。

また、ドキュメントを もっと頻繁に確認する必要があります。

SymbolInfoDouble 関数の例からの回答です。

double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
 

AUser:

また、インジケーターハンドルにヒストリカルデータを読み込むことは可能でしょうか?

正確には、データはインジケータハンドルにロードされず、「タイムシリーズとインジケータデータへのアクセス」 セクションの関数を使用して、特別な配列にロードされます。

少なくともこれらの機能については、さらに研究を進めるべきでしょう。

CopyBuffer

指定されたインジケータから指定されたバッファのデータを配列に取得します。

コピー率

指定されたシンボルと期間のRates 構造体のヒストリデータを配列で取得する

コピータイム

指定されたシンボルと期間のバーの開始時刻の履歴データを配列で取得します。

CopyOpen

指定されたシンボルと期間のバーの始値に関する履歴データを配列で取得する

コピーハイ

指定されたシンボルと期間の最大バー価格のヒストリデータを配列で取得する

コピーロー

指定されたシンボルと期間の最小バー価格のヒストリデータを配列で取得する

コピークローズ

指定されたシンボルと期間のバークローズ価格の履歴データを配列で取得する

 

AUser:

また、インジケーターの歴史もあり、すべてが明らかになっているわけではありません。問題は以下の通りです:バー上の指標の値を比較する前に、指標の配列に収集する必要があります。15分足のバーの値は予想できますが、週足の方はどうでしょうか。マニュアルに目を通しましたが、理解できません))) CopyClose(該当シンボルと期間のバークローズ価格の履歴データを配列に取得) 取得したデータですが、どのようにインジケータに計算させるのでしょうかわからないことがある。


インジケータを使ってExpert Advisorを作成されているとのことですが?

ハンドルを受信し、明らかな問題がなければ、CopyBufferを 使用してカスタムインジケータのデータを取得し、標準的なテクニカルインディケータの場合は、次の関数を 適用する方がよいでしょう。

このコードは、0バッファから20本のバーのデータをバッファ配列に書き込み、実際にコピーされた配列の要素数または-1を返す必要があります。

int Res = CopyBuffer(MyHandle,0,0,20,buffer[]);

また、0小節から20小節を数えるので、直列性を忘れてはならない(詳しくはこちらを 参照)。追加データの取得については、こちらを ご覧ください。

 
AUser:
吹っ飛んでる...どうしたんだろう?

OrderSend関 数のヘルプをここに掲載します。

 
AUser:
書かれているので、トレーニングしないと理解するのは難しい)

OrderSend関 数のヘルプをここに掲載します。

読ま せるだけで、そうでなければ何もできない。

 

AUser, - Sergeevの言うとおりです。OrderSend 関数のパラメータは2つだけです。MQL5を時間をかけて勉強する必要があります。

 
AUser:

書きました。

OrderSend(TRADE_ACTION_DEAL,Symbol(),1,SL,TP,10,ORDER_TYPE_BUY,ORDER_FILLING_CANCEL) を実行。

おかしくなった、どうしたんだ?

本当の値段で買いたい。

この辺の詳細なコードや動作例が欲しい 2;

2.このコードがどの言語で書かれているのか、すぐに判断したい。

3.ヘルプの読み方、この場合はOrderSend 関数の説明を読むことを学んで欲しいです。

この場合、この断片で十分です!!!!

OrderSend()関数は、取引サーバにリクエストを送信し、取引操作を実行するためのものである。

boolOrderSend()
MqlTradeRequest&request, //リクエスト構造体
MqlTradeResult&result// 応答の構造体
);

MqlTradeRequest およびMqlTradeResult の構造体についてもっと知ってもらいたい。

5.CTradeという 素晴らしいものを知ってもらいたいんです(このクラスの詰め物は、ファイル「\MQL5 ╱Trade ╱Trade.mqh 」にあります)。

Expert Advisorでの使用例は、標準Expert Advisor - MACDサンプルで見ることができます。

また、CSampleExpertクラスからCTradeコードの次の関数までの注文がどうなるのかが分かると良いと思います。

a)PositionOpen- 指定されたパラメータでポジションを開きます。

b)PositionModify-指定されたシンボルにより位置パラメータを変更 する。

b)PositionClose - 指定されたシンボルによってポジションをクローズ します。

追記

最後に、ヘルプを読むだけでなく、標準ライブラリのファイル(Ctrl+Shift+Fを 使いこなすのも悪くない)やこのサイトにあるサンプル(Code Base-使いこなせれば強力)を検索する方法を知っておいてほしいです。

 

Sleep()関数について 質問です。Expert Advisor でこの関数を使用すると、その EA のみの実行を停止し、CPU リソース(カーネル)をそのカーネルのタスクリストの次のタスクに転送するという理解で正しいでしょうか?つまり、Sleep()関数はExpert Advisorを処理しているスレッド自体を遅くするのではなく、現在のExpert Advisorと特定のカーネルで拾った他のプログラムとの切り替えとして機能するということでよろしいでしょうか?

Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 

MqlTradeResultの構造について 質問です。MqlTradeResultの構造体に時間フィールドを追加する質問があったかどうか、どなたか覚えていらっしゃいますか?保留中の注文が突然履歴になった場合に引き出すために必要です。

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