最新7日分の記事が表示されます.古い記事閲覧は右のFX記録一覧200Xか右上のサイト内検索をご利用ください.サヤ取りはやめましたが引き続きサヤ取りエントリーサインは以下のdiary内で発信します エントリーサイン発信も停止しました.
検証システム
2008年はマーフィのスーパーボリンジャーを目安にしてトレードしていたが,2009年10月でマーフィ手法は止めた.理由は2009年前半では利益よりも損失の方が大きかったこと,およびDealBook 360でマーフィ手法を3年間バックテストした結果,利益になったのは2008年だけであることが判明したからだ.マーフィ手法(スーパーボリンジャー)は通用しなくなってしまった.これは当たり前のことで,同じ手法が長い間通用することがないのは相場の常識だ.
2009年末からは自分のオリジナルの手法でトレードしている.これは3年半のバックテストで毎年利益を出すことができた手法だ.この手法がうまくワークするかどうかは,これからのフォワードテストで明らかになる.この手法が儲かっても儲からなくても将来公開することはない.儲かる方法なら人に教えるのは愚かなことだし,儲からない手法を人に教えるのは詐欺だからだ.
2010年3月からACDシステムのフォワードテストも開始した.私のACDシステムは自分流にパラメータを変えている.ACDシステムの基本は原典であるマーク・B・フィッシャーのロジカルトレーダーを参照のこと.ACDシステムチャートは私のCTLプログラミングによる.ACDシステムの課題は今後の検証対象とする.
2010年4月に"Evidence-Based Technical Analysis"(邦題:テクニカル分析の迷信)を読んでACDシステムが宗教の類であることに気付かされた.ACDシステムを検証可能なAKシステムに作り変え,今後はこれをテストすることにした.
★情報求む!プログラミング可能な日本株チャート★
2009/10/05
FXCMらくちんFX
他人の作ったシステムトレードを使って儲けるという取引形態をちらほら見かけるようになってきた.最近では取引業者数社がこの形態の取引を正式に扱うようになった.その中で一番大々的にやっているのがFXCM社の「らくちんFX」だ.このらくちんFXはデモも可能なので私はデモでチャレンジしている.ただし,使えるシステムトレードの数が多すぎて(数百個),どれを選んで良いのか皆目検討が付かない.バックテストの結果が良いものを選んだつもりだが,「おい,こんなところで買う(売る)なよなー」というお間抜けポジションを作りまくったあげく損切りの嵐で現在元証拠金の2割を溶かしてしまった.箸にも棒にもかからないような取引ばかりなのだが,これでもバックテストの結果はそこそこ良かったシステムトレードなのだ.システムトレードを作ることの難しさがこのデモトレードでも分かる.バックテスト(過去)の結果が良くてもフォワードテスト(将来)の結果が良いとは限らないのだ.相場は生き物なので常に変化しており,それに合わせてシステムトレードも進化していかないと利益を出すのは難しい.
そう言えば,今年の前半非常に好調だった神谷システムというシグナル配信サービスも最近はふるわないと聞く.タートルズ達が使っていたブレイクアウト法も今では通用しない.有効なシステムトレードを作るためには,裁量で勝てるほどの相場力が設計者に必要なのだろう.
FXを始めてから
1年と247日経過
2009/10/03
オフラインモードについて
CTLのストラテジーをバックテストする場合,マニュアルには「DealBook 360をオフラインモードで使え」とだけ書いてある.その指示通りにDealBook 360をオフラインモードで起動すると,チャートには何も表示されない.当然バックテストなどできない.
これはマニュアルが不親切なためで,DealBook 360でバックテストするにはそれなりに手続きをふまないといけないのに,そのことがマニュアルに書いていないのだ.DealBookでオフラインモードを使うには,
- まず通常モードでDealBookを起動する.
- チャートの本型アイコン(期間指定)をクリックしてチャートデータの期間を指定する.
- ファイル->ローカルデータ->エクスポートを選択する.
- 参照先にチャートデータ保存フォルダを指定する.保存フォルダはどこに合っても良い.このフォルダの下にサブフォルダが出来てチャートデータが保存されることになる.
- 銘柄(通貨ペア),期間を選択する.(GBP/JPY,日足等)
- エクスポートボタンを押す.
- 終了.
で,必要なチャートデータをエクスポートする.これをオフラインモードで使う訳である.オフラインモードでは,
- オフラインモードでDealBookを起動する.
- ファイル->ローカルデータ->インポートを選択する.
- 参照先にチャートデータ保存フォルダを指定する.
- 銘柄(通貨ペア),期間を選択する.保存されている銘柄,期間しか選択できない.
- インポートボタンを押す.
- 終了.
でチャートデータを取得する.これ以降オフラインモードのDealBookにチャートが表示できるようになり,ストラテジーを適用するとバックテストができる.実は通常モードでもバックテストはできるのだが,オフラインモードには次の利点がある.
- スプレッドを設定できる
- スリッページを設定できる
オフラインモードではより正確なバックテストができるという訳である.でも,プログラム開発中はモードを切り替えるのが面倒なので,通常モードでバックテストすることが多い.プログラムが完成してからオフラインモードで正式なバックテストをすることになる.
2009/10/02
input文活用の勧め
CTLのストラテジーを作るとき,input宣言でパラメータを設定することを勧める.input宣言したパラメータはDealBook360のストラテジー入力タブで値を変えることができる.パラメータ最適化のために使うと便利だ.この機能を使わないとパラメータをソースレベルで変えて,Chart Studioでベリファイしてインストールし,DealBook360でストラテジーを再度設定しないといけない.これはとても面倒だ.
ただし,過去チャートに対して最適化を過度に行ってもフォワードテスト(未来)の結果は良くならないので最適化もほどほどに.
2009/10/01
CTLとタイムスケール
CTLの実行時にチャートに記憶されているローソク足の数だけ処理を繰り返すと昨日書いたが,このためにCTLのタイムスケール管理には制約が生じる.CTLは現在表示されている時間足(日足,60分足等)に依存した動作をするのである.つまり,日足を表示させているときにCTLプログラムを実行させると,プログラムは1日(分のローソク足)につき1回動作する.60分足だと,60分に1回動作する.この特徴は単純なストラテジーをプログラミングする分には特に困ることにはならないが,複数のタイムスケールを用いたストラテジーをプログラミングするためにはテクニックが必要となる.複数のタイムスケールを使う場合には,最も短期間のタイムスケールにてCTLを動作させ,長い期間にタイムスケールに関する処理はプログラム上で時間を間引きして動作させることが必要となる.これはかなり面倒なプログラミングになる.しかしこれを有効に活用すると,日足トレードであっても60分足で判断できる最適なポイントでエントリーするなどということが可能になる.単純に日足でストラテジーを組むと,日足の終値が確定する朝にしかエントリーやエグジットができない(指値・逆指値注文を使う場合を除く)のに対して,より有利なストラテジーが作成できる.
2009/09/30
MT4の方が良いと言う人もいる
昨日はCTLの勧めを書いたが,MT4の方が良いという人もいる.MT4だと,ポジションを持った後に一度切断して再接続した際にポジションが認識されているが,CTLの場合はポジションを認識せず,手動でポジションを決済しなければならない点が,MT4の方が優れている点だ.確かにこのMT4の機能は便利だ.このことも踏まえてプラットフォームをCTLにするか,MT4にするか決めた方が良いだろう.
FXを始めてから
1年と242日経過
CTLの実行順序
CTLのプログラムは普通のC言語のプログラムと同様に上から下へ実行して行く.ただし,1回だけの実行ではなく,チャートに記憶されているローソク足の数だけ同じ処理を繰り返す.ローソク足は最も古い物を一番に処理して順々に新しい足を処理して行く.最後に最新のローソク足を処理する.最も古いローソク足はfront関数で得ることができる.
i := front(close);
変数iには最初のローソク足を示すseries型の添え字になる数値が代入される.この場合
close[i]
で参照されるのは最も古いローソク足の終値となる.
最も新しいローソク足はback関数で得る.
j := back(high);
変数jには最後(最新)のローソク足を示すseries型の添え字になる数値が代入される.この場合
high[j]
で参照されるの最後のローソク足の高値となる.
この考え方は初めての人には非常に異質に感じられると思うが,慣れると結構便利だと思うようになる.CTLは特殊な言語なのでまず慣れることが大事だ.
余談だが,FPGAやASICのロジックを表現するハードウェア記述言語にVHDLというものがある.私はこれもたまにプログラムするのだが,VHDLを覚えるときもCTLを覚えたときと同じような違和感を覚えた.VHDLを書くにはRTL(レジスタートランスファーロジック)の概念が頭に入ってないと難しい.VHDLとRTLとの関係は,CTLとローソク足との関係に非常に似ていると思う.
2009/09/29
CTLとMT4
自動売買のプラットフォームはCTLを使うDealbook360よりも,MT4(MetaTrader4)を使う製品が圧倒的に多い.CTLは覚えるのが簡単,MT4はきめ細かい処理が可能,という特徴があって使い分けられている.対応業者はMT4の方がCTLより多い.
しかし,日本の場合MT4よりはCTLを勧めたい.日本のMT4対応業者と言えば121証券だが,スプレッドが広がる,約定が遅い,注文をはじかれることがあるなど評判が悪い.そこで,ほとんどのMT4ユーザーは国外のFXDDを使っているようだ.日本のCTL対応業者はGFT,サザがあるが,こちらはスプレッドが広がることもなく,約定性能が高い.業者とのやりとりも日本語で済むなどメリットが多い.
変数の型
CTLには4つの変数型がある.number, series, bool, stringだ.この内boolはTrueとFalseを持つからC言語等と同じで分かりやすい.numberはC言語のintとfloatを包含しており,整数も少数も代入できる.stringはC言語と同じで"で囲まれた文字列だ.そしてseries,これは他の言語には無い概念でCTL固有のものだ.
seriesはC言語で言うと1次元配列宣言に当たる.しかし,C言語の1次元配列とは異なり,便利な使い方ができる.
- 配列全体のコピーが代入文で済む.series型のAとBという変数があった場合,
A := B
で,Bの要素が全てAにコピーされる.配列の大きさを気にすることもない.
- 配列の添字の範囲はローソク足の数である.
- 添字の最大値が最も最近のローソク足を指す.
- Indicatorのdraw節で指定すると配列の要素をチャートにプロットする.
などがseries型の特徴だ.最初は違和感があるが,慣れてしまうと便利に使える.
今日はここまで.
2009/09/28
FXを始めてから
1年と240日経過.しばらくCTL入門講座が続きます.CTLに興味がある人はお読みください.
分かり難いのはIndicator
CTLの3モジュールの中で最も分かり難いのがIndicatorだ.Strategyはbuyかsellのところを見れば分かるし,FunctionはC言語(PASCALと言った方が適切か)の関数と同じだし,簡単だ.ところがIndicatorが分かり難い.特にdraw節が初見の人には意味不明だろう.
drawはresultと読み替えると分かるかもしれない.drawは次のことを宣言している.
- 出力が納められる変数であること
- この変数はseries型であること
- この変数は値がチャートのグラフにプロットされること
これら3つのことをまとめて表しているのがdraw節なのだ.これが直感的に頭に入ると後は簡単だ.本文のbegin節以降には必ずdraw節で宣言した変数への代入文がある.しかもその代入文の右辺は必ずseries型であるはずだ.
Indicatorで出力となるdraw節の変数はStrategyから呼び出す(call)ことができるのも覚えておくと良い.そのときの呼び出し形式は
Indicator名.変数名
となる.
今日の勉強は以上.

