2008年7月 2日 (水)

自動売買を手のヒラに FASTA

クリック証券で新しい完全自動売買を行うためのサービスが始まりました。

 FASTA

完全自動売買といってもプログラムを記述する必要なく、次のような画面で条件等を設定して行くだけでシステムが作成できてしまうというツールです。

Fasta

MetaTrader4や、DealBook360等で敷居の低くなった自動売買化ですが、それでもプログラムを記述するためには勉強する必要がありました。FASTAはプログラムがでてきませんので、さらに自動売買までの敷居が低くなる画期的なツールです。

現在はまだパイロット版という事でデモ取引のみで利用可能ですが、今後期待大のサービスです。

それにしても自動売買のWebサービスといい、今回のFASTAといい、クリック証券は自動売買サービスの構築にかなりお金をかけているみたいですね。国内で一番熱い取引会社かもしれません。

よろしければどうぞ > クリック証券

Title

| | コメント (2)

2008年6月 5日 (木)

シストレFXグランプリ開始

今週初めからようやくシストレFXグランプリが開始されましたね。

Logo

デモアカウントを持っていると、これまでクリック証券に口座を持っていないと利用できなかった、Webサービスを使った完全自動売買システムが無料で作成できるようになります。

利用方法はデモアカウントでログインしたあとに、「各種サービス」から「Webサービス」を選択します。次のような画面が表示され、Webサービス開発キットが入手できます。

Photo

あとはWebサービスの仕様にしたがいアプリケーションを作成するだけです。これが割りと難しいのですが・・(^^;

高島社長特別賞1000万円を目指してがんばりましょう!!

| | コメント (0)

2008年5月22日 (木)

シストレFXグランプリ受付開始

いよいよシストレFXグランプリの受付が開始されました。

シストレ部門ではクリック証券のWebサービスを利用したシステムトレードの結果を競うことができます。今までWebサービスのAPIはクリック証券に口座開設しないと仕様がわからなかったのですが、本グランプリに登録すればAPIの仕様書がダウンロードできるようです。

これで誰でもグランプリの参加できる準備整いましたね。

この大会で好成績を収めて「高島社長特別賞」を受賞した場合、シストレソフトの買い取り額はなんと1000万円。誰が手中にするのでしょうか。

| | コメント (0)

2008年4月29日 (火)

クリック証券 信託保全開始

4月25日よりクリック証券で信託保全サービスが開始されました。

クリック証券といえば、Webサービスを使った完全自動売買システムの構築が可能で、シストレFXグランプリ(記事はこちら)の計画もあり、かなりホットな取引会社です。

高機能なシステムが提供されるだけでなく、資金の安全性も保障されることで、ますます完全自動売買運用に適した環境になってきたと思います。

詳しくはホームページから、ニュースメニューのお知らせをご覧ください。

>>クリック証券

| | コメント (0)

2008年4月22日 (火)

シストレFXグランプリ

シストレナビでおもしろい記事が載っていました。

6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催

内容はクリック証券のWebサービスを利用したシステムトレードの結果を競うグランプリということです。

賞金総額2000万円、シストレソフト部門賞1位300万円。これは腕の見せ所ですね。

当ブログでも以前、クリック証券のWebサービスを利用した自動売買システムの構築方法について、サンプルアプリケーションを作成しています。参加される方には、参考になるかと思います。

記事はこちら>クリック証券Webサービス

まだ参照系しか紹介していませんでしたが、ポジションの構築等のサンプルプログラムも随時記事にしたいと思います。お楽しみに^^

グランプリ開始は6月2日です。また、Webサービス開発キットを持っていない方は、今のうちにクリック証券から入手してください。
クリック証券

| | コメント (2)

2008年2月 5日 (火)

Webサービス入門 レート一覧アプリの作成(5)

クリック証券Webサービスを用いたFX向け完全自動売買システム構築入門(5)です。
※Webサービス開発キットをもっていない方はクリック証券から入手してください。

前回までの記事で、ログイン画面がようやく作成できました。今回からはいよいよレート一覧の取得処理を作成したいと思います。

完成後のイメージはこんな感じです。

Ratelist

ログイン後に、レート一覧ボタンを押すと、レート一覧が取得できるというロジックです。

さて、それでは早速作成していきましょう。前回までのログイン画面を拡張します。各コントロールを貼り付けて、次のようにしてください。(後述のサンプルプログラムのためにNameプロパティも記載しますが、もちろんどのような名称にしても構いません。)

Ratelist_vs

(1)レート一覧表示用のリストビュー(listview)
 レート一覧を表示します。取得できる情報を全て一覧に表示させるために、「通貨ペア」「Bid」「Ask」「前日比」「高値」「安値」「売スワップ」「買スワップ」「発生日」「付与日数」の10種類を定義してください。なお、詳細画面表示にしますので、ViewプロパティをDetailsにするのをお忘れなく。
 Name:rateListView

(2)レート一覧取得 ボタン
 ボタンを押下すると、(1)のリストビューに、レート一覧を表示します。
 Name:rateButton

これで、必要なパーツは揃いました。次回より、順にレート一覧を取得する処理を実装していきたいと思います。

では次回をお楽しみに^^

| | コメント (4)

2008年1月15日 (火)

Webサービス入門 レート一覧アプリの作成(4)

クリック証券Webサービスを用いたFX向け完全自動売買システム構築入門(4)です。
※Webサービス開発キットをもっていない方はクリック証券から入手してください。

前回の記事では、共通的に利用するメソッドを作成しましたが、今回はそれらを利用してログイン、ログアウトの処理を実装します。今回でログイン画面は完了です。

(1)まず、最初にフォームのクラス内にメンバ変数を記述します。次のprivateメンバ変数を定義しておいてください。このメンバ変数はクッキーを保持するためのオブジェクトになります。ログイン時に取得して、その後のWebサービスアクセス時に利用します。

CookieContainer cookie = new CookieContainer();

(2)それでは、ログインボタンをクリックした時のClickイベントに、次のように記述してください。

private void loginButton_Click(object sender, EventArgs e)
{
  string url = this.baseUrlTextBox.Text
    + "ws-login?j_username=" + this.userIdTextBox.Text + "&"
    + "j_password=" + this.passwordTextBox.Text;
  XmlDocument retval = WebServiceRequest(url, cookie);
  this.messageTextBox.Text = GetMessage(retval);
  if (IsSuccess(retval) == false)
  {
    MessageBox.Show("ログインに失敗しました");
    return;
  }
}

url変数にログインするためのURLを格納しています。このときにGETパラメータでユーザ名とパスワードを指定するようにします。※URLの詳細はWebサービスのマニュアルを参照してください。

作成したURLにWebServiceRequest()メソッドでアクセスします。同時にクッキー(Cookie)も渡していますが、ログインに成功するとこのクッキーが取得できます。

戻り値として受け取ったXMLレスポンスからGetMessage()メソッドを使ってメッセージを表示すると同時に、IsSuccess()でログインの可否を判定します。もちろん、ユーザ名やパスワードが間違っているとログインに失敗します。

(3)最後にログアウトボタンをクリックした時のClickイベントは次のように記述します。

private void logoutButton_Click(object sender, EventArgs e)
{
  string url = this.baseUrlTextBox.Text + "ws-logout";
  XmlDocument retval = WebServiceRequest(url, cookie);
  this.messageTextBox.Text = GetMessage(retval);
  if (IsSuccess(retval) == false)
  {
    MessageBox.Show("ログアウトに失敗しました");
    return;
  }
}

url変数にログアウトするためのURLを格納しています。その後の処理はログイン処理と同じになります。

このように利用するWebサービスのURLを変更するだけで処理を変える事ができるのが、このシステムの特徴です。

では、実際に動かして見ましょう。(事前にサーバを起動させておいてください)

(1)URL、ユーザID、パスワードを入力して、ログインします。Authentication Successとメッセージが戻りましたのでログインに成功しました。

Login

(2)ログアウトボタンを押してログアウトします。今度はLogout Success.とメッセージが戻りましたのでログアウトに成功しました。

Logout

どうでしょうか。上手く動いたでしょうか?

前回で共通的なメソッドを作成していたため、ログイン/ログアウトの処理が非常にシンプルになりましたね。これらのメソッドはレートを取得したり注文を行うときにも共通的に使うことが出来ます。上手く利用してください。

作成したプログラムはこちらからダウンロードできるようにしておきました。もし、わからない方はこちらを使って見てください。「login-sample.lzh」をダウンロード

さて、基本的なログイン/ログアウトの処理はできましたので、次回からはレート一覧を取得できるように改造していきたいと思います。お楽しみに^^。

| | コメント (2)

2008年1月11日 (金)

Webサービス入門 レート一覧アプリの作成(3)

クリック証券Webサービスを用いたFX向け完全自動売買システム構築入門(3)です。
※Webサービス開発キットをもっていない方はクリック証券から入手してください。

前回の記事では、ログイン画面を作成しましたので、今回からログイン処理を作成したいと思います。かなり難しくなりますのでわからない場合はWeb等で調査してください^^。

ログイン処理に限らず、全てのWebサービス処理では、まずサーバに対してhttpリクエストを行います。応答がXMLで返されるため、XMLを解析してリクエストが成功したか失敗したかを判断します。

またリクエスト時にはログイン処理で取得したセッション(実体はCookie)を保持しておき、httpリクエストする際にセッションを示す必要があります。

このあたりの処理は共通的なので、次のような汎用的なメソッドを作成しておきます。なお事前にSystem.Net、System.Xml、System.IO名前空間をusingして置いてください。

(1)サーバに対してWebサービスをhttpリクエストし、結果をXMLで受け取る。

private XmlDocument WebServiceRequest(string url, CookieContainer cc)
{
  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  req.CookieContainer = cc;
  using (StreamReader sr =
          
new StreamReader(req.GetResponse().GetResponseStream()))
  {
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.LoadXml(sr.ReadToEnd());
    return xmldoc;
  }
}

引数はURLと、クッキーオブジェクト(CookieContainer)です。

HttpWebRequestクラスを利用するとURLとクッキーオブジェクトを渡してHTTPリクエストすることができます。結果はGetResponseStream()メソッドでストリームとして取得できるので、XMLオブジェクト(XmlDocument)に格納して戻り値として返しています。

※エラー処理等は省略しています。実際にロジックを組む場合は考慮してください。

(2)結果のXMLを解析し、処理が成功か、失敗かを判定する。

private bool IsSuccess(XmlDocument xml)
{
  XmlNodeList nodes = xml.SelectNodes("/*/responseStatus");
  if (nodes.Count > 0) {
    if (nodes[0].InnerText.Equals("OK"))
    {
      return true;
    }
  }
  return false;
}

引数に結果として取得したXMLを与えます。成功ならtrue、失敗ならfalseを返します。

成功か、失敗かというのはXML内のresponseStatusに格納されており、成功ならOKが入ります。SelectNodes()メソッドでXPathを指定できますので、XMLノードを取得してOKかどうかを判断しています。

XMLに慣れていないとちょっと難しいかも知れませんね(^^;

(3)結果のXMLを解析し、処理結果のメッセージを取得する

private string GetMessage(XmlDocument xml)
{
  XmlNodeList nodes = xml.SelectNodes("/*/message");
  if (nodes.Count > 0)
  {
    return nodes[0].InnerText;
  }
  return "";
}

引数に結果として取得したXMLを与えます。戻り値にはサーバから返された処理内容を示すメッセージが返ります。

メッセージはXML内のmessageに格納されていますので、(2)のメソッドと同じようにXPathを使って値を取得します。

このメッセージは必ず取得する必要はないのですが、常にアプリケーションで表示するようにしておけばユーザにも処理内容がわかりやすくなるので、少しユーザビリティが向上するようになります。

さて、これらの3つのメソッドを使ってログイン処理を実装していきます。
基本的な流れは、
(1)のメソッドでサーバにリクエストを行い、XMLレスポンスを取得し、
(2)でリクエストの成功可否をチェック、成功ならば
(3)でメッセージを取得してアプリケーションに表示、その後XMLレスポンスに応じた処理を実施する。となります。

では次回実際にそのような処理を組んでみます。
次回をお楽しみに^^。

| | コメント (0)

2008年1月 8日 (火)

Webサービス入門 レート一覧アプリの作成(2)

クリック証券Webサービスを用いたFX向け完全自動売買システム構築入門(2)です。
※Webサービス開発キットをもっていない方はクリック証券から入手してください。

為替のレート情報を取得したり、注文を発注したりするためには事前にサーバにログインする必要があります。もちろんログインにはクリック証券のアカウントが必要です。

ログインを実行した後に、セッションをアプリケーション側で保持しておき、セッションを利用してWebサービスを実行するという流れになります。事前にログインしておかなければ、全てのWebサービス要求はエラーとなりますので注意ください。

では、まずは今回からログイン処理を実装してみたいと思います。

Microsoft Visual C# 2008を起動して、プロジェクトを作成してください。プロジェクトには「Windowsフォームアプリケーション」を選択します。

Newproject

次にログインに必要なコントロールをフォームに並べて行きます。今回は必要最小限の次の4つを配置しました。(後述のサンプルプログラムのためにNameプロパティも記載しますが、もちろんどのような名称にしても構いません。)

Form1

(1)ベースURL入力用のテキストボックス
 アクセス先のURL(ベースアドレス)を入力するためのテキストボックスです。
 Name:baseUrlTextBox

(2)ユーザID 入力用のテキストボックス
 ユーザIDを入力するためのテキストボックスです。
 Name:userIdTextBox

(3)パスワード 入力用のテキストボックス
 パスワードを入力するためのテキストボックスです。PasswordCharプロパティで*を設定しています。
 Name:passwordTextBox

(4)ログイン ボタン
 ボタンを押下すると、(1)(2)の情報をもとに、ログインを行います。
 Name:loginButton

(5)ログアウト ボタン
 ボタンを押下すると、ログアウトを行います。 
 Name:logoutButton

(6)メッセージ表示エリア
 Webサービス要求後の応答メッセージ(文字列)を表示するためのテキストボックスです。
 Name:messageTextBox

これでログインに必要なパーツが揃いました。次回は実際にログイン処理を実装したいと思います。ちなみに実装については、Httpリクエスト、XMLの知識が必要になりますので、もしわからない場合は事前に勉強しておいてください(^^;

では次回をお楽しみに^^。

| | コメント (2)

2008年1月 4日 (金)

Webサービス入門 レート一覧アプリの作成(1)

年明け早々ですが、クリック証券Webサービスを使ったFX向け完全自動売買システムの構築方法についての連載を開始したいと思います。

まずは参照系のアプリケーションとして、Webサービスを使ったレート一覧取得アプリケーションを作成しましたので、作成方法を順に説明して行きます(年末年始の時間を利用して作りましたw)。

それなりに複雑なアプリケーションになったので、何回かにわけて少しづつ説明していきたいと思います。完成系はこのような感じです。

Webapl

「ログインボタン」でサーバにログインを行い、その後「レート一覧取得ボタン」でレート一覧をサーバから取得して、アプリケーションで表示します。典型的なWindowsアプリケーションです。

とりあえずこのくらいのアプリケーションが作れれば、Webサービスの利用方法が理解できるかと思います。

Webサービスは汎用的なので、アプリケーションの構築にはどのようなプログラミング言語を利用しても良いのですが、せっかくですので最近リリースされたばかりのVisual Studio 2008(.NET Framework 3.5)を使っています。

まずは、次のページからMicrosoftからVisual Studio 2008 Express Editionをインストールしてください。利用する開発言語は「C#」を使いますので、Visual C# 2008を選んでください。

http://www.microsoft.com/japan/msdn/vstudio/express/

※Express Editionは無料なので商用利用できるかはわかりませんが、とりあえず個人的に利用する分には自由に使えると思います。

それでは次回からアプリケーションの作成を具体的に説明していきます。乞うご期待ください^^

| | コメント (0)