読者です 読者をやめる 読者になる 読者になる

FXボーグ | テクニカル実験室

テクニカル分析を使った自動売買プログラムの開発に挑戦!

スポンサーリンク

カルマンフィルターでAR(2)モデルを表現するには・・・。

引き続きカルマンフィルターについて調べたことなどを・・・。 カルマンフィルターは座標や価格のみを使った予測とはちょっと違ってて、状態空間という内部の隠れた状態を推定するのが特徴なのだそうです。 で、その状態空間というのは最低限のルールに従え…

今更ですがカルマン・フィルターなどを勉強中。

ひさびさのブログ更新となりました。ここのところ、以前から「やんなきゃなー」と感じていたことの2、3個を着手しているのですが、どれもやりかけの状態なのでブログの方も後回しになっておりました。 その中に「相場環境の認識用に何かつくる」というのが…

Windows Server2012R2にSSHデーモンを導入(MSYS2+Cygrunsvr+OpenSSH)

Windwos Server2012R2にSSHサービスを導入したのですが、MS公式の「Win32-OpenSSH」がこける為、いろいろ試した中で最終的にMSYS2版を採用しました。 どうして急にSSHサービスかと言うと・・・ ネットで「CPU×2/メモリ6GB/HDD500GB」で月額12$とい…

mqlからDLL内のインスタンス・データにアクセスする方法

こちらのフォーラムにDLL内クラスをmqlにインポートする方法が書いてあったので試してみました。

【cTrader】MTAトレンド インジケーターをアップしました。

MTA(マルチスケール・トレンド・アナリシス)は Ilya Zaliapin氏らにより開発された区間線形近似アルゴリズムです。うまく分割出来ているようなのでインジケーター化してみました。 ▼USDJPY(1H) MTAの仕組み上リペイントしますが、そこまで頻繁に変…

有向非巡回グラフでMTAアルゴリズムの高速化(その2)

やっとこさオンライン版MTAアルゴリズムのコードが出来ました。今回の修正では、頂点を先に求めてから区間分割を行うので、設定によってはオリジナルと結果が異なりますが、標準設定では問題ないレベルと踏んでいます。 EURUSD(15分足)3/6 ~…

有向非巡回グラフでMTAアルゴリズムの高速化(その1)

MTAアルゴリズムを高速化するアイデアを考えてみました。MTAでは分割可能な全ての区間の統計量(残差平方和)を計算しているのですが、以下のグラフに沿って集計していけば事前に全ての区間の統計量を求めることが出来そうです。 こんな感じで全ての辺…

MTAアルゴリズムと単純トップダウン法との比較

前回の記事ではMTAを移植しましたが、一般的なトップダウン法とどのくらい違いがでるのか気になったので比較してみました。 トップダウン法はこちらのソースを使用しました。https://www.msi.co.jp/vmstudio/materials/tech_web/timeseries.html トップダ…

MTA区間線形近似アルゴリズムをPythonに移植。

MTA(マルチスケール・トレンド・アナリシス)は Ilya Zaliapin氏らにより開発された区間線形近似アルゴリズムです。たまたまこちらのブログで知りました。 こちらにMATLABによる実装があったので、さっそくPythonに移植してみました。(とりあえず動いたレ…

【cTrader】1分足を使って上位足の標準偏差・歪度・尖度を求める。

こちらのブログのOne-Passアルゴリズムを使用して、1分足の終値を使用した基本的な統計量を計算するインジケーター(cAlgo版)を作ってみました。 (EURUSD15分足) ・上段・・・ボリンジャーバンド(平均と ±2.0標準偏差 ) ・下段・・・歪度(青ライン…

cTrader でバックテスト

前回のヒストリカルデータを使用して、cTraderのバックテストを試してみました。バックテストを行うにはcBotという売買プログラムも必要になりますが、今回はボリンジャーバンドを使った簡単なボットを作ってみました。 EURUSD15M 2006.1~2017.2

JForexのヒストリカルデータをcTrader用に変換する。

cTraderのバックテストでCSVファイルのヒストリカルデータを選択できるようなのでJForexのヒストリカルデータで試してみました。 JForexでなくてもDukasCopyのサイトに行けば同等のヒストリカルデータを入手できますが、JForexの方が圧倒的に速いのでこち…

「cTrader」おためし中。プログラムはMql5とNinjaScriptの間をとった感じ。

「今後はmt4でやろう」と決意してまだ1週間ですが、どうしてもmq4で開発すると思うとやる気が起きず、軽い気持ちで「cTrader」をダウンロードしてみました・・・。 cTraderはいくつかの海外ブローカーで使われているプラットフォームで…

短期のブレイクアウト戦略

前回の「SnRインジケーター」を使った短期のブレイクアウトシステムがだいたい仕上がってきました。まだまだ意図通りに動かないところもあるのですが、方向性としては定まってきました。 「短期のブレイクアウト戦略」が優れてるなと思ったのは・・・ ・トレ…

SimpleAutoTL と SnR インジケーターをMT4に移植。

久しぶりのブログ更新です。この間はデューカスコピーの「JForex」を試していたのですが、思いのほか手こずって結局あきらめてしまいました。・・・それでいろいろと迷っていたのですが、だんだん「MT4でもいいか」という気になって、とりあえずイ…

ひさびさに風邪でダウン。

ひさしぶりに風邪を引いてしまい寝込んでいました。今日からようやく体調が戻り、今更ながら通常の日々に感謝しているところです。 ここらで少し立ち止まって、自分の考えを整理してみました。 「平均回帰戦略」 平均回帰戦略については「落ちたナイフは床に…

ブレイクアウト後のプルバックをEA化。

トレンドラインをブレイクアウトした後にプルバックでエントリーするという定番の手法をEA化してみました。 トレンドラインには「SimpleAutoTL」を使用し、プルバックの判定には「GannSwingBars」を使用しています。 EURUSD4H EURUSD過去10年(2017.01.12…

SimpleAutoTL v2.2をアップしました。

SimpleAutoTL v2.2をアップしました。変更点はパフォーマンスの改善がメインですが表示方法なども変えてみました。 EURUSD4H

SimpleAutoTLのブレイクアウトシステム

明けましておめでとうございます。今年もどうぞよろしくお願いします。この頃はトレンドラインを使って何かシステムを作ろうと模索しているのですが、今回はブレイクアウトシステムを試してみました。 (主要9通貨10年分)

SimpleAutoTL インジケーターをNinjaTraderへ移植。

検証用に SimpleAutoTL インジケーターをNinjaTraderに移植しました。一緒にブレイクアウト判定も行っています。こんな感じです。 (USDJPY15分)※2016.12.26 画像を最新版のものに差し替えました。 それから Windows10でフリーズしまくっていたので、今更…

SimpleAutoTL v2.0 をアップしました。

SimpleAutoTL v2.0をアップしました。前回との違いはラインを引くタイミングです。具体的には高値や安値の更新時だけラインを引くようにしました。また過去のラインを表示する機能も追加しています。こんな感じです。 (USDJPY15M )

SimpleAutoTL インジケーターをアップしました。

三角形を使用して簡単にトレンドラインを引く方法を考えてみました。こんなかんじです。 ラインの求め方・・・最安値から現在までのバーを凸包し、得られた線分の中から三角形の面積が最大となるラインを求めます 。

傾きと標準誤差を一緒に計算する方法。

最小二乗法で切片と傾きを計算しながら、同時に標準誤差まで計算できる方法がこちらの記事に載っています。とても簡単な計算なのでExcelでサンプルを作ってみました。 http://hachisue.blog65.fc2.com/?mode=m&no=106 今回、計算に使用するデータはxとyが…

前回の続き。今度はT検定のP値で最適化

前回の記事のつづきで今度はT検定のP値を使って最適化を行なってみました。前回の平均絶対誤差で比較した場合は短い期間が選択されやすいという問題がありましたが、T検定ではうまく判定できているようです。 トレンドラインの幅は Sqrt(残差平方和/個数)…

回帰チャネルの期間最適化。

ひとまずサポート・レジスタンスが表示できたので、今度はトレンドラインに取り掛かっています。まずは回帰チャネルの期間最適化を行なってみました。 ・青チャネル・・・30ー120期間を5バー間隔で回帰チャネルを表示 ・黄チャネル・・・平均絶対誤差…

SnR+ZigZagでヘッドの候補を表示します。

前回のSnRインジケーターとZigZagを組み合わせてみました。サポートとレジスタンスに収まっているZigZagの反転サインを無視することで、主要な反転サインが捉えやすくなります。 またZigZagは確定した頂点だけを表示してリペイントさせないようにしています…

SnR インジケーターをmqlに移植しました。

前回のSnRインジケーターをmql5に移植しました。通常のチャネルと違って、高値安値の更新時に少し戻すのを確認してから線を引き直します。 ・赤点・・・レジスタンス ・青点・・・サポート

SnR インジケーター(NinjaTrader版)をアップしました。

SnR インジケーターをアップしました。サポートとレジスタンスを表示します。サポートとレジスタンスの反転にも対応してみました。 ・赤ライン・・・レジスタンス ・青ライン・・・サポート

RangeTracker インジケーター(NinjaTrader版)をアップしました。

RangeTracker インジケーター(NinjaTrader版)をアップしました。トレンドが休止した後にレンジが形成されたら、そこからドテンし続けます。 こんな感じです。(USDJPY60分) ・上段・・・RangeTracker インジケーター ・中段・・・FlexTrend インジケータ…

シャンデリアストップの位置で逆に仕掛ける。

シャンデリアストップはトレーリングストップの一種ですが、ストップの位置を求めるのにATRを使用するのが特徴です。今回は通常の使用方法とは異なり、この位置からのエントリーを検証してみました。ふるい落とし後の大きな値動きをうまく捉えることがで…

FlexTrend インジケーターをアップしました。

以前作ったカスケードインジケーターを平滑化してみたのですが、こちらの方がトレンドの判定に向いてそうです。「システマティックトレード」の予測値っぽくシグナル化してみました。 ・赤ライン:FlexLine インジケーター ・黄ライン:EMA(128期間) ・…

平均回帰戦略の有効な時間帯

平均回帰戦略のシステムを最適化するために、いろいろなフィルターを試しているのですが、多少の効果はあってもどれも今一つという感じです。そこで今回は気分を変えて時間帯によるフィルタリングを行ってみました。 時間帯によるエッジはそんなに長く続かな…

ZorroからRを使うのはとても簡単。

ZorroからRを呼び出せるようなので試してみました。今回行ったのはハースト指数です。 Hurst 指数 (Hurst exponent) とは 時系列データに含まれるある種の “規則性” を表す特徴量であり, もともとは, 英国人水天文学者 Hurst によるナイル 川の水位時系列デ…

G Band インジケーターをアップしました。

ボリンジャーバンドって意外と機能するんだなと感心したので、以前作った G Trend をバンド風にアレンジしてみました。 USDJPY 5M

順張り系スイングトレードの優位性など

平均回帰とトレンドフォローには目処がついたので、今回はスイングトレードのシステムを作ってみました。といってもトレンドフォローと平均回帰を都合よく組み合わせただけですが・・・、こんな感じです。 1.上位足でトレンドが生じるのを待ちます。 2.…

Zorroで簡単なストラテジーを作る。

Zorroの勉強に簡単なストラテジーを作ってみました。プログラムは「LITE-C」という言語で書きます。これは非プログラマ向けに作られた言語らしく、より簡単に記述できるように工夫されています。 まずはEMAの交差による売買ロジックを実装してみまし…

Zorro から Oanda APIにブリッジ接続する。

11月からベーシックコースでAPIが使えなくなってしまうOANDAですが、とりあえず様子を見ながら開発を進めて行こうと思います。 OANDAのAPIを使うにはトレードシステムを自作する必要があると考えていましたが、こちらの「Zorro」を使…

PySystemTradeのチュートリアルを試してみました。

PySystemTradeは「システマティックトレーディング」の著者が公開されているバックテストエンジン(Python3で動作)です。ポートフォリオにも対応しているようです。こちらにチュートリアルがあるので実際に試してみました。

「システマティックトレード」の複合予測値を試してみた。

「システマティックトレード」という本の中で「複合予測値を使ったらいいよ」というようなことが書かれていたのでさっそく試してみました。 複合予測値とは複数のシグナルを合成したものですが、書籍にも載っている「EMAクロス」の例を試してみました。予測…

「システマティックトレード」に書いてある予測値を標準化する手順。

「システマティックトレード」では複数のトレードルール(インジケーター)を合成して「複合予測値」というものを作ります。この複合予測値を使うと一つの投資対象のシャープレシオの平均がなんと「0.40」になるそうです。(ちなみに、この著者のシステム…

ボリンジャーバンドとADXを使った逆張りシステム

少し前にボリンジャーバンドによるシンプルな逆張りシステムを作成しましたが、これにADXを追加してみると思いの外、パフォーマンスが向上したので条件を変えてバックテストを行ってみました。 ▼主要な9通貨(5分足)10年分のパフォーマンス

ブートストラップ法によるポートフォリオの最適化

資産運用ではアセット・アローケーション(資産配分)が重要なプロセスだとされています。シストレにおいてもトレード戦略や投資対象を分散することでパフォーマンスを向上させることができるようです。 ロバート・カーバー氏著の「システマティックトレード…

トレンドフォローと平均回帰のパフォーマンスを比較

トレンドフォロー戦略とカウンタートレンド戦略を同時に稼働すれば、リスクヘッジになるそうなので、主要な9通貨10年分のパフォーマンスを比較してみました。

逆張りでブレイクアウトを回避する小技。

このところ、逆張りシステムのバックテストを繰り返しています。とりあえず有望そうなのはZスコアを使用したものなのですが、ブレイクアウト時に連敗するという難点があるため、こんなインジケーターを作ってみました。 ・黄ライン・・・ボリンジャーバンド…

David Varadi 氏のAggregate-M をMQL化。

David Varadi 氏のAggregate M インジケーターをアップしました。オリジナルの記事はこちらです。 Aggregate M は 短期と長期の価格パーセントランクを合成したものです。上下5%にタッチしたとこを強調してみました。

カウンタートレンド戦略の追加とオシレーター選び

「トレンドフォロー戦略のリターンを平滑化するのによく使われる非常に効果的な方法は、カウンタートレンド戦略を加える事だ。 」というようなことが「トレンドフォロー白書」に載っていたので、カスケードトレンド・システムにも逆張りの追加を検討していま…

DVI Indicator for MQL5.

DVIは2008年にデビッド・ヴァラディ氏が考案したインジケーターです。既に幾つかの言語へ移植されており、Web公開も大丈夫そうなのでMQL5版を作ってみました。(こちらのコメント でも問題なさそう) 中段・・・DVI(ルックバック:252、スム…

RSI Switch インジケーター v1.1 をアップしました。

RSI Switch インジケーター v1.1 をアップしました。前回のインジケーターをEAに組み込んでバックテストを行っていたのですが、その過程でいろいろ修正した内容を反映しています。バックテストの結果の方は「MAクロスよりちょっといいかな」という感じで…

RSIの偏りを利用したレジーム判定

こちらの記事を参考に純テクニカルな方法でレジーム判定を行ってみました。記事に載っている判定方法はこのようなものです。 RSIが40以上を推移していれば「上昇トレンド」RSIが60以下を推移していれば「下降トレンド」RSIが70以上、30以下の範囲を…

Chaos Regime をフィルターにしてバックテスト

前回のChaos Regimeインジケーターをフィルタとして使ってみました。ベースとなるシステムは例のごとく「カスケード」です。 このシステムは1時間足を使っている為、レジーム・スイッチには4時間足を採用しました。あと前回のインジケータに計算ミスがあっ…