為替ロボット 研究所

2005年08月20日

用意するソフト

用意するソフトは、

フリーソフトです。

リンク先のDownloadsから、MetaTrader4 Client Terminalをダウンロードして下さい。
インストールはそのまま適当にどうぞ。

インストールして最初の起動時にデモ口座の登録画面が現れますので、サクっと入力して下さい。
入力は全て英語です。
住所などは適当でもよさそうですが、入力チェック機能が働いているので、住所は番地の「-」を、メールは「@」と「.」を入れる必要があります。
郵便番号も7ケタ入力します。
フォームの一番下の欄ではデモ口座の初期残高(Deposit)と保証金率(Leverage)を変更できます。
デモ口座はあとで何個でも追加することが出来ますので、とりあえずは初期値のままでも大丈夫です。

*デモ口座のアカウントは有効期限が一ヶ月で、それを過ぎるとログインできなくなります。その時は「Open an account」で新たにアカウントを作り直して下さい。


MetaTrader4(以下、MT4)は売買シグナルを検出して、
オーダーを出すことができる、高機能なチャートソフトで、
売買シグナルをどのように出すかを自由にプログラミングすることができます。
過去のデータを使ってバックテストも可能です。

MT4にはシグナルをメールで送信する機能があり、売買シグナルをメール配信したり、
モブログで売買履歴を公開したりという使い方もできます。


投稿者 kawarobo : 23:51 | コメント (8) | トラックバック

2005年08月21日

エキスパートアドバイザーを使ってみよう

01起動 02閉じる 03EURUSDチャートを開く それでは実際にMT4を使ってみましょう。

MT4を起動します。

見やすくするため、開いているチャートを全て閉じ、
新たにEURUSDのチャートを開きます。

「H1」というボタンで一時間足チャートに切り替え、虫眼鏡に+が入ったボタンで表示を拡大、
ロウソク足が描かれたボタンでチャートの表示をロウソク足にします。

(その他、語句や使い方の説明は、MetaTrader4入門にて)
04一時間足ロウソク足にする


06エキスパート適用

07エキスパート設定


次はMT4で自動売買の肝となる機能、エキスパートアドバイザーを使ってみましょう。
今回はサンプルプログラムとして入っている、MACDSampleというエキスパートを使います。

NavigatorウィンドウのExpertAdvisorsにある
MACDSampleをEURUSDチャートにドラッグ。

Allow Live tradingにチェックを入れます。
OKでウィンドウを閉じ、EURUSDチャートの右上のマークを確認します。
ここがニコマークになっていればエキスパートが動作中です。

マークがx印の場合は動作していません。
08エキスパート不可状態

Enable Expert Advisorボタン
を押して動作させてください。
09エキスパートOK


あとは立ち上げたまま放っておくだけで、MACDSampleで設定されているルールどおりに、自動的に売買を行います。
では、このMACDSampleでどれくらいの収益が見込めるのか、過去のデータを使ってバックテストしてみましょう。



投稿者 kawarobo : 00:01 | コメント (0) | トラックバック

ストラテジーテスターを使おう

10テスター開く

11テスター画面

12テスト終了

13結果レポート

14結果グラフ

15everytickに

MT4には「ストラテジーテスター」という、バックテスト機能が備わっています。
(これは、過去の為替データを使って売買シミュレーションをするものです)

EURUSDのチャートを右クリックでメニューを出し、
Expert Advisors > Strategy Tester

テスター画面を開きます。

「ExpertAdvisor」がMACDSample、「Symbol」がEURUSD、「Period」がH1、「Model」がOpen prices onlyになっていることを確認してStart。

あっという間にテストが終わりました。
Reportをひらくと、結果は +227.95$。かろうじてプラスですが、Graphを開いてみるとあまり良い感じではありません。ランダムに上がったり下がったりしていて、たまたまプラスの所でテストが終わっただけという印象です。

今のテストは一時間足の始値だけの荒いデータを使った簡易的なものでしたので、もっと細かいデータを使った詳細なテストをしてみましょう。
「Model」をEvery tickにしてStartを押します。これは一時間足の4本値の他に、30分足や15分足などより細かい足のデータ全てを使ってシミュレーションを行うものです。

先ほどよりかなり時間をかけてテストが終了しました。
結果は-777.10$。残念ながらこのままでは使えそうにありません。



投稿者 kawarobo : 00:04 | コメント (0) | トラックバック

パラメーターを最適化する



プロパティ画面開く

16inputs画面

17Openlevel変える

18結果レポート
 
 
 
プロパティ画面開く

パラメーターの値が良くないのかもしれません。
値を変更して、もう一度試してみましょう。
テスター画面のSettingsタブを開き、ExpertPropertiesボタンを押します。(画像参照)
Inputsタブを開き、パラメータの入力画面になります。

MACDOpenLevelは3になっていますが、これを5に変えます。
数字の部分をダブルクリックすると入力可能になりますので
と入れ、Enterで確定します。

OKでInputs画面を閉じて、もう一度テストをスタートします。
Modelは「Every tick」です。

結果、-205.35$と多少改善しました。


もう一度パラメータを変更してテストしてもいいですが、いろいろな組み合わせを手動で試すのは大変面倒ですので、最適化機能を使ってみましょう。
再度、テスター画面の「Expert properties」ボタンでInputs画面を開きます。

19最適化入力
MACDOpenLevelのStart欄を3から1に変えます。すると左のボックスにチェックが入り、Stepが1、Stopが6に変わります。
これは、MACDOpenLevelの値を1(Start)から1(Step)ずつ増やしながら、6(Stop)まで、テストを繰り返し行なうという設定です。(1から6まで、合計6通りのテストを行ないます。)

20最適化入力完了

同じようにMACDCloseLevelのStartを1、Stepを1、Stopを5にします。
こうすると、MACDCloseLevelの値も1から5まで、順に変化させながらテストされますので、MACDOpenLevel6通りxMACDCloseLevel5通り=合計30通りのテストが行なわれます。

さらにMATrendPeriodのStartを26、Stepを26、Stopを104に変えます。

MATrendPeriodは26から26ずつ増やして104まで、4通りですので、MACDOpenLevel 6通りxMACDCloseLevel 5通りxMATrendPeriod 4通り=120通りのテストということになります。

21最適化チェック入れる

OKで画面を閉じ、右側にあるOptimizationにチェックを入れます。
テスト時間短縮のために、ModelをOpen prices onlyに変えておきます。
Startでテスト開始。

22最適化完了
終了したらOptimizationResultsを開いてください。結果がプラスになったものが列挙されています。(結果マイナスのものは表示されません)
一番結果が良かったのは、利益+1108.20$で、そのときのパラメータはMACDOpenLevel=4,MACDCoseLevel=3,MATrendPeriod=78でした。

23最適化結果グラフ

OptimizationGraphから、パラメーターの組み合わせと利益の変化をグラフで見ることが出来ます。
それぞれのポイントにマウスカーソルを合わせると、そのときのパラメータがポップアップ表示されます。
(ここでも結果マイナスのものは表示されていません。マイナス分も表示させたい場合は、OptimizationResultsタブを開き、画面内で右クリック、SkipUselessResultのチェックを外し、再テストします。)

24最良のパラメ適用

25Everytickでテスト

一番結果の良かったものについて、詳細なテストをしてみましょう。
OptimizationResultsから一番上の結果を右クリック、Set Input Parametersをクリックすると、このときのパラメータが自動的に入力されます。
Settingsタブを開いて、ModelをEvery tickにし、Optimizationのチェックを外してから、Start。

結果、約701.15$のプラスという成績になりました


投稿者 kawarobo : 00:05 | コメント (3) | トラックバック

結果を確認


26結果レポートReportタブを開き、テスト結果の詳細を確認します。 結果で重視されるのがトレード数と勝率、勝敗それぞれの収益率、あとは最大ドローダウンでしょうか。 (結果の見方はこちら)

特に、いくら最終利益が高くても、Max drawdownが大きいと資金曲線が乱高下していることになるので安定した収益が期待できません。
今回は最終利益701$に対し、最大ドローダウンが1869$もあり、少し大きすぎます。
パラメーターをもっと最適化するか、売買ルールを改良するなどして、もっとパフォーマンスを上げる必要がありそうです。

27結果グラフ一応、グラフでも確認してみましょう。Graphタブを開くと資産曲線のグラフを見ることが出来ます。
最終的に上がってはいますが、かなり荒い感じは否定できません。
トレード数が182回とそれほど多くないので、もう少し長いスパンでもテストしてみたいところです。


投稿者 kawarobo : 00:06 | コメント (0) | トラックバック

2005年08月29日

為替ロボットの作り方(FXCM用) はじめに

それでは為替ロボット、略してカワロボを作ってみましょう。

ここでは、FXCMのデモ口座でシステムの運用を開始するまでの手順を紹介します。

*このシステムではFXCMのデータを取得できないため、MT4のレートにのみ基いてシグナルを発生し、MT4からFXCMに対して一方的に、売りや買いのオーダーを出す仕組みになっています。そのため、実際にFXCMで約定するレートはMT4の表示値と数pips程度異なっており、スキャルピングとよばれるような薄い利益を繰り返し狙う手法には使用できません。

【ながれ】

  1. 売買ルール(戦略)を決める
  2. プログラミングをする
  3. バックテストをして戦略を調整する
  4. 運用開始

【用意するもの】

以下のソフトをダウンロード、インストールして下さい。
全てフリーソフトです。

HyperOrder(以下、HO)はダウンロード前にフォーラムへの登録(無料)が必要です。HOダウンロード手順

BlackJumboDog はリンク先一番下の「BlackJumboDog イントラネット用簡易サーバ 3.8.3」をダウンロードして下さい。

HOはメールサーバからメールを受信し、そのメールの内容に沿ってFXCMにオーダーを自動的に出す機能を持っています。
売買シグナル発生時にMT4がメールを送り、HOで受信して売買注文を実行します。
BlackJumboDogはメールサーバーとして、MT4とHOの仲介をしてもらいます。


【前準備】

取引に使用するFXCMのデモ口座を作っておきます。
↓のバナーから登録しますとIDとパスワードがメールで届きます。
468*60


投稿者 kawarobo : 00:10 | コメント (0) | トラックバック

2005年08月30日

売買ルール

【売買ルールを決める】

この売買ルールを決める手順は成績を左右する非常に重要な部分ですが、
まだ「これだ!」という投資手法が決まっていなければ、人から聞いたり、
本で見た方法、ふと思いついたものをどんどん試してみるほうが面白いと思います。
それで見込みがありそうなら、さらに磨いていけば良いでしょう。

 [ルール概要]
入門編ということで、基本中の基本、ゴールデンクロスとデッドクロスを試してみることにします。

ゴールデンクロス(以下GC)とデッドクロス(以下DC)の定義の仕方は人によって若干違うところがあるようですが、ここでは
 ・移動平均線の短期線が長期線を上回った瞬間がGC
 ・短期線が長期線を下回った瞬間をDC
 ・GCなら買いシグナル、DCなら売りシグナル
とします。


投稿者 kawarobo : 01:49 | コメント (5) | トラックバック

2005年10月20日

取引履歴を公開する方法

MT4での売買の状況を、自分のサイトで公開することが出来ます。

現在のポジションや、これまでの取引履歴、残高などが簡単に見れるので、外出先から自動売買の状況を確認することができます。

また、自動売買・手動売買に関係なく使えるので、ブログで自分の売買を公開したいというときにも非常に便利だと思います。(5分ごとに更新されるので、ほぼリアルタイムに取引状況を公開できますね)

MT4のPublisherという機能を使うと、statement.htmという取引履歴ページを自動的に作成し、ホームページにアップしてくれます。
こんな感じですhttp://kawarobo.fc2web.com/statement.htm
(これは例なので更新していません)

自分のホームページをもっていない場合は、無料で使えるfc2がよさそうです。

<設定方法>
①MT4のメニュー
 Tools>Options>Publisher
を開きます。
②Enableにチェックを入れて、AccountにMT4のアカウント番号を入力します。
③履歴ページをアップしたいサーバーの、FTPサーバー、FTPパス、ログイン名、パスワードを入力。
「Passive mode」のチェックは無しです。
④Refresh every~minutesで履歴ページを更新する頻度を決めます。最短は5分です。

 例)


Testボタンを押して、履歴ページが正常にアップされているか確認します。
正常なら「Report was successfully queued!」のメッセージが出て、statement.htmファイルがアップされているはずです。
上の設定例(FC2Web)では http://kawarobo.fc2web.com/statement.htm に履歴ページがアップされます

これで②で指定したアカウントの取引履歴が自動的にアップされるようになります。


取引履歴のページが英語で見にくい、味気ない、という場合にはテンプレートを編集すると良いでしょう。
MT4のインストールフォルダにあるtemplatesフォルダを開いてください。
(C:\Program Files\MetaTrader 4\templates)
ここにある statement.htm が取引履歴ページのテンプレートになっています。
これをメモ帳やエディタなどで開いて、自分で見やすいように編集します。
*編集前にファイルのバックアップをとっておいたほうが良いと思います。

 テンプレートの仕組みはブログなどと同じような感じで、<!-- -->で囲まれた部分に実際のデータが挿入されます。
 テンプレートで 「現在残高 <!--EQUITY-->」 と書くと、
 「現在残高 5226.88」 のように表示されます。
 
テンプレート例:(ファイルを解凍してできるstatement.htmをtemplatesフォルダに上書き)
 ・手抜き日本語化 テンプレート表示例
 ・詳細履歴(英語) テンプレート表示例
 ・現在のポジとオーダーのみ テンプレート表示例


投稿者 kawarobo : 12:43 | コメント (0) | トラックバック