システムトレード研究所 〜FXで完全自動売買〜

このサイトでは、FXで完全自動売買を行うために必要な情報を書いていこうと思っています。システムを自分で作りたい方、システムトレードをやってみたい方は御覧になっていって下さい。
<< アラートを鳴らす方法 | main | 関数の使い方を調べる方法 >>
レートを取得する関数
こんばんは、DCです。今日のブログは、「レートを取得する関数」という内容です。


サンプルプログラムはこちらです。
http://jidoubaibai.com/Sample%20Rate.mq4


サンプルプログラムの使い方は、こちらで説明しています。 
http://jidoubaibai.com/burogu11.html



今回もMetaTrader4のプログラムの記事です。最近のプログラムの記事が好評でしたので、しばらくはプログラムの記事を書こうと思っています。今回紹介するのはレートを取得する関数です。一番簡単なレートを取得する方法はAskとBidですが、これら以外にも色々とレートを取得する関数があります。


今回紹介するのは、iOpen関数iHigh関数iLow関数iClose関数の四つです。これらの関数はそれぞれ始値、高値、安値、終値のレートを取得することが出来ます。使用方法は全て同じです。iOpenを例に出すと下記のようになります。

iOpen( string symbol, int timeframe, int shift)


関数の上にカーソルを置いてキーボードのF1キーを押すと、関数の詳細と引数などの入力方法が出てきます。(ただ、全部英語で出てきますので、少々分かり辛いですが……)iOpenの詳細を出すと上記にように出てきます。これを分かりやすくすると下記のようになります。

iOpen( 通貨ペア,タイムフレーム,シフト)


実際に使用すると下記のようになります。

iOpen(NULL,0,0);


この例では、このシステムを使用しているチャートの通貨ペアと時間足の現在の足の始値のレートを取得しています。通貨ペアはNULL、タイムフレームは0と入力するとこのシステムを使用しているチャートの通貨ペアと時間足を自動的に選択してくれます。


他の関数の実例も書いてみます。

iLow("EURUSD",PERIOD_M15,2);


この例では、ユードルの15分足の二つ前の安値のレートを取得しています。このように、これらの関数を使用すれば、MetaTrader4で選べる全ての通貨ペア、全ての時間足、全てのバーの始値、高値、安値、終値のレートを取得することが可能です。例えば、ドル円の15分足のレートとユーロドルの1時間足のレートを同時に判断する売買ルールのシステムを製作することも可能です。



expert




サンプルプログラムは、現在の始値、一つ前の足の高値、15分足の現在の安値、ユーロドル現在の終値のレートを取得して変数に入れ、Comment関数でチャート上に表示しています。




 

 宜しかったら、応援して下さい



システムトレード研究所〜FXで完全自動売買〜INDEXへ


----------------------注意----------------------
このブログは半角のスペースが認識されない為、コードを見易くするために全角で書いている場合があります。実際にプログラムにコードを書くときは、コピー&ペーストせずに半角で書いて行って下さい。

また、内容には注意を払っていますが、保障は出来ません。実際に運用する場合は、自己責任でお願いします。
| 小松 | MetaTrader4 プログラム中級編 | 22:07 | comments(11) | - |
レートの取得は何かに使えそうですね♪
配列を組んで新しい関数を作ったり。。。
本当に可能性が広がっているのが実感できます^^

最近、はたまた問題が起きてしまいました。
Alart(Symbol(),Period(),"Buy sign") と記述すると
USD60Buy Sign 反映されます。。

USD 60 Buy Sign というように通貨、期間、文字の間にスペースがほしい場合どうしたら良いのでしょうか。。。
| sionm | 2008/02/22 8:19 PM |
>USD 60 Buy Sign というように通貨、期間、文字の間に
>スペースがほしい場合どうしたら良いのでしょうか。。。

 この場合ですが、下記のようにすると可能です。

Alart(Symbol()," ",Period()," ","Buy sign");

 通貨、期間などの間に""を付け、中にスペースを入れれば間にスペースを入れることが可能です。


 
| DC | 2008/02/22 10:52 PM |
高野といいます。
よろしくお願いします。
私は、取引会社で迷っています。

以前、外国の会社で取引をしていて、
その会社がつぶれてしまい結構な額を
丸々、なくした経験があります。
ですので、安全な会社を探しています。

どこか、お勧めできるところを知っておられたら
教えてください。

また、信用できるという面で
できれば外為どっとコムで取引したいのですが
やり方をもし知っておられたら教えてください。
| 高野 直子 | 2008/02/23 3:13 PM |
>>高野さん

 初めまして、管理人のDCです。

 安全な取引業者ですが、MetaTrader4が使えるところだと、InterbankFXが大手ですので、安全だと思います。
http://www.interbankfx.com/

 ただ、海外業者は信託保全という概念がなかったと思いますので、絶対安全とは言えませんし、大手だったレフコがつぶれてしまったこともあります。

 口座を作るときはよく調べて納得されてから、口座開設をして下さい。


 あと外為どっとコムですが、MetaTrader4が使いたいという場合でしたら、不可能です。
 
 普通に口座開設したいという場合でしたら、外為どっとコムの公式HPに行って、オンライン口座開設を選んでください。
http://www.gaitame.com/g/entry.html
| DC | 2008/02/23 4:00 PM |
高野さん
日本の会社なら大抵大丈夫ではないでしょうか?
外為オンラインとか手数料も安いのでオススメです。

DCさん
毎度ご教授ありがとうございます^^

それと、大変厚かましいのですが、
次回のネタ(記事)の要望をお聞きくださるのなら、object create について書いていただきませんか。いつでも構わないので。。。

| sionm | 2008/02/23 8:49 PM |
>>sionmさん

 申し訳ありませんが、インディケーターについてはしばらく記事にする予定がありませんので、かなり長い間書かないと思います。

 どうしても早めに内容を知りたいということでしたら、FXPGさんが発売しているMT4のマニュアル本にインディケーター関係の関数の使い方も詳しく書かれていますので、お勧めします。

 http://fxprogrammer.k2srv.com/mt4manual/
| DC | 2008/02/24 10:15 PM |
私、この本持ってるんですよ。
確かにいいと思いますが。。。
ロシア語のpdfを日本語に訳しただけじゃないですか。
ロシアでは無料配布してるような内容ですよ^^;

そうですか^^)b
では、何を書くのかわかりませんが、
次回の記事を楽しみにしています
| sionm | 2008/02/26 10:10 AM |
はじめまして。MT4、プログラミング関係検索してこちらにたどり着きました。大変勉強になります。

さて、レート取得に関係する関数についてご教授願えれば....
当然ながらレートの値は各通貨ペアごとに取得できるのですが、同じように取引中の損益(Floating P/L)を各通貨ペアごとに取得できる関数ってご存じないでしょうか?

イメージとしては、複数の通貨ペアそれぞれに複数の取引が発生している場合、Floating Loss が各通貨ペアごとに設定された数値(-100とか)に達したら、その通貨ペアの取引をすべて決済する...といったシステムをつくろうかと思っています。
"AccountProfit"かな?とも思ったのですが、これだと各通貨ペア単位ではなくアカウント全体になってしまうので、どうもうまく行きません。
codebase.mql4.com でも解決できず....なにかご指導いただければ幸いです。
| stblue | 2008/06/27 10:08 AM |
 初めまして、stblueさん。
 このブログの管理人のDCです。

 質問の返答ですが、個別のポジションの損益を取得出来る関数はありません。

 OrderSelect関数とOrderOpenPrice関数を使用して、ポジションの取得価格から損益を計算するしか方法がありません。
| DC | 2008/06/28 9:47 PM |
DCさん
早速、ご返答ありがとうございました。
やはりそうですかぁ...FOREX TSDでそれっぽいことをやっているであろうインディケータ見つけたのですが、ソースが公開されてなくて....
http://www.forex-tsd.com/tools-utilities/14379-profitonsymbol.html
ご教授いただいた関数でもう少し、試行錯誤してみます。
これからもいろいろと参考にさせていただきます。
ありがとうございました!
| stblue | 2008/06/29 12:20 AM |
管理者の承認待ちコメントです。
| - | 2011/09/22 5:17 PM |









      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< April 2017 >>



このページの先頭へ