FC2ブログ

「シストレFXグランプリ」というのが始まるらしい。

クリック証券がシストレFXグランプリというのを始めるそうです。面白そうなのですが、今はちょっと余裕が無いので様子見です。
もし今から作ろうとしても、マトモなシステムが出来るまでには結構時間がかかりそうです。株の自動売買プログラムを書き換えて、FXのレートをAPIで取得する程度の変更で済むのならば何とかなるのですが、問題は24時間動かしっぱなしにする必要があるということで、過去の日中足を取得できるように改良するのがちょっと面倒です(見た目のいいトレード用ソフトウェアを作るセンスは無いので、もし仮にやるならば自動売買での運用を考えています)。
いっそのことMetaTraderを使ったほうが楽かもしれないのですが、MetaTraderはどうもバックテストのスリッページに対する処理が甘すぎるように思えます(結構前に少し触れた時の印象で語っているので今はどうだか知らないのですが)。
これまでの経験で(というか私の性格や癖に依存する問題かも)、自動売買で実際に発生する手数料を甘く見積もると、バックテストでどんなに優れたストラテジーを開発できても、実際にはなかなかうまく行かないことが多いです(勿論、バックテストで手数料以上に稼げるシステムを作ったうえでの話です)。MetaTraderの場合はそこがちょっと心配です。それだったらバックテストだけ自分専用のプログラムを組めばいいのでしょうが、そこまでの余裕が今は無いです。分足のヒストリカルデータを取れるのはとてもいいのですが。
あと、FXの場合は通貨ペアが限られていて、それぞれのペアによって値動きに固有の癖があったり、ドル絡みの通貨ペアだと毎日のように材料が発生するのが厄介だなあと思います。
とはいえ、もしPCをあと一台くらい買ったら、色々なシステムを検証するくらいのことはやってみようかなーと思っています。
スポンサーサイト



GMO-FXのAPIキター

ついさっきGMOインターネット証券にログインしたら、FXのAPIが公開されていました。
FXについてはMetaTrader4で直接発注できる業者にしようと思っていたのですが、お金の出し入れなどの手間を考えると悩むところです。GMOにしておけば資金を即座に株やFXに移すことができるので便利かもしれません。MetaTraderから発注用アプリケーションにメールを送れば間接的にGMOに発注することもできるだろうと思いますが、実際に約定したかどうかをMetaTrader側で確認できないことや、業者間のレートの違いが気になります。
まあ当分先の話ではありますが、IF-DONEやOCOの発注もできるみたいなので色々面白そう(詳細は読んでません。リリースノートを見ただけ)。

【FX】Every tickのティックデータは怪しいかも

Expert AdvisorsをEvery tickで動かしていたところ、1分間に何度もstart関数が呼ばれていることがわかりました。start関数内に「Print(Close[0]);」と書いてみたところ、1分足よりもかなり短いスパンで細かい動きのClose値が得られました。どうやらこれは実際のティックデータではなく、1分足を元にMetaTraderが勝手に補完したティックデータのようです。
補完の細かさは1分足のVolumeに応じて変化するらしく、Volumeが4のときはOpen,High,Low,Closeの値が順次Close[0]に入ってきますが、それよりも大きなVolumeになると、High~Lowの範囲内で適当に幾つか値が挿入されるようになっているようです。Strategy Tester Modes of Modeling during Testing - MQL4 Articlesのページで、その補完の例が示されています。
そのページの下の方に、1時間足を補完して生成した1分足終値と実際の1分足終値を重ねて示していますが、個人的にはちょっと都合が良すぎるデータなんじゃないのかなあ?と思います。動きが滑らかすぎるようにも見え、極端な値動きがあったときにちゃんと対応できるのかどうか、ちょっと疑問に思っています。株の自動売買をやっていても思うのですが、都合の良すぎる約定結果がバックテストに紛れ込むのはできるだけ避けたいです。
杞憂だったら良いのですが、短期の日計りで色々と検証してみると、逆張りの結果が良すぎる傾向にあり(順張りは全然ダメ)、もしかするとこれが原因なのかもしれないと思っています。日を跨いで保有することが多いシステムならばそれほど大きなズレは無いと思いますが、超短期の日計りで1分足を使う場合、現実の値のみを基準にするOpen prices onlyの結果にも目を通しておいたほうがいいかもしれません。

【FX】短期の順張りは難しい?

MetaTrader4を使ってレンジブレイクアウトの短期デイトレを検証していたのですが、どの通貨ペアでも負ける結果になってしまいました。グラフを見るとどれも右肩下がりで、使い物になりそうにありません。自分のスクリプトのバグかと思ったのですが、目で見て確認するとそうでもないようです。
どうやら日経平均先物と為替は全然動きが違うようで、個別株式の自動売買で培った経験も全然役に立ちそうにありません。以前から、為替主体で日経平均先物が動くと個別株の自動売買がうまく行かない場合があって悩んでいたのですが、ザラ場中にFXもやればそういう場合のヘッジになるかもしれないと考えています。

【FX】historical dataを補完

MetaTrader4のデモアカウントを使ってhistorical dataをダウンロードしたのですが、単純なアルゴリズムを動かしてみたところ、幾つかのhistorical dataに欠損があることがわかりました。
調べてみると、GBPJPY,AUDJPY,CHFJPY,GBPCHFでは2006年10月~11月末ごろのデータが欠けています。また、EURJPYでは2000年のデータがかなり欠損しています。USDが絡む通貨ペアは大丈夫そうですが、全部は調べていません。
2006年のデータについてはForex Tester Software - Data SourcesやAlpariのHistory Center for MetaTrader 4からダウンロードして何とか補完したのですが、2000年のEURJPYのヒストリカルデータは探しても見つかりませんでした。
もう7年も前のデータなので、無視してしまってもいいかな?と思っています。

【FX】まずは叩き台さがし

外国為替証拠金取引の自動売買をやってみようと思ったものの、個別の通貨ペアの値動きに関する知識を殆ど持ち合わせていないので、何の手がかりも無い状態です。とりあえずMetaTrader4を使って、各時間ごとのレンジに着目して単純に売買するプログラムを書いて、それを色々な通貨ペアでバックテストしています。MetaTrader4には自作プログラムの変数を少しずつ変えて繰り返しバックテストをする機能があるのでとても便利です。これだけで手作業の時間がかなり少なくなっています。
テストはまだ途中の段階ですが、とりあえず日経平均先物に利用できるようなアルゴリズムを為替に適用しても多分ダメなんじゃないかと思います(ギャップとか生じないし)。まずは通貨ペアごとの色々な傾向を調べて、それを元に叩き台となるようなシステムを作っていこうと考えています。しかし、その叩き台を見つけるまでに相当な時間がかかりそうです(それまでに株の方のスイングについてもうちょっと色々検討したほうがいいかも)。

【FX】MetaTrader4をインストールした

ふと、随分前にやっていたFXで自動売買みたいなことをやってみようかと思って、MetaTrader4をダウンロードしました。
2005年の2月ごろに、EXCELを使って幾つかの通貨ペアの5分ごとのティック値を自動取得して、それに基づいて売買シグナルを出したりしていたことがあったのですが、その当時はまだ手数料無料の証拠金取引があまりありませんでした。私が使っていたのはひまわり証券の手数料無料コースだったのですが、そのコースは日を跨いで取引できず、スワップも無いというものでした(あれから随分経つので今はどうなってるか知らない)。デイトレに限定してやれば何とかなるだろうと軽く見ていたのですが、重要指標の発表時はスプレッドも広がるしサーバーも落ちるし注文もろくに通らないような状況だったので、結局その当時は諦めました。毎日のように発表される指標の影響でテクニカルがあまり役に立たないと感じたのもやめた理由の一つで、FXの自動売買で稼ぐのは株と比べるとかなり難しそうだという印象を持っています。
MetaTrader4は、以前試しに使ってみたときよりもだいぶ使い勝手が良くなっている気がします。使い方を色々日本語で説明されているサイト様もかなり増えています。過去の分足データも簡単に入手できるようなので、これを使ってストラテジーを練ってみようと思います。株の自動売買でうまく持ち越せない問題をFXで解決できればいいなあと思っていますが、多分あんまりうまく行かないと思います。
MT4を扱ってる業者は殆ど海外の業者で、日本語サポートありの業者だとExpert Advisorsが動かないように設定されていることが多いらしいというのが難点です(金融商品取引法の影響らしい)。