2007年9月22日 (土)

自動売買機能の改善

最近はDealbook(ChartStudio)一色であまり記事にしていなかったChartTrader(≒VTTrader)ですが、FXA証券さんからシステムから自動売買機能を停止する旨連絡がありました。

停止と行っても発展的解消?というか、一時的な停止のようです。
これまでの自動売買機能で問題のあった部分について、改善を行ってから改めて自動売買機能を再開されるようですね。

たとえば、最近の相場はかなり流動性が高く、注文を発注してもスリップページが少ないと約定しないケースも見受けられます。このような場合、ChartTraderの自動売買プログラム側では約定したのか、していないのかを判断する術はありませんでしたので、約定していない場合はどんどん損失が増えていくこともありえる為、リスクとなっていました。

自動売買機能の改善後には、約定しなかった場合は再度注文を行うか、もしくは注文を取りやめてしまうか・・等の判断ができるようになるとの事です。

このような改善が行われるのはもちろん歓迎すべき事なのですが、いつ開発が完了するか等は今のところわかっていません。早ければいいのですが、プログラマーな観点からすると、クライアントだけではなく、サーバ側にも手を入れる必要があるので、開発には時間はかかるでしょうね・・。しかも安全サイドに動作するように改善するわけですから、テスト期間もそれなりに必要だと思います。

ただ、せっかく改善するんだったら個人的な要望としては、注文を発注する際に成り行きだけでなく、指値、逆指値、またOCOやIF-DONEとかに対応してほしいものです。万が一、クライアント側が故障・または不調になった場合でも初めからストップ値を設定できていれば防げますしね。要望してみようかな。

是非、FXA証券さんにはがんばって、よりよい完全自動売買環境を構築してほしいと思います。よろしくお願いします。

| | コメント (0)

2007年4月 3日 (火)

エフエックス札幌でChartTrader

少し前の記事で書いた「超低リスクポートフォリオ運用」を実行に移すべく(笑)、エフエックス札幌にアカウント開設中なのですが、ホームページとかを見ていて驚きました。

ホームページを見ればわかるのですが、エフエックス札幌には「ステップアップ口座」と「マックス口座」という2種類の口座体系があり、それぞれ採用しているシステムも違えば、取り扱い通貨や、手数料等も異なります。まるで別業者のシステムのようです。

私が開設を予定しているのは「ステップアップ口座」のほうなのですが、「マックス口座」のトレードシステムはなんとChartTrader(VTTrader)が採用されているようですね。

どうやら、FXA証券で採用されているChartTraderと同じもののようです。

ただ同じChartTraderを使うなら、売買手数料がかかるエフエックス札幌(1通貨辺り往復10銭)より、売買手数料が無料のFXA証券で売買するほうが有利だと思います。

今のところ、「マックス口座」を開設する予定はありませんが、ChartTraderに少し縁を感じてしまいましたww。

>>「エフエックス札幌」サンクスキャンペーン!口座開設で5000円のキャッシュバック!

| | コメント (2)

2007年2月14日 (水)

VTTraderのエラー

VTTraderを常時起動させて自動売買させているとまれに、次のようなエラーがでている場合があります。

Ws000213

このエラーがでている間、売買が継続されているかどうかは不明なのですが、このダイアログに対してOKを選ぶと、

VTTraderが再起動(?)して、次のようにログイン画面がでて再ログインを試みようとします。

Rerogin

そして起動後は正しく動くのですが、困るのは何が原因でこうなるのかがわからない点です。

ちなみに最初に表示されていたエラーメッセージはトレーディングシステムを起動して自動売買モードをONにしているときに、VTraderを終了しようとすると出るエラーと同じです。(通常、自動売買モードにしているとVTTraderは終了できません。)

状況を見ると、VTTraderに何らかの異常が発生したため(通信エラーとか?)、ソフトウェアが再起動を試みようとするが、トレーディングシステムが起動しているため、エラーで止まっていると考えるのが妥当のようです・・。

自動売買だけにずっと見ているわけにもいかず、今のところなぜこのような状況に陥るのか原因不明です。また何かわかったら載せますね。

とまぁ、これに限らず、自動売買させるときは1日に2、3回程度は注意深くシステムを監視しろという事なのでしょう。手のかかる子ですね。。。(^_^;)

| | コメント (4)

2007年2月 9日 (金)

トレーディングシステムの落とし穴

今日はトレーディングシステムの落とし穴について書きたいと思います。

次のシステムはChartTrader付属のシステムです。

Ws000003

チャート上に矢印と、EXITという目印が出ていると思いますが、青の矢印が買いサイン、青のEXITで決済します。逆に赤の矢印が売りサイン、赤のEXITで決済します。

一見、見てどう感じるでしょうか?一度、目で追ってみてください。
上手くトレンドを捕らえて、非常に利益の出るシステムのように感じるかもしれませんね。

しかし、ここに落とし穴があります。騙されないでくださいね^^。
良く考えて見ましょう。

一見トレンドを上手く捕らえていそうな、真ん中付近(1.2910→1.2990辺り)の売買を詳しく見てみたいと思います。

すごい利益をあげていそうなのですが、実際は矢印が出ている時間帯の値をちゃんと確認してみると次のようになります。

Ws000003_2

青線でクロスしている箇所が実際の買いサイン点灯時のポジション、および決済値になります。思ったより利益は少ないですね・・。

さて、もうひとつ最後の取引を見てみましょう。

Ws000003_3

これにいたっては、利益はほとんど出ていません。おそらく実際に売買したら売買手数料がかかるのでマイナスの取引だったかもしれません。

最初の青クロス線なしのチャートと見比べて、少しは感じ方が変わったでしょうか?このような観点からチャートを良く見直してみると、システムの本当の売買履歴がわかると思います。

最近は、VTTrader(ChartTrader)を利用した売買システムが多く出回っているかと思いますが、チャート上の決済値は注意深く見られることをオススメします^^。

| | コメント (4)

2006年12月17日 (日)

APIリリースを待ってはや・・

VTTraderにはAPIがあって、それを利用すれば自分でオーダーを発注するプログラムが作れます。というのは過去の記事でもなんどか触れました。

そして現在はバージョンは1.0.3ですが、日本語環境で利用すると不具合があってログインすらできません。

不具合は掲示板(VTフォーラム)でも何度も報告されており、次バージョンでは解決されるかなというのが私の予想でした。

ですが、現バージョン(1.0.3)がリリースされたのが2005年5月。それ以来、はや半年以上たちましたが、次のバージョンは一向にリリースされませんね・・。一体いつになったらバグフィックスされるのやら。

さて、VTTraderに関することでおもしろそうなサイトを見つけました。(「Visula Trading」キーワードでヒットしました)

Visual Trading Systems USER's site

VTTraderを使ったシステムの検証をされているようですね。インディケータも公開、説明されておられます。一度のぞかれてみては、いかがでしょう。

| | コメント (9)

2006年10月13日 (金)

ChartTraderのメモリリーク

少し前の記事(こちら)で、ChartTrader(FXA証券)のメモリリークについて解決されていないという記事を書いたのですが、誤っていたので訂正させていただきます。(VTTraderと同じく、バージョンが少なくとも1.8台にならないと直らないと思い込んでおりました。)

※メモリリークについての詳しい説明はこちら

最新版ではメモリリークが発生していないとコメント頂いたので私のほうでも調査したのですが、若干リークは発生しているものの運用で回避可能なレベルでした。

具体的には、48時間起動させて約120MBのリークでした(なお、リークする量は使用量、環境によって変わります)。

■11日計測開始

20061011_2041

■13日計測完了

20061013_2056

自動売買環境としては、1週間で120時間(24時間×5日)稼動できれば良いのですから、1週間でも計算すると300MBのメモリリークですむはずです。メモリ512MB程度つんでおけば、なんとか1週間起動させても大丈夫そうですね。

というわけで以前の記事はこの場を借りまして訂正させていただきます。失礼しましたw。

| | コメント (4)

2006年10月10日 (火)

FXA携帯ライブ取引開始

FXA証券で携帯電話でのライブ取引が本日から開始になったようです。便利になりましたねーw。

少し動かしてみましたが基本的な機能はそろっていて使いやすそうでした。これで外出先でも安心ですw。

といっても、私は新ChartTraderになってから売買していないので当分利用することはないのですが・・(笑)。新CTになり事実上VTTraderからバージョンダウンしてしまい、メモリリークが発生するようになったのと、最新のトレーディングシステムが動作しなくなったためです。

是非、早めの改善をお願いしたいところです。

| | コメント (2)

2006年9月16日 (土)

FXA証券の自動売買環境希望的観測

先日の続きですが(記事はこちら)、FXA証券さんにあつかましくもメールで要望してみました。要望は以下、2点。

(1)VTフォーラムで公開されているトレーディングシステムは使えないともったいないので、是非使えるようにしてほしい。

(2)VTAPIに対応してほしい。やはりVTTraderの自動売買機能では限界があり(指値注文も、ストップも注文できない)、是非APIを利用して、自由度の高いプログラムが作れるようにしてほしい。

特に(2)は、個人的にはかなり実現してほしいと思っています^^。これらの(1)(2)を実現された上で、日本国内のサーバ移設によるサーバ強化が実現できれば、非常に良い自動売買環境になると思います。

一応、FXA証券さんからのメールが返ってきたのですが、

ご連絡頂いた件ですが、現在社内で検討中でございます。
極力、お客様の意見を反映するよう努力いたします。

との回答が・・・

ダメもとで聞いてみたんですが、すでに検討されているとは。これは少し期待がもてるかもしれませんね(笑)。

APIはオリジナルに不具合が多いため、サポートしだすと大変だとは思いますが、他の業者とも差別化を図るためには、ここは是非がんばってほしいところですww。

| | コメント (2)

2006年9月14日 (木)

自動売買機能の継続

FXA証券のVTTraderですが、日本へのサーバ移設に伴い、独自バージョンアップ路線に変更されているのは皆さん知ってのとおりだと思います。

その中で、トレーディングシステムビルダー機能を使って作る自動売買プログラムの機能が削除されるという噂があったため、FXA証券さんに問い合わせてみました。

結果から申しますと、自動売買機能は引き続き利用できるようです。

ただし、ChartTraderは、VT最新バージョンより古いバージョンなので一部ご利用できない機能もあること。今後はFXA証券さんで独自にバージョンアップしていく。ということのようですので、VTの最新バージョンに一致しない可能性があります。

これはつまりVTフォーラムとかで公開されているトレーディングシステムやインディケータが利用できないものがでてくる。ということです。

これはもったいないですよね・・・。この点は是非、改善してほしいものですが。

一応、その旨メールは送ってみたのですが、難しいのでしょうか・・。あ、ついでにVT APIが使えるようにならないかも聞いてみたのですが、こちらは望み薄かな・・^^。

| | コメント (3)

2006年9月13日 (水)

VT API 1.0.4 ベータ

VTTraderのAPI(通称、VT API)の新バージョン(1.0.4)が、約5ヶ月ぶりくらいにリリースされるようです。

(VTフォーラム)
http://forum.vtsystems.com/index.php?showtopic=4781

掲示板とかを読めばわかると思うのですが、現在のバージョン(1.0.3)のAPIは不具合がありログインができません。見ている感じではおそらくアジア、2バイトコードを使っている漢字圏の国でできないようです。

回避策としては、コントロールパネルの地域と言語で日本語から英語(米国)に変更するとログインできるようになるらしいのですが、システム設定をいじると他のソフトにまで影響を与えるので、私はやっていません。

次のバージョンで、不具合は改修されるだろうと思って待っていたのですが、ようやくリリースされるようです。今はベータバージョンでのテスト段階なので、もうすぐリリースでしょうね。

不具合が改修されていると良いのですが・・(^_^;)。

☆久々にランキングのリンクを張ってみました^^。順位が下がりすぎているので、応援よろしくお願いします・・☆

| | コメント (2)

2006年9月 9日 (土)

メモリリーク再(ChartTrader)

FXA証券のVTTraderですが、新システム移行によるVTTraderのバージョンダウンにより、以前問題になっていたシステムのメモリリークが発生するようになってしまいました。

以前の記事はこちら。
http://victor.cocolog-nifty.com/blog/2006/04/vttrader_363f.html

今週、新システムを起動させていたのですが、およそ24時間で600MBほどメモリリークしていました。もう少しでパソコンがフリーズするところでした・・。こんなにリークするのが速いとは・・。リークの様子を画像でどうぞ。

VT起動時

Ml_060906_2331

24時間後

Ml_060907_2343_1

VT終了後

Ml_060907_2347_end

以前のバージョンに戻したのは、なにか理由があるのでしょうが、このような重大な問題を抱えるバージョンに戻すのはいかがなものでしょうか・・

24時間でこんなにリークするようだと、とても自動売買なんかできないですね・・。

| | コメント (4)

2006年9月 4日 (月)

新システムへの移行は良いけれど・・

FXA証券がサーバを日本に移行するみたいですね。

9月16日・17日にに移行するみたいです。これまでVTTraderはサーバが弱いのが欠点と言われてきましたが、独自のサーバを立てることでより強固なサーバになることを祈ります。

さすがに日本におくということは対象は日本人だけでしょうから、そういう意味ではかなりトラフィックは減るんだと思います。期待大ですね^^。

それにともない新しいVTTraderというかChartTraderをインストールする必要なのですが困ったことがあります。

ChartTraderは古いバージョンのVTTraderを基準に作られているため、バージョンが古いのです。具体的には、VTの最新は1.8.1なのですが、ChartTraderは1.7.7.3です(06年9月4日現在)。

バージョンが古いと言うことは新しい機能が使えなくなるということで、実はVTフォーラム(http://forum.vtsystems.com/)にあるトレーディングシステムのうち動かないものがけっこうあります(わりかと古いものは動くと思います)。おそらく新しく追加された関数、もしくは仕様を使っていると思われるのですが、その部分がコンパイルエラーとなります。これではフォーラムにある多数のシステムが使えず、非常にもったいないですよね。

この点は是非ともFXA証券さんに改良してほしいところですが・・。

| | コメント (4)

2006年8月 7日 (月)

FXAで携帯取引

他の会社ではもう当たり前になっている携帯取引ですが、FXA証券でようやく導入されるようです(まだテスト運用中?なのかデモ口座のみの対応ですが)。便利になりますね。

なお、この携帯取引は、既存のデモ口座のIDは利用できないみたいです。新しくデモ口座を開設して利用する必要があります。また、VTTraderも新しいものを利用しないとそのIDは使えないようです。

つまりまとめると以下のようになります。

新口座・・・新ChartTraderのみで利用可、携帯取引利用可
旧口座・・・旧ChartTraderのみで利用可、携帯取引利用不可

なぜこのような事になるかというと、新しいデモ口座(携帯対応)はこれまでとは異なるサーバが利用されているようです。新旧のChartTraderで接続するサーバが違うみたいですね。これまでのデモ口座のアカウントは「CMS 」のデモサーバと共通で利用していたと思われるので、それを切り離したのでしょうか。

あと、気になったのが「サーバを日本に移動するべく準備をしている」との事です。日本に移動する=基本的に日本人専用でしょうから、これまでVTTraderを利用する点で最大の欠点であった「サーバが弱い」や「重要指標時にエラーになる」などが改善される可能性があります。少なくとも利用する絶対数が少なくなるはずです。しかも新サーバとなると、性能も上がる可能性が高い・・はず。

これはうれしい知らせですね。期待大です。

| | コメント (8)

2006年6月 4日 (日)

Standard Error Breakout System

今日は久しぶりにVTTraderのユーザーフォーラムでトレーディングシステムを物色してみました。自分で作るというのも良いですが、既にあるものが使えるならそれに越した事はないのでw。

>>ユーザーフォーラムはこちら

さて、どのトレーディングシステムを取ってきたかというと、「Trix Trading System」というのと「Standard Error Breakout System」の2種類です。

特に理由もなく、適当に上から順番に取っただけですw。

来週はまず「Standard Error Breakout System」というシステムを動かしてみたいと思います。なぜこちらかというと5分足を利用しているようで、細かく利益確定を繰り返していたのがおもしろそうに感じたからです。(あまり深い意味はありませんw)

もちろん、リアルではなくデモで動かしてみますが、1週間動かしてどのようになるか楽しみです。

ユーザーフォーラムでは色々な方がつくられたシステムがたくさんあり、VTTraderでは非常に簡単に自動売買を行う事ができます。多すぎてどれを試せばいいのかわからなくなるのですが・・。
もし良かったらどうぞ。

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします!★★★

| | コメント (8)

2006年6月 2日 (金)

ヘルプ(Analysis tools編3/3)

前回から随分たってしまいましたw。

久しぶりに自動売買プログラムを作成しているときに調べた、VTTrader(FXA証券)の関数仕様をまとめたものを紹介したいと思います。

今回は、Analysis tools変数編の続きです。(前回はこちら
こないだ紹介したMAMAインディケータも使えてしまいます。

<<Analysis tools編(3/3)>>

関数名 説明
Mama( x , y , z) Mamaインディケータを利用します。
x:DATA ARRAY
y:FAST LIMIT
z:SLOW LIMIT
例) Mama((L + H) / 2, 0.5, 0.05)
outside 本日の高値、および安値(現時点における高値、安値)の範囲を超えれば1を返す。範囲内であれば0を返す。
peak( x , y , z) yのデータに対して、x番目のピークを計算します。ピークの算出方法はZigZagインディケータを利用しているとの事です。
Rally 条件が発生すると1となり、それ以外は0となります。条件は次のようになる。今日の高値が前回の条件発生日より高く、今日の安値が前回の条件発生日の高値より低い。
Reaction 条件が発生すると1となり、それ以外は0となります。条件は次のようになる。今日の高値が前回の条件発生日より低く、今日の安値が前回の条件発生日の安値より低い。
ref( x , y ) xのデータに対して、yの期間を参照します。
例)
ref(High,-1)は前日の高値
ref(High,-2)は前々日の高値
ref(High,1)は次の日の高値
StochMomeren
tum( x , y , z)
Stochastic Momentum Indexインディケータについて計算します。
valuewhen( x , y , z) zのデータに対して、xの期間を参照します。(yはあまり関係ないようです)
例)
valuewhen(1, 1, High)は本日の高値
ref(2, 1, High)は前日の高値
Vhf( x , y ) Vertical Horizontal Filterインディケータについて計算します。
x:データ
y:期間
wc Weighted Closeインディケータについて計算します。

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします!★★★

| | コメント (2)

2006年4月27日 (木)

続・VTTraderのメモリリーク

以前、お伝えしたVTTraderのメモリリークの続報です(記事はこちら)。

4/18にリリースされたVer1.8になって改善したような気がします。
先週、今週と動作させているのですが、これまでは1日でかなりのメモリリーク(200~300MB)が発生していたのものが、このバージョンになってから1日のリーク量が40~50MB程度になったように思います。(それでも若干残っているようですが(笑)。)

このくらいのメモリリークなら、以前紹介した対策で、1週間は常時起動できそうです。1週間も持てば土日に再起動するので十分ですから。

と、思って動かしていたのに、今日サーバエラーで通信が切断されてました。。(怒)。何時に切断されたのかわからないのですが、VTTraderを再起動したら接続できました。たまに切断されるのは百歩譲ってよいとしても、復旧は自動的に行ってほしいものです。じゃないと、ほったらかしにできません・・。

VTTraderはエラー処理をもうちょっと作りこみしてほしいですね。サーバもですが・・。

と、話はそれましたが、一応Ver1.8のリリースノートがありましたので、紹介しておきます。

http://vtsystems.com/en/products/releases/

最後のほうに、「Memory leak when trading system was added/removed from chart resolved. 」とありますが、チャートを追加したり削除したときのメモリリークは解消されたようです。それ以上はメモリリークについては触れてられていないのですが、どうなんでしょうね?本当に改善されたのかどうかは不明です。

ただ、別の不具合の改修によってメモリリークもなくなったというのはありがちな話だと思うので、真相はどうあれリーク量が減るならそれで良し!!ですね。どんどん改善してください!

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします!★★★

| | コメント (0)

2006年4月20日 (木)

ヘルプ(Analysis tools編2/3)

久しぶりに自動売買プログラムを作成しているときに調べた、ChartTrader(FXA証券)の関数仕様をまとめたものを紹介したいと思います。

今回は、Analysis tools変数編の続きです。(前回はこちら
※なかなか難しくて、調べるのにも時間がかかってしまいます(笑)。

<<Analysis tools編(2/3)>>

関数名 説明
highest(x) xのデータに対して、最大値を返す。チャート表示上のすべてが対象。
hhv()の全期間版。
highestbars(x) xのデータに対して、最大に達してからの期間を返す。チャート表示上のすべてが対象。
hhvbars()の全期間版。
highestsince( x , y , z ) zのデータに対して、xの期間のうち最大値を返す。xの期間には現在を含めます。yは不明。
inside() 本日の高値、および安値(現時点における高値、安値)の範囲内であれば1を返す。範囲を逸脱した場合0を返す。
lastvalue( x ) xのデータ(足毎)の最後の値
llv( x , y ) xのデータに対して、yの期間のうち最小値を返す。yの期間には現在を含めます。
例)2,6,4,3,5と推移した場合に、llv(x, 3)とすると、4,3,5の中の最小値3を返す。
llvbars( x , y ) xのデータに対して、yの期間のうち最小に達してからの期間を返す。yの期間には現在を含めます。
例)2,6,3,4,1と推移した場合に、llvbars(x, 3)とすると、3,4,1の中の最小値1からの期間0を返す。
lowest(x) xのデータに対して、最小値を返す。チャート表示上のすべてが対象。
llv()の全期間版。
lowestbars(x) xのデータに対して、最小に達してからの期間を返す。チャート表示上のすべてが対象。
llvbars()の全期間版。
lowestsince( x , y , z ) zのデータに対して、xの期間のうち最小値を返す。xの期間には現在を含めます。yは不明。

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします!★★★

| | コメント (0)

2006年4月19日 (水)

APIを使ってログイン2

現在、VTTraderAPIでシステムを構築してますが、ログイン時にでたエラーについて、同じように困っている人のために紹介しておきます(ログインにでたエラーその1はこちら)。

前回のエラーが回避されたと思いきや、今度は新たなエラーが発生しました。こんな感じです。

VTAPI  Initialized
Logging xxxx ...
VTAPIEvent - OnServerMessage ID=0  Sent Get interface command.
VTAPIEvent - OnServerMessage ID=1  Command HTTP error (404 Not Found).
VTAPIEvent - OnServerMessage ID=2  Sent Get version command.
VTAPIEvent - OnServerMessage ID=3  Version check OK.
VTAPIEvent - OnServerMessage ID=4  Sent Login command.
User logged in.
VTAPIEvent - OnServerMessage ID=5  Command response error (EDOMParseError: 終了タグ 'BODY' が開始タグ 'HR' と一致していません。    Line: 11   </BODY>).

ID=1は、前回と同じなので無視します。

ID=5の部分で意味のわからないエラーがでました。DOMパーサエラー?ログイン時にHTMLかなんかでやり取りしてて、そのHTMLが壊れてるのか?と想像しながらもやはり意味がわかりません・・。仕方がないのでVTフォーラムで調べてみるとありました。

Temporary connection issue. You should try logging in again later. You can safely ignore the error message itself. Do a search on these forums and you should be able to find the archived topics already discussed on this issue. You should contact your forex broker's technical support department directly to report connection diffiuculties for proper assistance. Thank you.

まぁ要は一時的な問題なので、また後でログインしてください。だそうです・・。

このエラーがでたのは4/16(日)だったので、メンテナンス中だったのでしょうか。ちなみに月曜日に再ログインすると無事ログインできました(人騒がせな・・)。無事ログインできた場合のメッセージはこんな感じでした。

VTAPI  Initialized
Logging xxxx ...
VTAPIEvent - OnServerMessage ID=0  Sent Get interface command.
VTAPIEvent - OnServerMessage ID=1  Command HTTP error (404 Not Found).
VTAPIEvent - OnServerMessage ID=2  Sent Get version command.
VTAPIEvent - OnServerMessage ID=3  Version check OK.
VTAPIEvent - OnServerMessage ID=4  Sent Login command.
VTAPIEvent - OnServerMessage ID=5  User logged in.
VTAPIEvent - OnServerMessage ID=6  Sent Get data command.
VTAPIEvent - OnServerMessage ID=7  Data received.
VTAPIEvent - OnServerMessage ID=8  Sent Get open candles command.
VTAPIEvent - OnServerMessage ID=9  Open candles received.
User logged in.

とりあえず、これでVTTraderAPIを使ったログインの処理はできました。ここからはポジションの確認や、注文処理に入っていくのですが、続きはまた!

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします。★★★

| | コメント (3)

2006年4月18日 (火)

APIを使ってログイン

現在、VTTraderAPI(APIの記事はこちら)でシステムを構築してますが、同じように困っている人のために、作っている最中に発生したエラーなどを紹介しておきます。

まずAPIに付属していたサンプルプログラムなどを使ってログイン処理を行ったのですが、ログイン後に以下のようなエラーが発生しました。

VTAPI  Initialized
Logging xxxx ...
VTAPIEvent - OnServerMessage ID=0  Sent Get interface command.
VTAPIEvent - OnServerMessage ID=1  Command HTTP error (404 Not Found).
VTAPIEvent - OnServerMessage ID=2  Sent Get version command.
VTAPIEvent - OnServerMessage ID=3  Version check OK.
VTAPIEvent - OnServerMessage ID=4  Sent Login command.
User logged in.
VTAPIEvent - OnServerMessage ID=5  Command HTTP error (Could not load SSL library.).

ID=1の部分でもエラーがでているようなのですが、このエラーは無視してよいようです(将来拡張用?)。

ID=5の部分のエラーが重要で、SSL Libraryがロードできないとエラーがでています。

このSSL Libraryというのはなにを示すかというと、APIに付属している「libeay32.dll」と、「ssleay32.dll」を示しています。実はこのDLLはWindowsに標準搭載されているDLLで、「C:\WINDOWS\system32」の下にもあります。私の環境はWindowsXP Homeですが、このDLLの日付は2003年のものでした。APIに付属されているものは2000年のものなので、APIの方が古いのですが、実はこの古いものを利用する必要があるようです。最新バージョンでは動かないみたいですね。

通常、DLLが実行される順序は、(1)アプリケーションと同じフォルダ、(2)Windowsフォルダとなりますので、system32にある最新バージョンのDLLが実行されてしまいエラーとなっていたようです。これを回避するためには、APIに付属しているSSL Libraryをアプリケーションと同じフォルダにコピーしておく必要があるようです。

このようにする事でこのエラーはなくなりました。しかし、、

続く・・

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします。★★★

| | コメント (2)

2006年4月13日 (木)

VTTraderAPIで自動売買

前から興味はあったんですが、全然調べきれていなかった「VTTrader API」についてご紹介したいと思います。

私がその存在を知ったのはVTTraderを採用している「CMS Forex」というFX業者だったのですが、VTTraderを開発している「Visual Trading」社に最新のAPIがありますので、そこからダウンロードしたほうが良いでしょう。ダウンロードはここから-> http://www.vtsystems.com/en/products/

まず、APIとは何かというと、「Application Program Interface」の略で、エーピーアイと読みます。このAPIには様々な関数などが1つにまとめられており、この場合ですとDLLという形式で固められています。このDLLをプログラムに関連付ければ、このAPIに含まれている関数群をプログラムから呼び出す事ができるのです。

そして本題ですが、この「VTTrader API」には多数の関数が用意されています。どのようなものかというと、例えば

  • サーバにログイン/ログアウトする
  • アカウントの情報を取得する
  • オーダーを発注する、削除する、取得する
  • ストップやリミットを付ける、変更する
  • 過去の取引情報を参照する
  • 他にもたくさん・・

など、VTTraderの一通りの操作を行う事ができる関数が用意されているのです。

これまで自動売買の環境としてオススメしていたVTTraderですが、一度プログラムをやった人だとわかると思うのですが、売買ルールの実装に自由度がありません。for文はないし、if文もネストが複雑になります。また一番ネックなのがオーダーに関する関数がない事でしょうか。たとえばストップやリミットを付けたり、指値注文はできません。これだけでも売買ルールがかなり制限されてしまいます。

まぁ一般的によくある、指標を用いてサインを点灯させ、買いと売りを交互に発注するようなものであれば十分作れるのですが、ジグザグトレードなんかは実現不可能です(笑)。

そこでこのAPIを利用すれば、売買ルールの実装部分を一般的なプログラミング言語(C++、Java、.NETなど)で組めてしまいますので、表現力は無限になります。MetaTraderなんかよりも優れたプログラムが可能になります。

とりあえず、

  • このAPIがFXA証券でも利用できるのかどうか?
  • 何ができて、何ができないのか?
  • 使い勝手はよいのか?

など、色々さぐってみようと思います。また進展があったら順次紹介していきますね。

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします。★★★

☆いち押し☆コツコツとおこづかいを稼ぐ方法はこちら。

| | コメント (0)

2006年4月11日 (火)

トレーディングシステム試運用

VTユーザフォーラム(記事はこちら)で公開されていた、いくつかのトレーディングシステム(自動売買プログラム)をダウンロードして動かしているのですが、色々なシステムがあっておもしろいですね。これといったものはまだ見つかっていませんが、システムによって特徴があって勉強になります。

皆さんは良いシステム、見つかりましたか?

私の場合は、まず参照回数の一番多かった「Lsma Stdev Trading System」というスレッドから、「LSMA_ColorBeta06JPY.vttrs」というシステムをダウンロードして試してみました。(なんとなくJPYという文字が目に付いて・・)

こんな感じになりました。ドル円15分足に適応しています。

Lsma

売買タイミングはなかなか良い感じだったのですが、実際に使っているとかなりナンピンしてくれました。一番多くて8ロットくらいまでナンピンしてたでしょうか。できればロングとショートを1ロットずつ交互に入れ替えてくれるほうが精神的に安定するので、ちょっと怖くなってやめました(笑)。

次に試してみたのが(これは現在進行中)、「Profit Generator - Modified VT-Moving Average Cross System 」というスレッドの「C_ozkevin_MACTS_mod07.vttrs」というシステムです。

こんな感じになりました。ユーロドル5分足にしています。パラメータはフォーラムで紹介されていた25、110、10で試しています。

Cozkevin

こちらのほうは、逆にサインが全然点灯しませんでした。今週ずっと動かしていたのですが、今日やっと点灯しました。でもトレーディングシステムを「開始」するのを忘れていて、ポジションは取れませんでしたが・・。

ま、ぼちぼちと試してみます。皆さんも試してみて、他にも良いのが見つかったら教えてください。

システムを試してみたい方は、FXA証券のチャートトレーダーを入手してください。→ こちらから

★★★参考になりましたら、応援お願いします。★★★

| | コメント (1)

2006年4月 5日 (水)

ヘルプ(Analysis tools編1/3)

ChartTrader(FXA証券)で自動売買プログラムを作成しているときに
調べた関数の仕様をまとめておきたいと思います。

今回は、Analysis tools変数編の続きです。
※このあたりになると、なかなか難しくて、調べるのにも時間がかかってしまいます(笑)。ところで、Famaって何ですか?知っている人いたら教えてください。

<<Analysis tools編(1/3)>>

関数名 説明
BarsSince( x ) xの条件を満たしてからの経過回数(足数)を返す。
例)BarsSince(H>1)とすると、Hが1を超えた足から数えて現在が何回目かを示す。
cross( x , y ) xが上昇し、yと交差するタイミングで1を返す。逆にxが下降し、yと交差するタイミングをとりたい場合は、cross( y , x )とする。
移動平均線のゴールデンクロスや、デッドクロスはこれを用いて実現できる。
Fama( x , y , z) Famaインディケータを利用します。
x:DATA ARRAY
y:FAST LIMIT
z:SLOW LIMIT
例) Fama((L + H) / 2, 0.5, 0.05)
GapDown 前回の足の終値と、現在の足の始値の間に下方向に差(窓)があれば1を返す。
GapUp 前回の足の終値と、現在の足の始値の間に上方向に差(窓)があれば1を返す。
hhv( x , y ) xのデータに対して、yの期間のうち最大値を返す。yの期間には現在を含めます。
例)2,6,4,3,5と推移した場合に、hhv(x, 3)とすると、4,3,5の中の最大値5を返す。
hhvbars( x , y ) xのデータに対して、yの期間のうち最大に達してからの期間を返す。yの期間には現在を含めます。
例)2,6,3,4,1と推移した場合に、hhvbars(x, 3)とすると、3,4,1の中の最大値4からの期間1を返す。

完全自動売買ができるFXA証券の口座の開設はこちらから。→ 口座を開設する

★★★参考になりましたら、応援お願いします。★★★

☆いち押し☆コツコツとおこづかいを稼ぐ方法はこちら。

| | コメント (5)

2006年3月28日 (火)

VTTraderのメモリリーク

突然ですが、VTTrader(FXA証券ではChartTrader)でメモリリーク発生していませんか?
勘違いだったらまずいと思って、書くのをためらっていたのですが、VTTraderのフォーラムでも記述されていました。既知の不具合のようですね。記事はこちら。

同じ事で悩んでいる方がおられるといけないので、紹介しておきたいと思います。

まずメモリリークとは何か?を簡単に説明すると、
『コンピュータの動作中に、使用可能なメモリ容量がだんだん減っていく現象です。多くの場合は、アプリケーションソフトに不具合(バグ)が残っていたりすることが原因です。』(IT用語辞典から抜粋)

つまり、ソフトは常にメモリを消費して動作しているわけですが、不要になったメモリは順次開放する事で一定のメモリ消費量を維持しています。が、プログラムが消費したメモリが不要になっても開放しない不具合があると、どんどんメモリの消費量が増加していくという現象が発生します。メモリリークが発生すると、メモリはパソコンの有限のリソースですから他のプログラムがメモリを使用できなくなります。これはOSも同じ事がいえますので、メモリリークが発生すると、OS自体が動作しなくなります。

まず、「仮想メモリが足りません」等のエラーが表示され、それでもソフトを起動し続けるといわゆるフリーズ(固まる)状態になります。

フリーズするまでの時間は、パソコンがどれくらいのメモリを実装しているか、ソフトにどれだけ処理をさせているか(チャートの数や、インディケータの数などが影響すると思われる)によって変わります。私のパソコンは256MBをつんでいますが、およそ1日~2日くらいでフリーズしました。

※ちなみに、メモリの使用量を確認するのは、タスクマネージャの「パフォーマンス」で調べる事ができます。PF使用量を見ます。

Task

そして、対策ですが、恒久的な対策としてはプログラムの不具合を改修する以外にありませんが、運用でカバーする事ができます。

まず一番良い対策は、フリーズする前にソフトを再起動する事です。OSを再起動する必要はありません。ソフトを終了させて、再起動させるだけでメモリは開放されます。これを1日に1回、もしくは2日に1回と、自分のマシンの性能に応じて、行えば問題ありません。

また、仮想メモリを増やして、フリーズするまでの時間を長くすることもできます。以下の記事が参考になると思います。

"仮想メモリが足りません" と表示される場合の対処方法

おそらくこのような不具合はVTTraderのバージョンが上がれば解決してくれると思います。それまでは面倒ですが、運用で回避しましょう。

★★★参考になったら、こちらから応援お願いします!★★★

| | コメント (4)

2006年3月22日 (水)

VTユーザーフォーラム

今日はVTTrader(FXA証券ではChartTrader)のユーザーフォーラムを紹介したいと思います。ユーザーフォーラムとは、いわゆるVTTraderの掲示板のことで、VTTraderに関する事ならなんでも質問、回答ができます。ちなみに英語のサイトです。

Vtf_1

フォーラムはこちらになります。-> http://forum.vtsystems.com/
なお、スレッドを立てたり、コメントしたりする場合はアカウントを作成する必要があるようです。

主なトピックスは以下があります。

  • VTTRADER ANNOUNCEMENTS (アナウンス用)
  • VTTRADER DISCUSSION (ディスカッション用)
  • VTTRADER INDICATORS (インディケータ用)
  • VTTRADER TRADING SYSTEMS (トレーディングシステム用)
  • VTTRADER API (API用)
  • VT SYSTEMS FORUMS ARCHIVES (過去記事)

特におもしろいのが、「VTTRADER TRADING SYSTEMS」の中にある「NEW TRADING SYSTEMS POSTINGS」というトピックスです。ここでは、多くの方が自作のトレーディングシステムを公開されています。

公開されているシステムでトレードするもよし(自己責任でお願いします。)、プログラムを見て参考にするもよし。さらにプログラム書ける人は投稿してもよし。たくさんありすぎて、どれが良いとかはわかりませんが、もし良かったら利用されてみてはいかがでしょうか?

もし、試してみて良い成績のシステムがあったら教えてください。
このブログでご報告させていただきます。

★★★参考になったら、こちらから応援お願いします!★★★

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (3)

2006年3月18日 (土)

角度を使った売買プログラム

今週はひどい円高でしたね。SWAP派の人には厳しかったと思います。私も長期とみこんでほったらかしにしてたポジションがけっこうくらいました。。・゚・(ノ∀`)・゚・。

ヘルプ(Math編2/2) の記事で、数学関数を使ったおもしろい売買プログラムを作ってみました。アークタンジェントとか使ってます(懐かしい・・)。

相場は必ずトレンドができます。上昇中とか、下降中とか。
この上昇中の角度を判定して売買を行うようにしてみました。
こんなイメージです。

Zukei

ルールは以下です。

  • 図のように、一定の期間(period)のローソク足の中間値を結んだ線の角度θを求める。
  • θがx度(openAngle)以上なら買い、y度(closeAngle)以下なら売りを行う。
  • なお、サンプルではperiod=3、openAngle=0、closeAngle=0としていますので、0度以上になれば買い、0度以下になれば売りになるようにしています。(このパラメータは変更可能です)

ソースコードです。

x:=period;
y:=ref(MedianPrice,0)-ref(MedianPrice,-1*period):
angle:= atan(y,x);
angle:=if(angle>90,angle-360,angle);

openPos:=cross(angle,openAngle);
closePos:=cross(closeAngle,angle);

チャートに適応するとこうなりました。

Kakudopro

ChartTrader(FXA証券)でいきなり使えるトレーディングシステムファイルはこちらです。インポートして使ってください。「TrendFollow.lzh」をダウンロード

ちなみに、けっこう適当に作ってます。あくまでも参考ということで(笑)。

ダウンロードしたら、応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (3)

2006年3月17日 (金)

ヘルプ(Math編2/2)

ChartTrader(FXA証券)で自動売買プログラムを作成しているときに
調べた関数の仕様をまとめておきたいと思います。

今回は、Math変数編の続きです。前回はこちら。
※三角関数なんか使えるのか?と考えていたのですが、
 ちょっとおもしろい使い方を思いつきました。
 今プログラムしてるので、またできたらアップしますね。

<<Math編(2/2)>>

関数名 説明
log( n ) n の自然対数を返します。
max( x , y ) xとyのうち大きいほうを返します。
例)max(1,2)=2
min( x , y ) xとyのうち小さいほうを返します。
例)min(1,2)=1
mod( x , y ) x / y の余りを返します。
例)mod(8,3)=2
power( x , y ) xのy乗を返します。
例)power(2,3)=8
prec( x , y ) xの数値に対して少数y桁で四捨五入します。
例)prec(123.456,1)=123.5
Random ランダムに数値を返します。
返す値の範囲は、0 <= n < 1です。
round( n ) nの小数部分を四捨五入して、整数値を返します。
例)round(1.5)=2 , round(-1.5)=-2
sin( n ) n の正弦を返します。
nはラジアンで指定します。
sqrt( n ) nの平方根を返します。
sum( x , y ) xの期間y分の累積合計を計算します。
例)sum(High,3)とすると、現在を含む過去3回分のHIGH値を足しこみます。

参考になったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (2)

2006年3月14日 (火)

ヘルプ(Math編1/2)

ChartTrader(FXA証券)で自動売買プログラムを作成しているときに
調べた関数の仕様をまとめておきたいと思います。

今回はMath変数編です。Mathは数学関数がまとめられています。
多いので2回に分けたいと思います。
※それにしても、絶対値や、切り上げ/切り下げなんかは利用できそうですが、
 正弦、余弦は使うときあるのかなぁ??

<<Math編(1/2)>>

関数名 説明
abs( n ) nの絶対値を返します。
例)abs(-100)=100
atan( y , x ) atan(y / x) の逆正接をdegreeで返します。
戻り値は0~359.9になります。
atan( n ) n の逆正接を返します。
n 、 x / yで表現され、-1~1の値をとります。戻り値は-π/4~π/4になります。
atan1( n ) atan( n )と同じです。
ceiling( n ) nを整数値に切り上げします。
例)ceiling(1.1)=2 , ceiling(-1.1)=-1 
cos( n ) n の余弦を返します。
nはラジアンで指定します。
cum( n ) nの累積合計を計算します。
例)cum(1)とすると、チャートで表示される回数分だけ1が累積されます。
exp( n ) e の n 乗を返します。
floor( n ) nを整数値に切り下げします。
例)ceiling(1.2)=1 , ceiling(-1.2)=-2 
frac( n ) nの整数部を除去して、小数部分を返します。
例)frac(1.2345)=0.2345
int( n ) nの少数部を除去して、整数部分を返します。
例)int(1.2345)=1

参考になったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年3月 9日 (木)

ゴトウ日売買プログラム

世間は量的緩和解除で盛り上がっていますね。でもそんな事には目もくれず、このブログではわが道をゆきます(笑)。

さきほど書いた記事で、日にちとか時間なんか利用してどうするんだろうと思ったんですけど、こんな使い方できますね。

ゴトウ日FX★後藤さんのドル円仲値売買で、紹介されているように、ゴトウ日(5・10日の中値)狙いで売買するときなんか使えそうですね。で、ちょっと作ってみました。

ルールは以下です。

  • ゴトウ日(5・10・15・20・25・30日)のAM7時にロングポジション構築
    ※上記、日以外のゴトウ日(土日の前後営業日)は無視
  • 同日のAM10時にポジションクローズ

ソースコードはこんな風になっています。

OpenPos:=if(((DayOfMonth()=5 Or DayOfMonth()=10
              Or DayOfMonth()=15 Or DayOfMonth()=20
              Or DayOfMonth()=25 Or DayOfMonth()=30)
         and Hour()=17 and Minute()=0),1,0);
ClosePos:=if(((DayOfMonth()=5 Or DayOfMonth()=10
              Or DayOfMonth()=15 Or DayOfMonth()=20
              Or DayOfMonth()=25 Or DayOfMonth()=30)
         and Hour()=20 and Minute()=0),1,0);

ChartTrader(FXA証券)でいきなり使えるトレディーングシステムファイルはこちらです。インポートして使ってください。「goto.lzh」をダウンロード

ちなみに、動作確認はちゃんとしてませんので、動かすときはデモでテストしてくださいね。

参考になったら、応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

ヘルプ(DateTime編)

ChartTrader(FXA証券)で自動売買プログラムを作成しているときに
調べた関数の仕様をまとめておきたいと思います。

今回はDateTime変数編です。他の関数も順次のせていきます。
※今回のはどのような利用用途があるのでしょうか?
 日にちとか時間とかで売買したいとか・・・。

<<DateTime編>>

関数名 説明
DayOfMonth 月の中の日を返します。
1日なら1、30日なら30を返す。
DayOfWeek 週の中の日を返します。
月曜なら1、金曜なら5を返す。
Hour 時間(時)を返します。
時間はNY時間となる。
値は0から23の範囲を取ります。
Minute 時間(分)を返します。
時間はNY時間となる。
値は0から60の範囲を取ります。
Month 月を返します。
1月なら1、12月なら12を返す。
Year 年を返します。
西暦になります。

参考になったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年3月 7日 (火)

チャートソフト考察

今日はいつも愛用しているチャートトレーダー(FXA証券)の紹介をしたいと思います。

私も色々なチャートソフトを見ましたが、やはりこのソフトの使い心地は郡を抜いてるのではないかと思います。少し、プログラマーな視点から、考察してみたいと思います。

まず、ソフト開発をするものにとって、UI(ユーザーインターフェース)というのは重要です。なぜなら、操作性や、見た目というのは、顧客に一番つっこまれやすいところだからです。

このソフトは、そのUIが非常に優れていると思います。

まず、売買にとって基本的な機能はやはり売買(売ったり、買ったりすること)ですよね。
普通、売買というのはチャートを見ながら行うと思います。現在の値が全体のどの位置にあるかを確かめながら買いますよね。この単純な動作を忠実に再現しているのが、チャートトレーダー(FXA証券)です。

Chart

  • チャート上のある位置を右クリックすると、そのクリックした位置の価格で注文することができます。簡単ですね。
  • 逆にクローズする場合は、チャート上にポジションがでていますので、それを右クリックして、決済することができます。簡単ですね。
  • あとちょっと言葉でいわれるとよくわからないOCO注文。これはなおさら簡単です。
    チャート上にポジションがでているので、それを右クリックして、LimitやStopっていうのを設定すれば終わり。これがOCOです。
  • IF-DONEも簡単です。LimitやStopで予約したポジションに対して、上記のOCOをやれば完了です。
  • あと、LimitやStopの値を変更することも非常に簡単です。チャートにでているLimitや、Stopの線をクリックして変更したい値のところに動かすだけです。

全ての操作が、非常に使いやすく(人間の感覚に近い)設計されています。作り手は非常に優秀な方だと思います。

他の取引システムで、OCOとかIF-DONEとか選ばないと注文できないものもあります。それも説明書でたいそうに説明してくれてますが、本当にOCOという意味を知る必要があるのでしょうか?私は、ないと思います。変に難しくしているんですね。

もっとシステムを作る人は、使い手の事を考えたわかりやすいシステム作りを心がけてほしいものです(笑)。

チャートトレーダー(FXA証券)を使ったことのない人は、是非お試しください。この操作方法になれると他のどのチャートソフトも使いづらく感じると思います。

チャートトレーダーの入手はこちらからどうぞ。→ FXA証券

参考になったら応援お願いします!m(._.)m ペコリ

今日も絶好調です!!「FX1」の取引状況はこちら

| | コメント (0)

2006年3月 4日 (土)

ヘルプ(Logical編、Trading Info編)

ChartTrader(FXA証券)で自動売買プログラムを作成しているときに
調べた関数の仕様をまとめておきたいと思います。参考にしてください。

今回はLogicalおよび、Trading Info編です。
※なお、独自の調査ですので間違っていたらご指摘ください。

<<Logical編>>

変数名 説明
error( x, y ) エラーメッセージを表示することができます。
 x:条件
 y:メッセージ

xの部分が真(もしくは1)になった場合に、yで入力したメッセージが警告ダイアログで表示されます。なお、メッセージは'と'でくくる必要があります。

例)
変数Aが2より大きくなったらメッセージをだす
error(A>2 , 'display message'); 
変数Aが真(1)になったらメッセージをだす
error(A , 'display message');
if( x, y ,z) 条件分岐をすることができます。
 x:条件
 y:条件が真のときの値
 z:条件が偽のときの値

xの部分が真(もしくは1)になった場合に、yが選択されます。またはxの部分が偽(もしくは1以外)になった場合に、zが選択されます。

例)
変数Aが2より大きくなったら変数Bに10を格納します。また変数Aが2以下ならば変数Bに20を格納します。10,20の箇所は変数にすることもできます。更にif文をネストしてもかまいません。
B := if(A>2, 10 , 20);
このif文はエクセルのシート関数と同じ使い方です。非常に使いづらいです・・。

<<Trading Info編>>

関数名 説明
AccountStatus 現在のポジション状況を調べることができます。
戻り値に以下を返します。
 No_Position_Active : ポジションを持っていない
 Buy_Position_Active : ロング(買い)ポジションを持っている
 Sell_Position_Active : ショート(売り)ポジションを持っている
 Both_Position_Active : ロング(買い)と、ショート(売り)ポジションを持っている(両建て)

例)
例えばif文と合わせて、以下のようにすると、変数Bに、ロングポジションを持っていると1が、ショートポジションを持っていると0が入ります。
B:=if(AccountStatus = Buy_Position_Active, 1, 0):

参考になったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

そして絶好調のFX1の結果報告はこちら。

| | コメント (0)

2006年3月 3日 (金)

ヘルプ(DataArrays編)

ChartTrader(FXA証券)で自動売買プログラムを作成しているときに
調べた関数の仕様をまとめておきたいと思います。

今回はDataArrays変数編です。他の関数も順次のせていきます。
※一部、用途がわかない部分もありますが、わかり次第追記します(笑)。
もし知っていたら教えてください。

<<DataArrays編>>

変数名 説明
CLOSE 終値データ
HACLOSE 終値データ(平均足)
HAHIGH 高値データ(平均足)
HALOW 安値データ(平均足)
HAOPEN 始値データ(平均足)
HIGH 高値データ
INDICATOR カスタムインディケータのデータ
カスタムインディケータがなければ終値データ
LOW 安値データ
MedianPrice 中間値データ(H+L/2)
OPEN 始値データ
PREV 不明
PREV( x ) 不明
x:デフォルト値
TypicalPrice 中間値データ(H+L+C/3)

参考になったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年2月28日 (火)

過去データの取得方法

ChartTrader(FXA証券)のちょっとだけおもしろい使い方を発見しました。

例えば自分の売買ルールを検証したいときとかに、過去のデータは必須だと思いますが、どのように取得されていますでしょうか?
ChartTrader(FXA証券)では下記のようにすれば、チャート上に表示されているデータを取得することができます。

まず、チャート上で右クリックを押して、「全チャート過去データコピー」を選択してください。

Kako

ファイルの保存ダイアログが表示されますので、ファイルを指定して保存します。

保存されたファイルを確認すると、以下のようになっているはずです。

日付 Time 始値 高値 安値 終値 volume
02.27.2006 22:54 116.41 116.41 116.39 116.39 5.00
02.27.2006 22:55 116.40 116.40 116.38 116.39 4.00
02.27.2006 22:56 116.37 116.38 116.37 116.37 7.00
02.27.2006 22:57 116.35 116.36 116.35 116.35 3.00
02.27.2006 22:58 116.36 116.37 116.35 116.36 5.00
02.27.2006 22:59 116.37 116.40 116.37 116.38 11.00
 ~

タブ区切りの形式になっているので、エクセルとかに簡単に取り込むことができると思います。

ただ難点は過去といっても500回前までのデータしか取れないことです(チャート表示の制限)。日足でいえば500日分のデータということです。

もっと過去のデータは探せば入手できるところはあるようですので、あくまでもChartTrader(FXA証券)を使っていて、簡単にデータがほしいときに利用すればよいと思います。

参考になったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (2)

2006年2月26日 (日)

自動売買システムの作成(完成)

では、前回のつづきです。
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

今回は最後の「4.トレーディングシステムの反映」を行います。
以前、インディケータをチャートに適用しましたが、そのチャート画面を開いてください。

Migiclick

チャート上で右クリックを押して、
 トレーディングシステム追加→「Moving Average of Relative Strength System」を選択してください。

トレーディングシステムの利用確認同意書が表示されます。

Doui

これは、「トレーティングシステムが自動的に注文の売買を行ってくれますが、アクシデントが起こった際の売買保証しません。」という確認です(利用時はよく読んでください)。なお、同意しないとシステムは使えません。

その後、 trading system properties画面が表示されます。

Propety

ここではトレーディングシステムに渡す入力パラメータを設定することができます。今回、入力パラメータは使っていませんので、無視して「OK]を押してください。
トレーディングシステムがチャートに適用されたでしょうか?

Charttekiyo

実はこのままだとトレーディングシステムは売買をしてくれません。

チャート上で右クリックを押して、設定トレーディングシステムを選択してください。
チャート上に適用している全てのトレーディングシステムが表示されています。

Setts

トレーディングシステムを開始するには、開始/停止ボタンを押してください。それぞれボタンの説明をします。

  • 追加:トレーディングシステムを追加します。
  • 編集:trading system propertiesを設定します。
  • 削除:トレーディンスシステムを削除します。
  • 開始/停止:トレーディングシステムを開始したり、停止したりします。アイコンが変化しますので見てみましょう。
  • イベントを見る:シグナルが発生したログを見ることができます。
  • Params Enabled:トレーディングシステムビルダーのOutputタブの定義を有効/無効にすることができます。たとえば、LONGの矢印を非表示にしたりできます。
  • 閉じる:この画面を閉じます。

では、実際に動作させてみてください。ちゃんと動きましたか?

ただし一つだけ注意があります。
実際に売買させるときは必ずリアルではなくデモで十分テストを行ってからにしてください。プログラムはバグ(不具合)があるものです。リアルでバグが発生すると多大な損失を生むかもしれません。

一応これで自動売買システムは完成です。どうでしょうか?難しかったでしょうか?
とりあえず、今回作ったシステムは超入門です。ものたりなければ、既にデフォルトではいっている他のトレーディングイステムを参考にしましょう。
私もまだ全てを把握していないので、これから勉強していきたいと思います。お互いがんばりましょう!!

参考文献:FXA証券のチャートトレーダー(CT) 総合マニュアル

次は、FXの勝ち組みの手法を勉強して売買ルールを考えましょう!合わせて応援もお願いします!

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年2月24日 (金)

自動売買システムの作成(その7)

では、前回のつづきです。
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

トレーディングシステムの構築はこれで最後になります。
「Output」タブを開いてください。

Output_ts

ここでは、どの変数がシステムにどのように反応をさせるか、その変数が変化したときどんなアクションを取るべきかを記述します。

まずは、「Formula」タブの最後に記述した変数LONGの定義をしましょう。「新規作成」を押してください。

Out_name

  • Var Name:変数名です。LONGを正確に記述してください。「Formula」タブの変数と必ず一致させる必要があります。
  • 名称:変数の名称です。変数名は通常略称なので、本当の名前を書いてください。
  • Discription:変数のメモです。どのような変数か、どのように使われるか、好きなように書いてください。
  • Graphic enabled: 「Graphic」タブの設定を有効にします。変数が「正」に変化したとき(ここではロングポジションのサインがでたとき)の、チャートにグラフィックのサインを表示するという意味になります。
  • Highlights enable: 「Highlights」タブの設定を有効にします。「Highlights」タブでは、表示される希望の色を選びます。
  • Trading enabled:「Trading」タブの設定を有効にします。「Trading」タブでは、変数の条件に応じて取引注文(建て/仕切り)の指示を出します。
  • Alerts enabled:「Alert」タブの設定を有効にします。「Alert」タブでは音声や画面へのメッセージを設定できます。

とりあえず、Graphic enabledにチェックをつけて、「Graphic」タブを参照してください。

Out_gra

Fontボタンを押すとさまざまなアイコンが表示されますので、「LONG」のイメージに近いものを選んでください。LONGポジションをもったとき、このアイコンがチャートに表示されます。ここでは上矢印を選びます。
SizeはMidium、colorは青にしています。

では、LONGの設定ができましたので、同じようにSHORTの設定もしてみてください。なお、SHORTの場合は、LONGと区別できるように、下矢印と、赤色をつかってわかりやすいようにしましょう。

他のタブの設定は今回は編集しませんが、暇なときに色々さわってみると良いと思います。「Alert」タブとかは、ポジション構築時にWAVファイル(音声ファイル)を登録しておけば、音を鳴らすこともできます。おもしろいかも(笑)。

Out_alert

一応、これでトレーディングシステムは完成になります。
いよいよ次回で「自動売買システムの作成」編は最終回です。
作成したトレーディングシステムをチャートに適用します。乞うご期待!!

FX勝ち組みの手法はこちら!合わせて応援もお願いします!

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年2月23日 (木)

自動売買システムの作成(その6)

では、前回のつづきです。
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

「Formula」タブを開いてください。

Formula_ts

ここでトレーディングシステムのプログラミングをします。
まず、以下のソースコードを貼り付けてください。

{ Relative Strength Index}
RSI_r:= (CLOSE - ref(CLOSE,-1));
RSI_rs:= Wilders(if(rsi_r>0,rsi_r,0),14) / Wilders(if(rsi_r<0,Abs(rsi_r),0),14);
RS:= 100-(100/(1+rsi_rs));

{Moving Average of Relative Strength Index}
MA1:=MOV (RS, 10, E);
MA2:=MOV (RS, 30, E);

{Signal Long and Short}
Long:= CROSS (MA1, MA2);
Short:= CROSS (MA2, MA1);

実はこれ、ものすごく簡単なんです。

インディケータの作成のときに、「Formula」タブに記述したものとよく見比べてください。最後の3行以外は同じなんですね。
MA1とMA2の交差したタイミングを図りたいので、MA1、MA2の算出式まではインディーケータと同じなのです。(実は今回Inputは省略してるので、完全に一致はしてませんが)

そして最後の3行の部分で買い(Long)、売り(Short)ポジションを作るタイミングを記述しています。CROSS関数で交差のタイミングを図っています。

いかがです?
インジケータが作れればトレーディングシステムの構築は簡単だと思います。

では続きはまた次回。お楽しみに!!

よかったら応援お願いします!m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年2月22日 (水)

自動売買システムの作成(その5)

では、前回のつづきです。
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

今回からいよいよ、「3.トレーディングシステムの作成」に進みます。では、前回作ったインジケータを見てみましょう。

Indicator_sample2

紫で丸をつけた箇所付近を確認してください。
今回作るトレーディングシステムでは、赤線が青線を交差して上がったときが買いで、赤線が青線を切り下がれば売りのポジションを取るように作ってみます。

まずは、トレーディングシステムビルダーを起動してください。
 「ナビ」ウィンドウ→ツール→トレーディングシステムビルダー

トレーディングシステムビルダーでは、チャートトレーダーで使える全てのトレーディングシステムを管理しています。他にも10種類ほどトレーディングシステムもデフォルトでついていますので、暇なときにでも観察してみると勉強になると思います。

Trasysmenu

では、「新規作成」を押して、トレーディングシステムを作成してみましょう。

まずIndicatorタブが選択されていると思います。
Indicatorタブの内容をこんな感じにそれぞれ書き換えてください。

Indicator_ts

それぞれの意味はインディケータの作成画面で説明したものと同じですので、そちらを参照してください。

  • 名前:「New Trading System」を「Moving Average of Relative Strength System」に変更します。
  • 略称:「NewTradingSystem」を「MARSS」に変更します。
  • LabelMask:これはとりあえず今回は使いません。空欄にしておいてください。

次に「Input」タブを開いてみましょう。これもインディケータの作成画面で説明したものと同じですので、そちらを参照してください。

In

なお、今回はここは使いません。とりあえず全て空白にしといてください。

では続きはまた次回。お楽しみに!!

よければ応援お願いしまーーす。m(._.)m ペコリ

FXA証券の口座の開設はこちらからどうぞ。→ 口座を開設する

| | コメント (0)

2006年2月21日 (火)

自動売買システムの作成(その4)

では、今日もはりきって前回のつづきいきましょう!
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

Formuraタブを開いてください。

Marsi_formula

ここではインディケータのプログラミングをします。
まず、以下のソースコードを貼り付けてください。

{ Relative Strength Index}
rsi_r:= (CLOSE - ref(CLOSE,-1));
rsi_rs := Wilders(if(rsi_r>0,rsi_r,0),tpr) / Wilders(if(rsi_r<0,Abs(rsi_r),0),tpr);
RS:= 100-(100/(1+rsi_rs));

{ Moving Average of Relative Strength Index}
MA1:=MOV(RS,MA1pr,E);
MA2:=MOV(RS,MA2pr,E);

いかがでしょう?ちょっと難しいでしょうか?
エクセルのVBAマクロとかが少し理解できれば多少読めるかもしれませんね。構造とかが、少し似ている気がします。

順に説明していくと、

  • {・・・}でくくられた部分はコメント行になります。プログラムとしては無視されるので、自由にコメント書きましょう。
  • rsi_rや、rsi_rsは変数の宣言です。ここでは型を指定していなのでvar型とかになるんでしょうかね。そして:=で、右辺の式が計算され、計算結果が変数に代入されます。
    なお、RS、MA1、MA2は、色が変わっているのでわかる思いますが、変数の中でも特別な「出力引数」になります。「Output」タブで定義したものです。
    逆にMA1prやMA2prは入力引数です。「Input」タブで定義したものです。
  • CLOSEも変数ですが、特別な意味を持つ定数です。クローズ時の値が格納されています。他にOPEN、HIGH、LOWなどがあります。
  • ref()や、Wilders()や、if()、MOV()は関数です。
    ref()は、前回(-n)のCLOSE、もしくは未来(n)のCLOSEを取得します。第二引数でnを与えます。
    if()は、もしrsi_rが0より大きければrsi_rを、小さければ0とする。という意味です。
    MOV()は、移動平均を算出する。

ちなみに、左下辺りに「fx」というボタンがあると思います。これを使うと全ての関数の利用方法や意味がのっています。適宜参照するとよいと思います。

一応、これでインディケータとしては、完成になります。
チャートに適用してみましょう。正しく動作したでしょうか?

Indicator_sample

次回はいよいよ、トレーディングシステムの構築に進みましょう。乞うご期待!

よければ応援お願いしまーーす。m(._.)m ペコリ

FXA証券の口座の開設はこちら(↓)から。

| | コメント (0)

2006年2月20日 (月)

自動売買システムの作成(その3)

では、今日もはりきって前回のつづきいきましょう!
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

インディケータの作成画面にて、「Input」タブを開いてください。この画面ではインディケータに渡す入力パラメータを定義します。入力引数といえば、前回の「Indicator」タブの「LabelMask」で設定した入力パラメータと必ず一致させましょう。
新規作成ボタンでパラメータMA1pr、MA2prを追加してください。

Marsi_input

  • 名前:パラメータの変数名です。MA1pr、MA2prを入力しましょう。
  • Display name:チャート適用時に表示される入力パラメータ設定ダイアログで表示される名称です。
  • Type:型を決めます。integerは整数型、floatは浮動少数型です。MA1pr、MA2prは整数ですので、integerを選びます。
  • Default:デフォルトの値です。MA1prは10、MA2prは30にしましょう。デフォルトですので、チャート適用時に表示される入力パラメータ設定ダイアログで変更することができます。

引き続き、「Output」タブを開いてください。この画面ではインディケータから渡される出力変数を定義します。出力変数とは、チャート上に表示されるライン(線)を意味します。
新規作成ボタンで出力MA1、MA2を追加してください。それぞれ10日移動平均指数、30日移動平均指数線をチャート上に表示させます。もともとのRSI用のRSはそのまま表示させときましょう。

Marsi_output

  • Var Name、名称:出力変数名です。MA1、MA2を入力しましょう。
  • 線色:線の色です。
  • 線幅:線の太さです。
  • 線様式:線の種類を選びます。適切なものを選びましょう。
  • Hide in inspect:現在のところ何を意味するかわかっていません。

さらに、「水平線」タブを開いてください。この画面ではインディケータ以外に水平線を表示させたいときに利用します。たとえば、0~100のRSIだと、わかりやすいように30、50、70の箇所に水平線を表示させると便利です。
新規作成ボタンで追加します。今回は特に設定しませんが、説明だけしておきます。

Marsi_suihei

  • 値:水平線を表示させたい場所(値)を入れます。
  • 色:線の色です。
  • 線幅:線の太さです。
  • 線様式:線の種類を選びます。適切なものを選びましょう。

さて、次回はいよいよインディケータを作成するための、プログラムになります。インディケータ編の最終話です。乞うご期待!

よければ応援お願いしまーーす。m(._.)m ペコリ

FXA証券の口座の開設はこちら(↓)から。

| | コメント (0)

2006年2月19日 (日)

自動売買システムの作成(その2)

前回のつづきです。
チャートトレーダーを使いますので、ソフトはFXA証券で準備してください。

では、「2.インジケータの作成」を行います。簡単にするために、既存のインジケータである「Relative Strength Index」を利用します。

まずは、インディケータービルダーを起動してください。
   「ナビ」ウィンドウ→ツール→インディケータービルダー

Ib_copy インディケータービルダーでは、チャートトレーダーで使える全てのインジケータを管理しています。既存の物も、実はこのビルダーで編集ができるんですね。でも変にいじってこわさないように(笑)。

では、インディケータービルダーの中から、「Relative Strength Index」を選んで「複製」ボタンを押してください。

開いたウィンドウがインジケータの設定画面になります。まずIndicatorタブが選択されていると思います。Indicatorタブの内容をこんな感じにそれぞれ書き換えてください。

Indicatortab






  • 名称:このインジケータの名前です。他のインジケータ名とかぶらないような名前を付けてください。ここでは「Moving Average of Relative Strength Index」とします。
  • 略称:このインジケータの略称です。他のインジケータ名とかぶらないような名前を付けてください。ここでは「MARSIndex」とします。
  • LabelMask:Relative Strength Index (%tpr%) をMA Relative Strength Index(%tpr%, %MA1pr%,%MA2pr%)に変更します。%と%で囲まれているのが入力パラメータで、インジケータに渡すパラメータとして利用できます。%と%で囲まれているtprとかは、インジケータのプログラムのほうで利用可能な変数になります。
    %tpr%は、RSIの計算期間、%MA1pr%は10 日移動平均指数、%MA2pr% は30 日移動平均指数です。
  • 設定場所:インジケータを表示する場所を示します。
     既存フレームは、チャートと重ねて表示する場合
     新フレームは、チャートとは別のフレームに表示する場合
     Inquiry for placementは、上記二つの設定をチャート適用時に選ばせたい場合、に使い分けます。
  • Inspect Alias: はRSIから MA RSIに変えています。通常は「名称」と同じにしてもよいでしょう。利用用途は、、、はっきりしていません・・。
  • Indicator lock:作成したインジケータをロックします。つまりチェックがはいっていると削除できません。
  • メモ:このインジケータに対するメモを入力します。日本語も使えますので、自由に記入しましょう。後で見てもわかりやすいような説明文をつけるとよいでしょう。
  • パスワード:このインジケータの編集時にパスワードロックすることができます。ロックされた場合は、パスワードを入力しないと、プログラムを見ることもできなくなります。

長くなりましたので、続きは次回。

よければ応援お願いしまーーす。m(._.)m ペコリ

FXA証券の口座の開設はこちら(↓)から。

| | コメント (2)

2006年2月18日 (土)

自動売買システムの作成(その1)

前回、チャートトレーダーで自動売買がつくれると、ご紹介しました。

では、実際にどのように作ればいいのか?その方法を説明していきたいと思います。なお、とても1回では説明できませんので、たぶん3、4回に分けて書くことになると思います。最後までお付き合いいただければと思います。
チャートトレーダーは、FXA証券で準備してくださいね。

まずは序章として、どのような流れでシステムを構築していくかを、簡単に説明したいと思います。大まかな流れは次のようになります。

  1. 売買ルールの決定
    当然、これがないと話になりません。
  2. インジケータの作成
    売買ルールを決定するために、インジケータを作成します。
  3. トレーディングシステムの作成
    インジケータを元にトレーディングシステムを作成します。
  4. トレーディングシステムの反映
    チャートにトレーディングシステムを反映します。

まず、「1.売買ルールの決定」ですが、一応サンプルとしては以下のようなルールとします。

「相対強度(Relative Strength Index (RSI))をベースとした10 日・30 日移動平均を引きます。10 日移動平均線が30 日線を越えたら売りポジションがあれば手仕舞い、買いポジションを建てます。反対に、10 日移動平均線が30日線を切り下がったら買いポジションは全て手仕舞い、売りポジションを建てます。」

単純なルールですね。これをもとに、インジケータ、およびトレーディングシステムを作成していきましょう。ちなみに、できあがりのイメージはこんな感じになります。ドル/円の日足に適用してみました。

Usdjpy_day_sample 赤の移動平均線(10日)が、青の移動平均線(30日)を超えたら買い(チャート上の青矢印)。
逆が売り(チャート上の赤矢印)。

単純なルールですが、これだけでめちゃめちゃ利益がでてるような・・。
自動売買恐るべし・・。では、次回を乞うご期待!

よければ応援お願いしまーーす。m(._.)m ペコリ

FXA証券の口座の開設はこちら(↓)から。

| | コメント (0)