WPF: VS2019でSystem.Windows.Formsが使えない

問題

Visual Studio 2019(=VS2019) で.cs内に

using System.Windows.Forms;

とするとエラーになる。

解決策

.csprojに「 <UseWindowsForms>true</UseWindowsForms> 」を追記

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
	<UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

</Project>

補足1

これで使えるようになるが、例えばMesssageBoxなどを利用すると

エラー CS0104 ‘MessageBox’ は、’System.Windows.Forms.MessageBox’ と ‘System.Windows.MessageBox’ 間のあいまいな参照です

となってエラーになるので、

using MessageBox = System.Windows.Forms.MessageBox;

としておけばよい

補足2

ソリューションエクスプローラー/依存関係から「参照」で追加できるみたいな記事が多かったが、追加してもエラーになって無理だった。

FileZilla 致命的なエラー: サーバーに接続できません

久しぶりにFileZillaでwpx(レンタルサーバー)に接続しようとしたら「致命的なエラー: サーバーに接続できません」となって接続できなかった。

問題1:”ECONNABORTED – 接続が閉じられました” への接続の試行が失敗しました。

サーバー情報はあってるはずなのに。。。

「”ECONNABORTED – 接続が閉じられました” への接続の試行が失敗しました。」

こんなこと言われ接続できない。。。

同時にホップアップ画面で「・・・xmlファイルへの書き込みに失敗しました」

というメッセージも発生

ググったところ、下記で解決しました的な記事があったので、トライ。

TLS2.0⇒ TLS1.0に変更

これで、接続が進んでいった・・・・が、次の問題発生。つづく。

問題2:「 致命的なエラー: サーバーに接続できません 」 の発生

接続が進んでいったので成功?っと思ったのですが、

コマンド: PASS ***
レスポンス: 530 Login incorrect.
エラー: 致命的なエラー: サーバーに接続できません

こんな感じで、別のエラーが発生。

ググってみると、自宅のIPアドレスが国外と判断されてるときにも起こるっぽいので、wpx側(レンタルサーバー側)の設定を変更

WPXの国外IPアクセス制限 ON⇒OFF

wpxの管理画面から少し進んでいって、FTPアカウント設定を変更

国外IPアクセス制限 ON⇒OFF

変更後、再びFileZillaで接続をトライ

状態: 接続を確立しました。ウェルカム メッセージを待っています…
状態: TLS を初期化しています…
状態: TLS 接続が確立されました。
状態: ログインしました
状態: ディレクトリ リストを取得中…
状態: “/” のディレクトリ リストの表示成功

こんな感じで無事成功!

なんで自宅IPアドレスが国外認識されているのか?

NURO光だから?

わかりませんが、これくらいしか思い当たる節がない。

おわり

【無料】FXのEAの最適化倉庫

FxのEA(=自動売買)は、運用するうえで最適化は必須だと思っています。

ただ、最適化のやり方もいろいろあって、いろいろやると過去にやったことも忘れてしまうかとおもい、メモの意味でブログに残すことにしました。

PCの中に記録を残してもよかったのですが、せっかくなのでブログで公開してもいいかな程度の気持ちです。(逆に、心変わりして消えるかもです)

最適化結果のセットファイルはアップしていますが、上記のため無料です。欲しければ、勝手にダウンロードしていただいて構いません。(←現在は、アップロードできなかったのでtwitterのDMで直接配布を検討中。アップロードできない問題は対策中)

最適化条件も載せておきますので、その条件で同じことやる手間が省ける程度の認識の方がいいかもです。アップした結果を参考に、探索条件以外で最適化すればもっとよい設定値を見つけることができるかもしれませんよ~。

注意点としてはこれらのセットファイルで運用しても損することもありえます。ご留意ください。

いいねと思ったら、Twitter (@Kajika_Trade)をフォローしてね(^ ^)

■kamesanEA

2022年1月~4月(1分足OHLC ver)

最適化条件

オプティマイズ結果

最適化結果ですが、、、???

すべてトータルマイナスの結果でした。次は、全ティックで実施していきます。

最適化キャッシュファイル

(こちらもアップロードできるように対策検討中)

レポート

これはアップロードできた

一番上のやつをバックテストしてみた結果↓

セットファイル

ここにダウンロードリンクをつけたかったんですが、「.set」がアップロードできませんでした。すみません。アップロードができるようになるまで直接お渡ししようと思うので、ほしい方はtwitter (@Kajika_Trade) にDMしてください。

2022年1月~4月(全ティック ver)

最適化条件

オプティマイズ結果

レポートが欲しければどうぞ↓

残高最大で最適化して、その結果の中からPNスコアで上位を抽出。PNスコアはMT5では計算できないので、結果をExcelに抽出して、エクセルで計算

Excelに抽出するとパス番号がなんか変わったけど、パス7327がPNスコア最大となっていたので、そのパラメータでバックテストを実施。その結果が↓。

そこそこいい曲線ではないでしょうか。

セットファイルはこちら(ダウンロードリンク

2022年1月~4月(M3 全ティック ver)

最適化条件

足:3分足
その他詳細:画像参照


オプティマイズ結果

Excelに抽出すPNスコアで評価。PNスコアが上位でよさげなものをチェック

良さげなものをアップしておくので、お好みで使ってください

ところで、PNスコア使えば結構簡単にいいやつが見つかります(^ ^)

https://kajikablog.com/trading/pnscore/

良さげなもの#1

PNスコア的にはとってもよい。DDが少々大きいのが気になる。

セットファイルはこちら(ダウンロードリンク

良さげなもの#2

DDも比較的少なくて実用的?

セットファイルはこちら(ダウンロードリンク

参考:この設定で2021/1~2022/4でBTしたらゼロカットされたので、最大ポジション数を5に変更してBTしてみた。↓

年末の一方通行以外は結構いい感じ。実運用では、原資たまったら抜いておくのがよさそう。

2021年1月~12月

準備中

■ATM

準備中

■最適化環境

・CPU: Ryzen9 5950X 16core 32スレッド

・メモリ : 64GB

・方式:基本的には遺伝的アルゴリズム

windowsでgfortran+MPIの導入

背景

MPI(=並列計算)がしたい。fortranのプログラムコードは自分で書く。

MPIのプログラムコードは書けるけど、windows(10)でMPIの環境構築をしたことがない。

今回は、windowsでgfortranが+MPIが使えるようにしたので、その備忘録

やったこと

・msmpisetup.exe と msmpisdk.msiのダウンロードとインストール

https://www.microsoft.com/en-us/download/details.aspx?id=56727

・Git for windows SDK を用いたMSYS2のインストール

https://github.com/git-for-windows/build-extra/releases

・環境変数に「C:\git-sdk-64\mingw64\bin」 を追加

コマンドプロンプトでもgendefやdlltoolコマンドを使えるようにするため

・C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x64内のmpifotr.hを実行フォルダにコピペ

以前入れていた「C:\TDM-GCC-64\bin」のgfortranとパスがケンカして動作不要を起こしている雰囲気があったので、そちらのパスを環境変数から無効化(パス名に[___]を追加して通らないようにした)

⇒その後、gfortranはTDMの方のパスと復活させた

gfortanはTDMの方を使うべし(git-sdkのバージョンが新しすぎてバグがあった!?)

・ 環境変数に「C:\git-sdk-64\usr\bin」 を追加

git-sdk-64 のgfortranが使えるようになる

git-sdk(=mingw64)のgfortranを利用したからエラーやワーニングが発生したっぽい。発見理由は、TDMのgfortranでmpi.f90をコンパイルした後に、mingwのgfortranの方にパスを変更していて、そこからエラーが多発。その後、mpi.f90のコンパイルをやり直したら、mpi.f90すらコンパイルできなかった。そこで、TDMの方に直したらできた。しかも、MPIの実行成功も確認できた。

次に、「mpi.f90」か「mpif.h」のどちらを利用するかでやり方が変わる。

ちなみに、学生時代はmpif.hの方を使っていたけど、環境も全然ちがうし、ワーニングもいっぱい出てくるので「mpi.f90」の方を今後は使おうとおもう。たぶん、有償であるインテルコンパイラとかを使えば、苦労はないのかな?知らんけど

gfortranのコンパイラの選択ミス(かも)。(確認はしてないが)TDMの方のgfortranならmpif.hでも成功するかも

mpi.f90を利用する場合

・C:\Program Files (x86)\Microsoft SDKs\MPI\Include内のmpi.f90を実行フォルダにコピペ

・mpi.f90を編集、その後edit_mpi.f90に変更(書き換えたファイルと区別のため)

変更箇所:「 PARAMETER (MPI_ADDRESS_KIND=INT_PTR_KIND()) 」⇒「 PARAMETER (MPI_ADDRESS_KIND=8) 」

モジュールとして変数を準備する感じ。

>gfortran hello_use.f90 -o uuu libmsmpi.a

>mpiexec -n 4 uuu.exe

mpif.hを利用する場合

C:\Program Files (x86)\Microsoft SDKs\MPI\Include内のmpif.hを実行フォルダにコピペ

mpif.hを編集、その後edit_mpif.hに変更(書き換えたファイルと区別のため)

変更箇所:「 PARAMETER (MPI_ADDRESS_KIND=INT_PTR_KIND()) 」⇒「 PARAMETER (MPI_ADDRESS_KIND=8) 」

>gfortran -fno-range-check -o aaa libmsmpi.a

参考にしたところはこれでいけると書いてあったが、エラーを大量にだされた。

>gfortran -fno-range-check -fallow-invalid-boz hello.f90 -o aaa libmsmpi.a

としたら、一応成功した。

 ただし、以下のようなワーニングが大量にでる。けど、一応使えた。

Warning: BOZ literal constant at (1) is neither a data-stmt-constant nor an actual argument to INT, REAL, DBLE, or CMPLX intrinsic function

>mpiexec -n 4 aaa.exe

で実行

補足

調べてるとケンカするアプリがあるみたいなので、アンインストールが必要っぽい(入ってなかったけど、今後のためにメモ)

・Microsoft HPC Pack 2008 R2 のアンインストール

TDMを利用したgfortran

http://www.compe.media.kyoto-u.ac.jp/syoseki/windows/windows-gfortran.html

参考リンク

http://www.eng.niigata-u.ac.jp/~yamashita/heiretu/gfortran%20%E3%81%A8%20microsoft%20mpi%20%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9F%20windows%20%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%A7%E3%81%AE%20%E4%B8%A6%E5%88%97%E8%A8%88%E7%AE%97%20%E7%92%B0%E5%A2%83%20%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%B8%80%E4%BE%8B%20.pdf

https://qiita.com/michioga/items/fae993892a808d488648

https://github.com/git-for-windows/build-extra/releases

【自動売買】まずはこれ見よ!PNスコア

ただし、
P:真の勝率
N:取引回数

ここで、真の勝率Pは

ただし、Pf:プロフィットファクタ

先に結論となる数式を上げてしまいましたが、本文をどうぞ

================================================

気になる自動売買がある

その自動売買がどれだけ優れているのか分からない

上級者にも使える(し、上級者も知らない)PNスコアをご紹介

(このページに来るまでだれも知りません。だって私が開発した指標ですから)

まずはプロフィットファクタ(PF)を見て

自動売買(=EA、bot)を見極めるための簡単な指標は、勝率ではありません。

一般的な指標ならプロフィットファクタ(PF)を見てください。

PFが書かれてなかったら”あやしい”と思った方が無難です。

どの程度の数値があれば優秀なのかは業界(Fxなのか先物なのかとか)で違いますが、FxならPF1.7以上※ 、先物ならPF1.2以上は最低ラインです。

(※FxのEAなら最適化によってPF3以上は出る場合があります)

ではPFが高ければ優秀?⇒NO

次の2つのロジックはどちらが優秀でしょうか?

A: PFが10

B:PFが2

どちらもPF的には優秀なんですが、AのPF10は超魅力的に感じますよね。

でも、ここにはトラップが。。。

質問を追加します。

A:PFが10。取引回数が10回

B:PFが2。取引回数が500回

さあ、あなたはどちらを選択しますか?

私ならBを選択します。

PFは確かに良い指標なのですが、取引回数が少ないと値が大きく振れます。

Aの方は、PF10と言われても取引回数が10回しかなく、そのあとの10回の取引でPFが1を切る(=負ける)こともざらにあります。

Bの方はPF2となりAよりも劣りますが、取引回数が500回もあるのでPF2に対する信頼度があるということです。

Aの方は500回取引するころにはPF1以下になっている可能性も十分にありえます。

PFが高いことに越したことはありませんが、実はPFの値だけではその値の信頼度は判断できません。

PFに信頼度をつけよう!

PFの欠点である信頼度を補えば、かなり優秀な指標ができます。

では、信頼度とはどこからくるか。

ずばり、信頼度が高い=取引回数が多い

取引回数が多いデータは安心感ありますよね。

単純に考えれはPFに取引回数を掛け算すればおわり(以下の式)ですが、

もう少し考えましょう。

まず、PFをより使い勝手のよい真の勝率に変換します

勝った場合は正の値、負けた場合は負の値が便利なので

P⇒P-0.5(=P’)

として、おきましょう。

統計学から取引回数の影響を考える

取引回数があると信頼度がある感じがするのは、どこから来ているのでしょう。

きっと、取引回数があると結果のばらつきが少なくなるからではないでしょうか。

ではそのばらつきの低減効果をいれるか。

統計学を振り返りましょう

分散σ^2を持つ母集団から標本XをN回取り出したときの分散Varは

でしたね。

なので、標本Xの標準偏差sは

です。N回やればばらつき具合が√Nだけ良くなる。

言い換えると、N回の取引回数によって√N分だけ信頼度が増すってことです。

つまり

ここまで来たら、あとは真の勝率P’と合わせればいいです。

となり、これが優劣判断指標(PNスコア)になるので

(再掲)

ただし、
P:真の勝率
N:取引回数

ここで、真の勝率Pは

ただし、Pf:プロフィットファクタ

おわり

自動売買の販売自体は助言業ではない

自動売買の販売に関して、その道のプロの方にアドバイスをいただいたので、ここに備忘録を残す。

自動売買(FxのEA、仮想通貨のbot、先物や個別株のbot)の販売を検討している方はもちろん、

自動売買を買おうとしている方にも参考になるかと思います。

自動売買の販売に関係する法律は、投資助言業務になるかどうか

金融商品取引業の投資助業務をするには、金融商品取引法第29条に基づく登録 (以下、金商登録)が必要。

(参考:関西財務局

金商登録の取得は非常に難しく、自動売買を販売する場合は金商登録が不要の範囲で行う必要がある。

※金融商品取引法第2条第8項
十一 当事者の一方が相手方に対して次に掲げるものに関し、口頭、文書(新聞、雑誌、書籍その他不特定多数の者に販売することを目的として発行されるもので、不特定多数の者により随時に購入可能なものを除く。)その他の方法により助言を行うことを約し、相手方がそれに対し報酬を支払うことを約する契約(以下「投資顧問契約」という。)を締結し、当該投資顧問契約に基づき、助言を行うこと。

金融庁のHPからの抜粋

b. 投資分析ツール等のコンピュータソフトウェアの販売

(注)販売店による店頭販売や、ネットワークを経由したダウンロード販売等により、誰でも、いつでも自由にコンピュータソフトウェアの投資分析アルゴリズム・その他機能等から判断して、当該ソフトウェアを購入できる状態にある場合。一方で、当該ソフトウェアの利用に当たり、販売業者等から継続的に投資情報等に係るデータ・その他サポート等の提供を受ける必要がある場合には、登録が必要となる場合があることに留意するものとする。

会員登録等が不要で、かつスタンドアローンのシステムトレードのソフトウェアの売り切り販売は、基本的には投資助言・代理業の登録は不要と読めます。

VolPot(=私の開発した自動売買ソフト)はスタンドアローンだし、登録不要です。

(参考:https://taurus-financial.com/fa/)

その道のプロに聞いた内容

自動売買の販売で関係してくるのは投資助言業。

自動売買の戦略を売り切りで販売するのは金商登録不要。
継続的にお金をいただいて戦略を提供するのは金商登録必要。
売り切りと称して定期的にバージョンアップして購入者が継続的に戦略ファイルを変更する仕組みも金商登録必要。
戦略ルールの数値変更を購入者のみに通知することも金商登録必要。
戦略ルールを公的な場(新聞雑誌、閲覧制限のないWEBサイト)で発表するのは金商登録不要

VolPotのような注文ソフトを作る時に法令を考慮するとユーザーが変更できる項目が多いと助言とみなしにくくなります。
もっともVolPotは購入者のPC上で動くソフトウェアなので動かす止めるは購入者の手にゆだねられており、それだけでも助言には当てはまらないですが。

金融商品の助言業 = 銘柄、売り買いの方向、価格、数量 についてアドバイスをし報酬を得る事業
ゆえに、公共の場(新聞雑誌、オープンな場のWEBサイト)で何をつぶやこうが投資助言にはなりません。
Lineのオプチャでつぶやいてもいいけど、お金を払った人だけが参加できるグループチャットではお金を得る主体の人はつぶやいてはいけない。
プログラムの場合、人が示唆しているわけではないけど、そのロジックには作った人の意思が反映されているんだよね。と解釈されています。
プログラムがソースコード公開であったり、ユーザーで変更できるようにしてあったりすると、ユーザーの意思が入れられると主張できます。
そして売り切りは助言にはあたらないとして法が執行されています。

原則として、利用者が最後は自分で決めているという状態が説明でき、実態もそのようになっていれば助言にはならないということです。
逆に利用者が最後は自分で決められる状態でも、実質、報酬をもらっている人がすべて操作しているような状態だと、やっぱり法に触れるということです。
実態が重要。

※内容の一部は掲載のために変更あり

つまりVolPotは販売可能

売り切りにすることによってVolPotの販売は可能

サブスクリプションとして提供することはグレー(なのでやりません)

個別に設定値を聞かれても答えられません(ごめんなさい。)

おわり

先物自動売買ロジックのむずかしさ

FxのEAにも手を広げて分かったことだが、
FxのEAの成績が優秀な一番の理由はナンピンがあるから

ナンピンは諸刃の剣で、使えば成績が優秀になるが、使うといつか大きな損失が発生する。
その損失に耐えられる資金があればよいということ。

Fxの場合、ロットを設定できるので資金が少なければ低ロットにして数十ショット打てるようにできる

しかし、先物の場合は、1ショット打つためには約13万円が必要になり、一般人には何十ショットもナンピンできる資金は用意できないはず。

そのためナンピンをすると資金枯渇がさきにくるため退場。

結局、自動売買ロジックにもナンピンが使えないので好成績を生むのがむずかしい

では、先物自動売買に活路は無いのだろうか。。。

いや、あるはず。

Fxと先物の大きな違いに、先物には板情報や歩値情報がある

ブローカーでない限りFxでは、だれが、どっちのポジションを、何ロット注文したかは分からない。

しかし、先物はJPXにすべての注文が集まるので、誰でもその情報を見ることができる。

特に歩値情報に、先物自動売買が勝てる活路があると、信じている

投資における「真の勝率」

投資における真の勝率について書いていこうと思います。

Pf:プロフィットファクタ

先に結論を出してしまいましたが、なぜ、この数式がよいのか説明します。

Fxや先物、株において実は(一般的な)勝率って無意味です。

正しく解釈していれば問題ないのですが、

ほとんどの場合、無意味です。

特にFxのEA(=自動売買)や先物の自動売買(これやってる人は稀)、仮想通貨のbot(=自動売買)を提供や開発している人でまじめな人は

まず勝率(のみ)を謳う人はいません。

なぜなら勝率にはまるで価値がないからです。

勝率は無意味?⇒yes

次のAとBどちらが良いでしょう?

A:勝率95%

B:勝率60%

きっとこの情報だけだとAを選択したくなります。

もうすこし情報を付け加えてみましょう

A:利益幅10円 、損失幅1000円、勝率95%

B:利益幅1000円、損失幅10円、勝率60%

はい、これなら直観的にもBを選択したくなります。

数式的には期待値で考えればOK

A:期待値=10*0.05-1000*0.95= – 949.5円

B:期待値=1000*0.6-10*0.4= + 596円

あまりに極端な例にしましたが、初めの問には値幅が考慮されていません。

勝率だけを見ると、暗に「値幅は同じ」と勘違いしてしまうのです。

一般的な勝率の式を見ても、値幅の項がないですね。これはもともと値幅を気にしなくてよい世界で生まれたからです。

つまり、勝率だけ見てもまるで意味がないということです!

でも、勝率で語りたい。。。

プロフィットファクタ(PF)をご存じですか?

PFを知っていれば、勝率を気にしなくなります。

PFとは、どれだけ負け金額よりも勝金額が多いかの指標です。

単純にPFが1以上であれば勝つことになります。
(※取引回数の少ないPFは信用禁止:別記予定)

まじめなEA開発者(=bot開発者、自動売買開発者)は、まずPFを掲載してくれます。

これこそが最も素早く戦略の優劣を見積もれるからです。

ただ、PFは投資初心者にとってはあまりなじみがなく、直観的な判断には使いづらいです。

(EAのバックテストをたっぷりやっていればPFがいくつが良いのか判断できるようになりますw)

そこで、PFをなじみのある勝率に置き換えてしまえばよいというのが、今回の真の勝率です!

(たぶん)この考え方はネットのどこを探しても載っていません(カジカオリジナル)。

PFを真の勝率に変換

直観的な勝率は、値幅が同じという前提がありました。

逆に、値幅が同じ時の勝率に変換してしまおうというのが、今回の「真の勝率」です。

この勝率なら50%以上なら勝っているし、50%以下なら負けていることになります。

すごく分かりやすく、直観的

でしたね。右辺を式変形していきます。

取引回数をN、値幅をA、勝率をPとすると

なので、

よって、

ここでの勝率Pは値幅が同じ前提の勝率なので、つまり真の勝率のこと。

つまり、

おわり。

バックテストができる安心感:歩値でのBT開発

やっぱりバックテストができるっていいね!

このことを少し。

自動売買を作るうえで、バックテストは必須です。

FxならMT5(MT4)でロジックを組んで、そこでバックテストができます。

というか、バックテストができるロジックしか設定できないって言った方がよい。

先物の場合でも、4本値を使ったロジックであればバックテスト可能。

移動平均やMACD 、ボリンジャーバンドなども結局4本値の数値変換なので同じこと。これらはバックテストできる。

しかし、先物ではナンピンが使えないので(※別記予定)

4本値を使ったロジックに限界を感じ始めました。

そこで、先物だからこそわかる歩値を使ったロジックに着目(独自ロジック)。

歩値には、誰が、どれだけ、どのポジションで売買したかの履歴が分かるので、歩値分析によるロジックに希望をもっていました。

今度は、歩値を使ったロジックにするとバックテストができないというジレンマ。

JPXから歩値を買ってみたけど必要な情報が欠けているから使えない。

バックテストができないので、感と経験でロジックを作成。

ロジックの優劣はフォワードテストしかないので実売買によって確認。

勝つこともあれば大きく負けることも。

いろいろなロジックを検証した結果、いや、検証結果が出る前に自己資金が枯渇。

バックテストができればこんなことないのに。。。。

・・・・

・・・・

悩みました。

そして、結局、自分で歩値のデータバンクを作ることに。

まずは歩値を取得し続けるようなソフトを開発し、

先物が動いている間はずっと稼働させて歩値をため続ける。

そのためにPCを一台購入までした。

その甲斐あって、これまで不可能だった歩値レベルのバックテストが可能になりました。

そして歩値を使ったロジック研究を開始。

そしたら数百回の取引があってもPFが2以上になるロジックまで出てきました。(下図)

画像1を拡大表示

やっぱり歩値分析によるロジックって夢がありますね。

このロジックをVolPotに搭載して、今度は検証に入ります。

欲しい方は、noteで販売していますので、そこからどうぞ。

(note 日経先物自動売買ソフトの有料販売)

数量限定なのでお早目に。

個人での高速取引(HFT)に挑戦。MFTの実践

結論

個人で高速取引(HFT)はさすがに無理なので、中速度取引(MFT)を提唱します。

背景

ガイアの夜明けで日本株における高速(高頻度)取引(HFT)が放送されていました。

https://www.tv-tokyo.co.jp/gaia/backnumber4/preview_20210514.html

HFT=High Frequency Trading

この日本語訳を調べると、高速取引とか高頻度取引とか高速高頻度取引ってのが見つかります。どれも正解だと思います。いかに瞬時に反応できるかが肝だと思うので、私は高速取引ってことにしておきます。

放送を見るまで、HFTという単語を知りませんでした。そして、この取引を見た時は衝撃を受けました。

なんて速度で取引しているんだ・・・

しかも、この取引方法だと、上がるだろう、下がるだろうとかではなく、上がることが(ほぼ)決まっている、下がることが(ほぼ)決まっているから利益が出る取引方法じゃん。

えっ、ズルじゃね?

って思ったのが本音です。

そこから、

いや、待てよ。このズルを個人で出来てしまえば、最強?

と安易な発想をしました。

HFTに挑戦

自動的に情報を取得して、自動的に発注するシステムといえば、岡三RSS。

岡三RSSは歩み値や板情報を読み取って取引できるので、これで対応できるかもと考えました。

<問題発生1>

歩み値が取得できていると思ったのに、実は歯抜け現象が頻発していました。

この現象は当初、全く気が付いていませんでした。

実は、開発したロジックをすぐにモニターしてくれる人が数名います。

自分も運用しているので、そのモニター結果と比較したとき、明らかに結果がちがっていました。

今では、その理由をほとんど把握しており、ほぼ解決しているのですが、当初は理由がまったくわかりませんでした。

注意深く紐解いてていくと、歩み値の歯抜け現象があると突き止めました。

そして今では、その対策をしているので歩値の歯抜け現象はなくりました

対策方法はノウハウがぎっしりなので、ひみつですwww

<問題発生2>

歩値の反映速度が遅い。

歩値の歯抜け現象が解決したあと、歩値の方向にエントリするロジックをトライしました。歩み値レベルの順張りです。

これなら、時間遅れなく、急騰にのれるはずと目論んで実装開始です。

そして、運用しました。

しかし、どうも急騰に乗り遅れるのです。

あれ??(予想外)

違和感を感じたので、iPhoneアプリの歩み値と比較しました。

そこで気が付いたのは、岡三RSSの歩み値はiPhoneアプリでの表示結果よりも3秒程度遅れてるという現象です。

さらに注意深く岡三RSSの歩み値を見てみると、歩み値の時刻が2~3秒遅れていることを発見。

つまり、岡三RSSでは歩値の反映に2~3秒程度の遅れを考慮する必要があるということです。

ところで、

HFTの取引速度は、なんと0.001秒らしいです。

ん?ちょっと速すぎるでしょwww

ってなり、断念しました。

中速度取引(MFT)に挑戦

高速取引(HFT)は不可能なので、中速度取引(MFT)を挑戦することにしました。

MFT=Middle Frequency Trading

勝手に命名しました。個人でできるHFTといったとこでしょうか。

暫定的なMFTの定義は、

歩値や板情報の反映に2~3秒程度遅れることは飲み込むが、1分足以下の情報で何度も取引を繰り返し、利益を上げる

こんな感じです。

具体的な手法は、まだ試行錯誤の連続です。

短期的には勝つロジックもありましたが、正直なところ未完成です。

自動売買用のツールがどんどん発展してる最中なので、MFTは今後、重要な役割を果たしていくと思います。