ブログトップ

こんなFXの日記

konnafx.exblog.jp

システムトレーダーとして、日々研鑽を重ねていく…

カテゴリ:メタトレーダー( 26 )

しばらくの間、このブログの更新をお休みします。




今後は、新しく作ったHPの中の「更新記事」の中で、いろいろ書いていきますので、皆さま、よろしくお願いいたします。




二ヶ所で記事を書いとると、お酒呑む時間がないもんでね~。007.gif





ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2012-10-09 11:39 | メタトレーダー
久しぶりの投稿です。040.gif



EA作成代行業務をはじめることになりました。004.gif



ホームページは、こちらです。




右側のサイドメニューの中にもリンクを貼り付けておきました。





こうなった背景には、読者の方からの要望があったのも事実ですが、私自身、ずいぶん前から、「勉強にもなるし、ちょっとやってみたいな」と思っていたんです。



最初は、このブログだけを通して、無料で細々とやろかと考えていたのですが、どうせやるなら、HPくらいないとカッコ悪いかなと思い、さっそくはりきってHPを作ったわけです。でも、私にはHPに関する基礎知識が欠落している上、まだ本日の時点では、銀行の指定口座なども開設しておらず、明後日ぐらいに免許証と印鑑を持って、みずほ銀行のインターネットバンキングに登録しよかと考えています。



まあ、そんなに需要はないと思うので、ボツボツ開業準備しています。042.gif



残念ながら「無料」というわけにはいきませんが、興味のある方はぜひご利用ください。034.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2012-10-02 21:42 | メタトレーダー
前回の記事からずいぶん時間がたってしまいました。040.gif




まずは、前回のおさらいです。




① 金曜日の16時になったら、決済プログラムを発動しつづける。
② 現有ポジションが決済されたら、その後、日曜日の23時代が終了するまで注文関数を呼び出さない。
③ 日曜日の23時代が終了したら、通常のプログラムにもどす。




でしたね。




さっそく、スタート関数の外へ、現在の時刻に関するオリジナル関数を作成します。




a0204254_818655.png




整数を返すint型で宣言します。GMTのサーバー時刻で、「金曜日の16時代以降または土曜日または日曜日の23時代以前」なら、「1」を、それ以外の時刻なら「0」を返します。「日曜日の23時代以前」というのは、「日曜日そのもの」なので、もっと簡単に記述できますが、時刻の違いをいろいろと試せるようにこのような記述にしておきました。




あとは、スタート関数内の最初の部分に、このオリジナル関数を使って、




a0204254_8373640.png





上のように記述し、このオリジナル関数が「1」を返したときは、ClosePos()関数でポジションを決済すると同時に、その下のプログラムを読み込まないように、return(0)と記述すればOKです(ClosePos()というのは、現在のポジションを決済するための、これまた別のオリジナル関数なので、スタート関数の外で別途宣言しておかなければなりません)。045.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2012-07-04 08:48 | メタトレーダー
読者の方から質問があったので、記事にしました。




ふだんプログラムをしている人にとっては、どうってことはない話ですが、最近MQLを勉強し始めた方にとっては、多少お役に立てるかもしれません。



まず、基本的なロジックを考えましょう。034.gif



単純に考えられるのは、




① 日本時間の土曜日のクローズ時刻直前の一定時刻になったら、現有ポジションを決済する。
② その直後にEA自体の稼動を停止する。
③ 日本時間の月曜日の早朝にEAを再稼動する。





しかし、これだとちょっと問題が…



まず、②や③ですが、プログラム的には可能かも知れませんが、バックテストで思惑通りになるかどうかという問題があります(やったことがないので分かりません)。また、①については、その一定時刻に通信トラブルなどが発生した場合に、ちょっと怖いですよね。045.gif



なので、




① 日本時間の土曜日のクローズ時刻よりかなり前の一定時刻から決済プログラムを発動しつづける。
② 現有ポジションが決済されたら、その後、日本時間の月曜日の朝まで注文関数を呼び出さない。
③ 日本時間の月曜日の朝になったら、通常のプログラムにもどす。
 




というのがよいでしょう。029.gif



早速プログラミングに入る前に、




a0204254_10401411.png





足し算や引き算の苦手な方は、いつもこんな表を用意しておくと便利です。037.gif



上の表の青い部分を当日とすると、黄色の部分は前日になることにご注意!




人によって考え方はまちまちですが、私の場合、



① 日本時間の土曜日午前1時になったら、決済プログラムを発動しつづける。
② 現有ポジションが決済されたら、その後、日本時間の月曜日午前9時まで注文関数を呼び出さない。
③ 日本時間の月曜日午前9時になったら、通常のプログラムにもどす。




としています(上の表の赤枠部分参照)。②③で、午前9時としたのは、月曜日早朝の「窓開け」現象による混乱を考慮して、スタートを少し遅らせているわけです。



サーバーの時間帯が仮にGMTだとすると、プログラムをするときは、結局、



① 金曜日の16時になったら、決済プログラムを発動しつづける。
② 現有ポジションが決済されたら、その後、日曜日の23時代が終了するまで注文関数を呼び出さない。
③ 日曜日の23時代が終了したら、通常のプログラムにもどす。




ということになります。




具体的なプログラム法は、次回にまわします。040.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2012-06-01 12:05 | メタトレーダー
ちょっと、小数点の実験をしていて気づきました。




a0204254_9424747.png





どう出るかなと思ったら、




a0204254_944134.png





Comment()関数は、下5桁を勝手に四捨五入するんですね。039.gif




Print()関数はどうなんだろうと思って…、




a0204254_9571434.png





そうしたら、




a0204254_9575483.png





やはり、下5桁を勝手に四捨五入しています。039.gif




皆さんの周りにもいませんか?



















誰も指示していないのに勝手なことをして周りに迷惑をかけるヤツ!007.gif



でも、ひょっとしたら、これって、Comment()関数やPrint()関数に限った話ではなくて、メタトレーダー全体が勝手に四捨五入する仕様になっていないかなと、不安にかられ…008.gif



a0204254_10108.png




どうなるかなと思ったら、



a0204254_1014099.png




ほっとしました。042.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2012-05-23 10:14 | メタトレーダー
みこりんさんから質問をいただきました。006.gif



元記事とご質問はこちらです。



バーの数で30分足の始値での売買をしているのですが、
expertログを確認すると、22:00:13に売買成立しており、
毎回10秒以上遅れて成立してしまいます。

MT4とは元々こういうものなのでしょうか?
それとも通常であれば22:00:01などに約定するのでしょうか?




まず、前提として、バーの「始値」で発注するためには、「始値」そのものが存在しなければいけません。045.gif



この点、「終値」は、原則として定刻の到来と同時に確定しますが、「始値」は、定刻の到来と同時に確定するわけではなく、定刻の到来後最初のティック変動ではじめて確定します(そのときはじめて新しいバーが誕生するわけで、それまでは、新しいバーは未存在で、定刻前のバーが、まだ最新のバーということになります)。



なので、定刻の到来とその後最初のティック変動との間にタイムラグがあれば、当然、定刻より時間的にずれて約定します。業者、通貨ペア、時間帯にもよりますが、出来高の少ない場面では、数秒どころか、数分間ずれ込むこともあります。007.gif



1分足のデータがときどき欠けていることがあるのもそのためです。



a0204254_23144761.png




つまり、定刻が到来しても1分以上の間ティック変動がないと、その間「始値」が確定せず、そのバーはついに存在しないまま次の定刻まで時が流れてしまうわけです。この場合には、バーそのものが存在しないので、「始値」だけでなく「高値」「安値」「終値」も存在しないことになり、丸々データに欠損ができてしまうわけです。005.gif



ところで、定刻の到来とその後最初のティック変動との間のタイムラグのために、定刻より遅れて約定してしまう現象については、私は、とくに気にする必要はないと考えています。なぜならば、そのような現象は、「定刻通り」に約定しないというだけで、「始値」で約定していることに違いはなく、バックテストとの整合性はきちんと保たれているからです。 004.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2012-04-08 23:28 | メタトレーダー
一番手っ取り早いのは、多くの方がご存知のように、メタトレーダーを使って直接ダウンロードする方法です。


メニュー→「ツール」→「History Center」と進み、



a0204254_11373023.png




ダウンロードします。



すると、次のような警告が出ます。



a0204254_11433536.png




正確に和訳すると、



「メタクォーツソフトウェア会社」のヒストリーセンターからデータをダウンロードしようとしていますが、お客様の口座は、「アルパリジャパン株式会社」の取引サーバーに開設されています。

これからダウンロードされるデータは、現在ご使用中の取引サーバーに蓄積されているデータとは異なる可能性があることにご注意ください。このため、これからダウンロードされるデータは、「アルパリジャパン株式会社」が提示した過去の値動きを検証するのにはご使用になれません。それでもダウンロードを続けたい場合は、OKを押してください。




要するに、このやり方で入手できるのは、自分の証券会社のデータではなく、あくまでもメタクォーツ社が保有するデータということです。

しかし、メタクォーツ社のヒストリカルデータについては、ご承知の通り、かなり評判が悪いです。002.gif



http://projectv-japan.sblo.jp/article/41941643.html

http://bonansa.blog47.fc2.com/blog-category-10.html



そこで、比較的人気があるのが、FXDDのヒストリカルデータです。



しかし、先日、FXDDの担当者へライブチャットで確認したところ、こちらのデータは、実は、メタクォーツ社が提供しているデータだそうです。005.gif

前述の、メタトレーダーを使って直接ダウンロードされるデータと同一なのか、それを修正したものなのか、定かではありませんが、いずれにしても、出所が出所なので、ちょっと心配です。002.gif



また、 Forex Testerから入手される方も多いようです。



しかし、こちらのデータは出所がよくわからない上に、読者の方々のコメントの通り、実際に、チャートに表示してみると…、



a0204254_11414282.png




赤丸より左側が、Forex Tester のデータで、右側がアルパリジャパンのデータで、たしかに、ローソクの形が全然違いますね。005.gif



あと、アルパリグループのデータを提供している海外のサイトもあるようです。

しかし、こちらのデータの信憑性については、今のところ不明です。008.gif




結局、



長期で正確なヒストリカルデータを入手するのは…、
















不可能に決ってんじゃん!041.gif



なんて締めくくったら、きっと、読者の方々から袋叩きにされますよね。007.gif



そこで、こんな手を見つけました。



まずは、こちらをポチッとやってね。



にほんブログ村 為替ブログへ
にほんブログ村



あっ! 違った。


こちらでした。040.gif



FXCMジャパン



ここへ無料デモ口座を申し込みます。



ただし、MT4用の口座ではなく、手動売買用の口座に申し込むのがポイントです。034.gif



a0204254_12145990.png




一連の手続きが完了して、パスワードなどを取得すると、「FX Trading Station 2.0」(いわゆる「トレードステーション」とは別物)というツールをダウンロード&インストールできます。

初期画面はこんな感じです。



a0204254_10394411.png




赤丸の部分をスクロールして、お目当ての通過ペアを選んで、その気配値上で右クリックします。



a0204254_1048073.png




お目当てのチャートを表示します。



a0204254_10523089.png




「ファイル」→「マーケットショットの作成」と進みます。



a0204254_10554551.png




すると、こんな画面が出るので、



a0204254_1104977.png




データレンジを「その他」に指定します。


a0204254_114877.png




ダウンロードしたい期間を指定して、OKを押します。



a0204254_1172029.png




ダウンロードには、もちろん時間がかかります。

ダウンロード中は、ローソク足がごにょごにょと作成されていくのがわかります。



a0204254_11152743.png




終了したら、「ファイル」→「CSVへエクスポート」と進み、あとは、ファイル名を指定してデスクトップなどに落とすだけです。



ちなみに、直近10年分のデータが入手できます。



このデータの信憑性について、私は、担当のおねえちゃんと電話で以下のようなやりとりをしました。


takechan : こちらのデータは正確なものでしょうか。
おねえちゃん : はい。すべて弊社(グループ)がお客様に提示してきたリアルレートです。
takechan : たしか、御社は、NDD方式を採用しているので、こちらのデータはインターバンクのレートと同一と考えてよいでしょうか。
おねえちゃん : いいえ、完全に同一というわけではありません。当然スプレッドによる誤差があります。しかし、弊社による価格操作などは一切ございません。
takechan : ということは、このデータはインターバンクのレートと限りなく近いデータと考えてよいでしょうか。
おねえちゃん : はい、差し支えございません。
takechan : 今度食事などご一緒にいかがでしょうか。
おねえちゃん : ええ、よろこんで。


004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif004.gif



最後の2行は、私の作り話です。040.gif








さあ、






                今だけの特別価格
                98,500円
     29,800円

a0204254_953656.jpg


                  値上げまで、あと、 

         10日 と 16時間 42分 37.26秒

※本商材はお客様の将来の利益を保証するものではありません。
お問い合わせは、info@takechanまで。
 
                
041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif041.gif







でも、一つ問題があるんです。



一度にダウンロードできるデータ量が限られています。

1分足だと約2週間分、5分足だと約3ヶ月分です。

なので、分割して入手し、データを結合させる必要があります。002.gif



ところで、



よーく考えたら、



NDD方式の業者であること
取引ツールから長期のヒストリカルデータをダウンロード可能であること




という二つの条件さえ満たせば、国内外を問わず、また、メタトレーダー対応非対応を問わず、どこの業者からでも、同様のやり方で、長期で正確なヒストリカルデータを入手できるはずですよね。005.gif

探せば、もっと簡単にデータを入手できる業者があるかも知れません。039.gif



あとは、読者の皆様からの貴重な情報をお待ちしております。040.gif040.gif040.gif


ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2011-12-16 13:50 | メタトレーダー
無料だから仕方ないけど…。



不満がいっぱいです。050.gif



第1に、



なんといっても、スプレッドが広いです。

最近は縮小化傾向にあるとはいえ、まだまだ広いですねー。007.gif



第2に、



異なる通貨ペアや異なる時間足でポートフォリオを組みたくても、ストラテジーテスターでバックテストをするときは、挿入チャートを一つしか指定できないので、検証できません。007.gif



ロシア人にはポートフォリオという概念は無いのだろうか。039.gif



第3に、



一つのメタトレーダーで複数のEAを回すとバグの原因になります。007.gif



第4に、



一つのパソコンに複数のメタトレーダーを入れるとPCが重くなります。007.gif



第5に、



一つのEAに複数のロジックを入れると、プログラムが長くなって、自分でも何が書いてあるのかわからなくなります。032.gif



第6に、



そもそも、MQLは、非常に不便な言語です。020.gif

たとえば、ポジションを決済するだけでも、トレーディングプールから通貨ペアとマジックナンバーの一致するポジションを一つずつ探してきて、決済しなければならないので、

a0204254_1929929.gif


こんなふうに、無駄に長いプログラムになります。042.gif

これに、通信エラー対策のプログラムでも入れようものなら、古代エジプトの象形文字みたいになっちゃいます。





こんな感じですね。






a0204254_1941157.jpg




いつも思うのですが、たとえば、OrderSend()関数で発注するときに、

a0204254_19473979.gif


Pos1に、1000分の1秒単位で日時が記憶されて、これを決済するときは、

a0204254_1951180.gif


みたいに、簡単に済ませないものでしょうか。



第7に、



EAやカスタムインジケーターの名前を変更しようと思って、右クリックするでしょ。

そうすると、



a0204254_2082488.gif



ほらね。

どこにも「名前の変更」がないでしょー。007.gif



第8に、



長期のヒストリカルデータの入手が非常に困難ですね。025.gif

トレードステーションやマネックストレーダーなどは、それぞれの証券会社が責任をもって開発したツールなので、その証券会社のヒストリカルデータがきちんとダウンロードできるみたいですね。

この点、メタトレーダーは、ロシアの変なソフトウェア会社が作ったツールなので、証券会社のヒストリカルデータは、別途、自分で入手しないといけないんですね。

数ヶ月~1年程度のものなら比較的簡単に入手できますが、10年ほどのデータで、かつ、正確なものを入手しようとなると、これがけっこう大変なんですね。

この問題点については、次回、テーマにしたいと思います。



第9に、



バックテストにえらく時間がかかりますね。

とくに、パラメーターを最適化するときなんて、へたをすると、10時間もかかったり…。019.gif



第10に、



挙句に、MT5なんてものが出現しちゃったでしょ~。005.gif

プログラム言語の文法などはほとんど同じかと思っていたら、全然違うみたいだし。

それに、よほど、使い勝手がよくなるかと思ったら、両建てができないから、ますますポートフォリオが組めないじゃんね。



この点については、 豊嶋先生のブログが詳しいですね。




ちなみに、MT4が消えて、世の中MT5だらけになったら、もう、私はメタトレーダーと別れます。








だって、付き合う価値無いもん。



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2011-12-14 21:00 | メタトレーダー
去る10/6に、フォレックス・ドットコム・ジャパンは、山中康司先生を講師に招いて、「カウントダウン注文の注意点」と題して、MT4の特別セミナーを開催しました。


その内容を録画した動画を視聴したい方は、こちらへどうぞ。



セミナーの前半では、これまでの成行注文と今回新たに採用されるカウントダウン注文との違いや、メリット・ディメリットなどについて解説がありました。


セミナーの中で、山中先生が、


DD方式ならばこれまでの成行注文方式、NDD方式ならばカウントダウン方式、というのが普通だ。



という趣旨のコメントをしてらしたのが印象的です。



「じゃー、フォレックス・ドットコム・ジャパンはどうなのよ???」というツッコミまではありませんでした。「いらんことしゃべるなよ!」という事前の指示が主催者側からあったのでしょうか。037.gif




セミナーの後半は、EAの修正ポイントを解説されていましたが、私がこちらで解説した内容とほぼ同旨で、残念ながら、それ以上の情報は得られませんでした。



こういったセミナーの場合、講師としては、当然、主催者側からの指示に従って解説をしているはずなので、私は山中先生ご自身を批判をするつもりはまったくありません。でも、主催者であるフォレックス・ドットコム・ジャパンの企業としての誠意をあまり感じられないセミナーでした。007.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2011-10-12 13:12 | メタトレーダー
ここ最近多忙につき、記事の訂正が遅れまして、ごめんなさい。040.gif


本日は、まず、10/7の記事10/9の記事のどの部分を訂正したのかご説明いたします。


訂正前の記事では、


MyOrderSend()
MyOrderModify()
MyOrderClose()


という三つのオリジナル関数に、いずれも、その最後に、return() 処理が入っていました。


a0204254_949109.gif



いずれも不要な記述なので、削除しただけです。


豊嶋先生の書籍では、一定の条件のときに、break によってwhile文を抜け出す仕様になっているため、最後に、return() 処理が必要になりますが、私の場合は、break によるwhile文の抜け出しをしていないので、最後の return() 処理は不要な記述というわけです。作動上とくに問題はありませんが、見苦しいので削除しました。



ところで、もう一つ悩んでいたことがあります。039.gif


MyOrderModify() 関数のエラー130(Invalid Stops)が出たときの処理方法についてです。


このエラーが出るときには、実は、以下の2つのパターンがあります。


パターンその1(逆転現象)


1ドル=100円のときにロングを注文
99.50円に損切りをつけようとしてもたつく
その間に現在価格が99.49円まで下落
にもかかわらず99.50円に損切りをつけようとする



パターンその2(接近現象)


1ドル=100円のときにロングを注文
99.50円に損切りをつけようとしてもたつく
その間に現在価格が99.60円まで下落
にもかかわらず99.50円に損切りをつけようとする



逆転現象の場合には、当たり前ですが、証券会社によっては、接近現象の場合にもエラー130が出ます。どの程度まで接近するとエラーになるか(これをSTOPLEVELといいます)は、証券会社によって異なります。調べる方法は簡単で、スタート関数内に、


a0204254_1181335.gif



と記述すれば、チャートの左上に、STOPLEVELがピップス単位で表示されます。038.gif


ところで、接近現象によるエラー130の場合には、その後の価格変動によっては、STOPLEVELを脱出し、損切りをつけられる可能性も十分にあります。それにもかかわらずエラー130が出たというだけで決済してしまうのは、ちょっと不本意ですよね。021.gif


そこで、エラー130が出た場合、


接近現象→break によってwhile文を抜け出し、次からのティック変動にゆだねる
逆転現象→直ちに決済



という具合に条件分岐をした方がよいのではないか、と悩んでいたわけです。





しか~し、




フォレックス・ドットコム・ジャパンのSTOPLEVELは、なんと、1PIPなんです。005.gif


したがって、プログラムの変更はしないことにしました。001.gif



ところで、STOPLEVELが1PIPというのは、かなり良心的ですよね。006.gif


これでスキャルパーをたくさん呼び寄せておいて、カウントダウン&DD方式で思いっきりスベらせれば、証券会社としてはボロ儲けできるでしょう。って、takechan、言い過ぎだよ。037.gif



ポチッとやって。ね。ポチッと。029.gif
   ↓
にほんブログ村 為替ブログへ
にほんブログ村
[PR]
by xchsshzo | 2011-10-11 10:51 | メタトレーダー