« 2008年1月 | トップページ | 2008年3月 »

2008年2月27日 (水)

ChartStudio入門 (11) トレンドラインの角度を求める

ChartStudio入門(11)です。
※ChartStudioをもっていない方はDealbook360(サザインベストメント)を入手してください。

前回の数学関数(記事はこちら)を使ったサンプルを紹介したいと思います。

割と良く聞くのが、移動平均線などのトレンドラインの角度を求めたいというような需要です。それでは角度を計算して見ましょうか。角度を求めるにはatan()関数を利用します。

まずatan()関数について簡単に説明しておきます。

三角関数のうちtan(タンジェント)の逆関数がatan(アークタンジェント)になります。次の図を見てください。

Atan

緑色の三角形の底辺がx、高さがy、角度をθとしたとき、tanθ=y/x が成り立ちます。これに対する逆関数tan−1(y/x)=θとして表されます。ここでtan−1というのは、アークタンジェント、つまりatanの事です。

θ=atan(y/x)

yの数と、xの数がわかれば、θ(角度)を求める事ができるという事です。ただし、ここでθは単位がラジアン(-π/2~π/2)ですので注意してください。

さて、それでは次のような移動平均線(トレンドライン)に当てはめて考えてみましょう。

Trend

θを求めたいと思います。xはチャートが表示しているタイムフレームの時間です。例えば1時間足なら1時間となります。yは価格差です。例えば始点の時点が100.00で、終点が100.10であったなら、yは0.10となります。

ここで一つ重大な落とし穴があります。x(時間)とy(価格)の単位が異なっているからです。これでは角度を求める事なんてできませんね・・。では単位を揃えましょう。

xはタイムフレームの時間と書きましたが、これを価格に合わせます。といっても時間->価格になんて変換することはできませんので、チャートを見てxの長さを価格で目視算出する必要があります。上記の例でいくと、yが0.10なら、だたい同じくらいとして、xも0.10で計算するというように半ば強引な変換が必要なんですね。

さて賢明な方ならこの時点で気づいたかと思いますが、xを目視で算出している以上、実際のシステムにはあまり役には立ちません。なぜならチャートを拡大、縮小すればxの長さは変わるからです。角度を求めるというのは一見簡単そうですが、実はチャートにおいて角度というものは表示している状況によって変わるものなので、算出することは難しいのです。

とりあえず、ここでは拡大・縮小などを使わずに決められた縮尺で、かつ決められたタイムフレームで限定して使うという前提で計算したいと思います。次は移動平均線の角度を表示するインディケータです。

indicator test-1;
input period = 25;
draw line("test-1");
vars pos(number),ss(series);
begin
  ss := sma(close, period);
  for pos := (front(close) + period + 1) to back(close) do begin
    line[pos] := atan((ss[pos] - ss[pos-1]) / 0.10) * (180 / 3.14);
  end;
end.

atanを使って角度を求めています。ssは単純移動平均線でposとpos-1(現在バーと、一つ前のバー)の差分をy、0.1がxとしています。また、atan()で求めるのはラジアンですので、180/πをかけて角度(-180°~180°)に変換しています。

なお、xの長さを0.1と固定していますので、xがレートの0.1と同じ長さになるようにチャートの拡大、縮小でサイズを合わせてください。私はドル円のチャートで1時間足を基準に作成しました。

チャートに適用したイメージは次のようになります。

Test_ind

チャートの下ウィンドウに表示されているのが移動平均線の角度です。-30°から30°くらいまでトレンドに合わせて変化している様子が見て取れます。角度が急な箇所がトレンドの勢いがもっとも強いところになっています。

このような角度を利用したシステムもできるかもしれませんね。ただしチャートの表示は固定で使う必要がありますが・・(^^;

| | コメント (0)

2008年2月22日 (金)

ChartStudioヘルプ日本語訳公開

サザインベストメントで提供されているDealBook360は、本家GFTのDealBook360より若干古いバージョンになります。

GFT版 バージョン2.10.927.21

サザ版 バージョン2.8.918.12.1

どうやらATSを利用して自動売買させるには、GFT版の方が良いそうです(知らなかった・・)。どのように違うのかというのが、こちらのページに記載されています。またGFT版の日本語マニュアルも提供されています。

Chart Studioヘルプ 日本語版

ひとつ気になったのは新しいバージョンで組み込まれている入力/出力関数。ファイルを読み込んだり、書き込んだりできると思うのですが、使い方はよくわかりません。もしファイルの入出力ができるのなら、かなりプログラミングの幅が広がりそうな気がするのですが・・。

ただし一つ注意点としては、今まで動作していたシステムが、新しいバージョンで動作しなくなる可能性があるそうです。上手く、下位互換をサポートできていないみたいですね。

また新しいバージョンを入れて見て色々と動作検証してみたいと思います^^。

| | コメント (4)

2008年2月18日 (月)

e-Taxについて

確定申告の時期になりましたね。

いつも確定申告になると何日もかけて家中をひっくり返して資料を探したり、整理したり、なにかと大変な思いをしているので、今年は

「オンラインでらくらく国税電子申告・納税システム」

という触込みのe-Taxを試して見る事にしました。

ところが、、、

1時間ほどで挫折しました・・・(^^;

どこが「らくらく」なんでしょうか・・・?

私はプログラマーなので、ITに関してはそこそこプロフェッショナルでやってますが、それにしてもe-Taxはかなり敷居が高いと思いました。

まず、用語です。

電子署名、電子証明書、ルート証明書、信頼済みサイト、SSL、暗号化、などなど。IT業界のなかでも、全てを正しく説明できる人なんて稀だと思います。ましてやIT業界以外の方では単語を聞いただけで敷居がかなり高く感じるのではないでしょうか。これではやる気も起きません。

次に手順が複雑すぎるうえに、マニュアルが多すぎる。

e-Taxのホームページを見ればわかると思いますが、マニュアルがかなり多いです。e-Taxとは?導入マニュアル、ルート証明書マニュアル、準備はこちら、登録はこちら、よくある質問は、、、、などなど。

マニュアルが多いのは手順が複雑だからです。また同じようなマニュアルがダブついているのは、システム製作サイド(国税庁)も混乱しているのでしょう。つぎはぎで作ったんだろうなと推測できます。せめて一本化してほしかったですね。

で最終的に思ったのは、

・決して「ラクラク」ではなかったこと(笑)。
・税務署に行く必要はなさそうだったが、証明書等を入手するために各機関へ出向く必要があったこと。
・e-Taxサポート外の書類は、結局郵送する必要があること。
・ICカードリーダの購入費、証明書等の入手費用で、最高5000円の税額控除はチャラになること(逆に高くつくケースも・・)

なんだか手間だけかかって、これならパソコンの前でゴチャゴチャやってるより、いつものように手書きの申告書を税務署に歩いて持っていったほうがよっぽど早い・・と思いました。しかも手でもっていけば、セキュリティ対策も完璧です(盗まれない限り)。

これだけやれば確かにセキュリティ対策はバッチリかもしれません。しかし、過剰なセキュリティ対策は、システムの利便性を損ねます。利便性を損ねるシステムは使われなくなり、使われないシステムほど無駄なものはありません。これでは元も子もありませんよね・・。

こんなシステムのために税金が使われていると思うと悲しくて仕方が無いです・・(ノ_・。)

e-Taxの利用率は1%も満たないと聞きましたが、これでは普及するはずもなく、逆に今後システムが見直しになる可能性の方が高いのではないでしょうか。というわけで、私としてはもう暫く様子見をすることにしました。

今年もがんばって税務署まで出向きますw。

| | コメント (2)

2008年2月14日 (木)

MT4マニュアルVerUp(エラー一覧追加)

FX完全自動売買システム構築のための250の技 MetaTrader4逆引き大全集のバージョンアップお知らせです。

今回の改定はエラー一覧の追加です。前回の定数一覧の追加に引き続き、全エラーコードも日本語化致しました。

MetaTrader4ではエラーが発生した際は、GetLastError()関数でエラー番号を取得する事でエラーの原因を特定することができます。MetaTraderではエラーの種類が100種類近くありますので、かなり細かく原因を特定することができます。

※ちなみにエラー情報の取得方法はマニュアルの「121. エラー情報を取得する」や、「122. 初期化失敗時のエラー情報を取得する」で紹介していますのでご参照ください。

完全自動売買システムは長い運用になればなるほど、トラブルが付きまといます。トラブルの際に、エラーの原因をすばやく特定できればシステムを安定稼動させることができます。少しでも本書がお役に立てれば幸いです^^。

ご購入者の方は、いつものようにバージョンアップ版を専用ダウンロードサイトよりダウンロードしてください。新しく興味をもたれた方も是非どうぞ。

FX完全自動売買システム構築のための250の技 MetaTrader4逆引き大全集

電子書籍の利点を生かし、まだまだバージョンアップを予定しておりますので乞うご期待ください。

| | コメント (3)

2008年2月11日 (月)

CTL言語マニュアル 無料配布

2月7日よりCTL言語(DealBook360自動売買プログラム言語)のマニュアルがATS総合ポータルサイト(サザインベストメント)から配布されています。

Ctl

マニュアルは電子書籍ですので、PDFとして配布されています。240ページ近くあるのですが、サザインベストメントに口座を開設していると、無料で読むことができます。うれしいですね^^。

ざっと一通り見て見たのですが、ChartStudio(CTL開発環境)を使ってプログラムを1から作成する方法がわかりやすく解説されており、まさに初心者の方にうってつけの内容ではないかと思います。

CTL言語の細かい仕様や、動きなど、私ですら「目からウロコ」な内容もありました。読んでよかったです(^^;

それと、ところどころにでてくるコラム「ちょっとひといきシステムトレード徹底攻略」も読んでおいて損はないですね。シストレの心構えみたいなものが記載されてます。個人的にもこのコラムを読んで新しい発見がありました。

マリュアルの配布サイトはこちら>ATS総合ポータルサイト

☆☆ご注意:マニュアルの不備により、今現在は無料配布は停止中のようです。今しばらくお待ちください。☆☆

入手するには口座開設が必要です>サザインベストメント

| | コメント (0)

2008年2月 9日 (土)

MT4マニュアルバージョンアップ(定数説明追加)

おかげさまでご好評頂いておりますFX完全自動売買システム構築のための250の技 MetaTrader4逆引き大全集を一部改定しました。

今回の改定は「定数」の説明追加です。

例えば、OrderSend()関数ですと次のような定数(Trade operations定数)が用意されており、それらを使い分ける事で様々な注文をすることができます。

OP_BUY・・・買い注文
OP_SELL・・・売り注文
OP_BUYLIMIT ・・・指値買い注文
OP_SELLLIMIT・・・指値売り注文
OP_BUYSTOP・・・逆指値買い注文
OP_SELLSTOP・・・逆指値売り注文

他にも、マーケット情報を取得する際に用いられるMarketInfo()関数の定数

MODE_LOW / MODE_HIGH / MODE_TIME / MODE_BID / MODE_ASK / MODE_POINT / MODE_DIGITS / MODE_SPREAD / MODE_STOPLEVEL / MODE_LOTSIZE  / MODE_TICKVALUE / MODE_TICKSIZE / MODE_SWAPLONG  / MODE_SWAPSHORT / MODE_STARTING / MODE_EXPIRATION  / MODE_TRADEALLOWED / MODE_MINLOT / MODE_LOTSTEP / MODE_MAXLOT / MODE_SWAPTYPE / MODE_PROFITCALCMODE / MODE_MARGINCALCMODE / MODE_MARGININIT / MODE_MARGINMAINTENANCE / MODE_MARGINHEDGED / MODE_MARGINREQUIRED / MODE_FREEZELEVEL

図形を描画する際に用いられる ObjectCreate()関数の定数

OBJ_VLINE / OBJ_HLINE / OBJ_TREND / OBJ_TRENDBYANGLE / OBJ_REGRESSION / OBJ_CHANNEL / OBJ_STDDEVCHANNEL / OBJ_GANNLINE / OBJ_GANNFAN / OBJ_GANNGRID / OBJ_FIBO / OBJ_FIBOTIMES / OBJ_FIBOFAN / OBJ_FIBOARC / OBJ_EXPANSION / OBJ_FIBOCHANNEL / OBJ_RECTANGLE / OBJ_TRIANGLE / OBJ_ELLIPSE / OBJ_PITCHFORK / OBJ_CYCLES / OBJ_TEXT / OBJ_ARROW / OBJ_LABEL

などを始め、他にもMT4で用意されている「定数」は全部で200種類近くあります。残念ながらMetaTrader4のヘルプは英語ですので使いこなせていない方も多いのではないでしょうか。

一応、一通りマニュアルの方で日本語化しておきましたので、もし宜しければ是非ご利用ください。ご購入者の方はダウンロードサイトからバージョンアップ版をダウンロードする事が出来ます。

新しく興味をもたれた方も是非どうぞ。

FX完全自動売買システム構築のための250の技 MetaTrader4逆引き大全集

あと、エラー一覧が日本語化できていないので、そちらは出来次第バージョンアップします。また、他にも新しい技(特にカスタムインディケータ、図形描画系)を追加する予定です。

乞うご期待ください^^。

| | コメント (2)

2008年2月 7日 (木)

Visual Studio 2008発売

少し前からWebサービスを利用したFX完全自動売買システムの構築方法を記事にしていますが(記事はこちら)、開発環境に利用しているVisual Studio 2008がいよいよ2/8(金)発売です。

無料で利用できるExpress Editionは評価・学習・ホビーユーザを対象なので、本格的にプログラムを行われる方はやはりStandard Edition以上のご購入を検討されたほうがよいかと思います。

Visual Studio 2008 機能比較

各種Editionがありますが、個人ユーザならStandard Editionが良いのではないでしょうか。

全ての言語が利用可能ですし、msi形式のインストーラが作成できますので、ソフトが簡単に配布できるようになります。フリーウェア、シェアウェアなどを検討している場合は嬉しいですね。

ちなみに私は職業柄、さらにテスト機能など上位機能が利用できるProffesionalを購入しようと考えています^^。

ネットで色々調べて安いところを探してみました。参考になればどうぞ。

■Visual Studio 2008 Standard Edition (31,290円)

(1)  25,956円 さんてく堂

(2)  26,861円 VALUEMORE!

(3)  28,161円 amazon

また、Visual Studio 2005 Express Edition(今でも無料でダウンロードできるようです)を持っていれば、2008のアップグレード版を利用する事もできるようです。

(参考URL)http://itpro.nikkeibp.co.jp/article/NEWS/20071214/289553/

アップグレード版のほうの値段です。参考にどうぞ。

■Visual Studio 2008 Standard Edition アップグレード (20,790円)

(1) 16,610円 さんてく堂

(2) 17,736円 VALUEMORE!

(2) 18,711円 amazon

※なお、価格は2/7時点のもので変動する場合があります。ご購入の際は今一度お確かめてお買い求めください。

| | コメント (0)

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月 | トップページ | 2008年3月 »