FC2ブログ
にほんブログ村 為替ブログへ にほんブログ村 為替ブログ バイナリーオプションへ にほんブログ村 為替ブログ FX テクニカルトレード派へ にほんブログ村 株ブログ 株の基礎知識へ ブログランキング ドット ネット
 

テクニカル講座上級の部屋

ほったらかしのメタトレードで資産1億円を目指す
 
 
最新記事
お勧めサイト
今月から楽天のアフェリエイトをやっています。
サイトを経由するだけで、購入金額の1%が懐に入ってきます。
ぜひぜひ、皆様もお試しくださいね。
カテゴリ
★ アフェリエイト ★ 
今月から楽天のアフェリエイトをやっています。
サイトを経由するだけで、購入金額の1%が懐に入ってきます。
ぜひぜひ、皆様もお試しくださいね。
カレンダー
02 | 2021/03 | 04
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
最強EA

最強EA 9.2

無料ダウンロード

第九回 AIトレードシステム開発 

2021年が1か月たちました。

この間いろいろあったのですが、下記の本を購入しました。



感想を言うと、ディープラーニングの勉強を終えたからといっても、
ファイナンス工学に応用するには、まだまだ先が長いことを痛感しました。

しかしながら、いくつかは参考になったことがあります。


1)トリプルバリア戦略について

 これまでボックストレードと言うものがあることを漠然と知っていましたが、
これを機械学習でフィッティングすれば、けっこう面白そうと思いました。

 詳細は下記の方の記事に委ねます・・・

https://qiita.com/cryptrader/items/a5e96dca42ddbab58d70

2)定常性とメモリーについて
 
 価格変動には2つの要因がありうる。

 メモリー   移動平均のような過去の価格を基準とした要因
 定常性   モメンタムのようなその時点での需給バランス要因

 どっちが支配的と言うのは、相場によって性格が変わる。

 再現性の得やすいのは、やはり定常性だとか・・・

 つまりレンジ相場における、RSIなんかがトレード予想に向いている。 

https://hawk-tech-blog.com/python-financial-machine-learning-05/

しかし、奥が深すぎて、完全に消化不良・・・( ^ω^)・・・
スポンサーサイト



第8回 AIシステムトレード開発  

近況


コロナの影響はじわじわと押し寄せており、
昨日はMEGAドンキーに行ったのであるが、結構人が多くて
マスクをしていても、どこも混雑していて、
ときどき、ここでコロナ出たら、一巻の終わりやんか・・・って、状況によく出くわす。

別に街に出たところで、何もいいこともないのであるが、
やはり性格的には、不要不急の外出をしなくては、いけない性質(たち)なんだと思う。

そうして、どこかでコロナに感染してしまう・・・
(世の中の人々の大半が、そうなんだと思うが)


本題


今日の本題であるが、やはりAIというのは、
学習データの与え方や、ネットワークの組み方など
いわゆる、調教の部分に難しさを感じている。

自分の手足以上に、ペットを飼いならすかのごとく
どんな餌を与えて、どんな環境で飼育したら、
言うことを聞いてくれるのか、なかなか難しいように思う。

本屋に行って、それこそPythonを使ってAIの本は
山ほど見つかるのであるが、どのような構成でモデリングしたらよいのか
その部分については、あまり開示されていないように思う。

とりあえず、この週末に検討したこととしては
1)教師データを増やすこと
 これまで日足で5000データほど与えていたが、PFデータでは時間圧縮がされるため、これを15分足にしてみた。

 データはOANDAのメタトレードのものをCSV保存して使っている。

2)ハイパーパラメータの工夫
 BATCHサイズや、時間軸のステップ長さなど、まだまだ調整する必要がある。
 これらの変更と調整の部分で、ソースコードを関数式に変更した。
 パラメータ調整自体が、最適化問題になるため、この部分は別途でループを回す必要がある。
 MT4であれば、遺伝的最適化法があるが、AIの場合は外付けで最適化問題を解く必要がある。

3)最適化法
 大学院時代にやっていた共役勾配法が、こんな時に役に立ってくるとは・・・
 「ハイパーサーミアの加温条件最適化の研究」という、修士論文であるが、25年も前に
AIがまだ無名な時代に学んだことがある。
 会社に入ってからは、実験計画法という形で、条件最適化をやっていて、この知識も融合すれば
鬼に金棒の気がする。
 結局AIの知識って、プログラミングだけの話と思っていたが、
統計解析や品質工学やモデル解析など、いろんなことが絡んでくるねえ・・・
 会社に入って、熱解析シミュレーションや構造最適化をやっていたので、
そういう知識を生かせるのかもしれない。





第7回 AIシステムトレード開発  

なんとなく完成した


P&Fチャートを使ったAI予測結果を示す。

真値
true.png
AI予測
pred.png

モデル


  • 入力ベクトルは下記の9つとした。
  • pips 0.0005から0.0013まで、0.0001づつ増やしたPFチャート
  • タイムスパン history_points = 20
  • 結局はLSTMを2層使っている
  • 入力ベクトル 9 + 時間ベクトル 20という感じ
  • ほぼ強引に一致させた感じである
  • ハイパーパラメータの調整が難しい

    pff1 = csv_to_dataset_pf(data,0.0005,i,500)
    pff2 = csv_to_dataset_pf(data,0.0006,i,500)
    pff3 = csv_to_dataset_pf(data,0.0007,i,500)
    pff4 = csv_to_dataset_pf(data,0.0008,i,500)
    pff5 = csv_to_dataset_pf(data,0.0009,i,500)
    pff6 = csv_to_dataset_pf(data,0.0010,i,500)
    pff7 = csv_to_dataset_pf(data,0.0011,i,500)
    pff8 = csv_to_dataset_pf(data,0.0012,i,500)
    pff9 = csv_to_dataset_pf(data,0.0013,i,500)

modelp.png

第6回 AIシステムトレード開発 

国立国会図書館 関西館に行ってきました。


AIの棚には、数えきれないぐらいの書籍が並んでいて、
その中からLSTMの項を全部コピーしました。

自然言語処理の本も、多数読みました。
東京から取り寄せた予約したため、今週末にまた行ってきます。

まったく本屋で見たことのないものも多数あり、
すべて書籍名をノートしてきました。

もうAI関係の図書を買いに一般本屋に行くのを辞めます。


PS.
昼食も安く、コロナ禍ですが空いていました。

こんなんが無料で使えるなんて、日本国民はうらやましい。


本論


ここからが今日の本論・・・
とりあえず、予想と正解の比較データをチャートにしてみた。
P&Fチャートを数列にしたものを、0-1の範囲で標準化したので、
どうしても変化の振れ幅の大きいデータに規格化されてしまっている。
どっちかというと、そういう異常なデータはトリミングしてしまった方がいいだろう・・・
Figure_1.png

KERASの処理


a1は教師データx
a2は教師データy

maxa = max(a1.max(),a2.max())      
mina = min(a1.min(),a2.min())

a1=(a1-mina)/(maxa-mina)  0,1で規格化
a2=(a2-mina)/(maxa-mina)    〃

最初、fitとかtransformが、分からへんかったが、ようやく意味が分かった。

要するにfitで統計を計算して、transformで実際のデータに反映する。
今回の場合は、fitを使ってa1の教師データで計算させて(数の少ないa2の方は使わない)
transformでa1,a2に反映させると良いだろう...

それにしてもAIでは、やはりデータの素性というものを吟味しなくてはいけない。
下記の例でいえば、前半と後半では相場の変化量が異なるため、
同じ学習データとして扱ってはならない気がする。

しいて言えば、2つのデータで異なる学習機を作っておき、
それを何らかの運用ルールで切り替えるというような、
少し複雑な処理が必要ではないかと思う。
無題3




第五回 AIシステムトレード開発 

参考資料
 https://math.uni.lu/eml/projects/reports/2020_Summer/DiasMoreira.pdf

#進捗

とりあえずKERASを使って、それらしい計算まで出来るようになった。

時系列分析のため、LSTMというのを使っている。

今回はpoint & figureをベースとして、入力ベクトルには32個のパラメータを割り当てている。

ソースコード

  • 最初に適当な4本足データをCSVで取ってくる。
  • 次にPOINT&FIGUREの数列に加工する。
  • PFF1,PFF2,PFF3というのが、PFFを時間軸で数列化したものだ。
 [分割数200のPF数列×19個] [分割数150のPF数列×9個] [分割数100のPF数列×4個] = 32個
  • PF数列は指定日までを時系列に推移させて計算し、それをケツから使っている
  • ケツ[0]が予想すべきデータで、ケツ一個手前[-1]から[-n]までが予想に使うデータである
  • データ長は分割数が小さいほど、データ数が少なくなるように配分している
  • KERASには、全データ範囲で0,1になるように変換したものを突っ込んでいる

AI部分のコードはパクっただけ。
内容ははっきり言って、何にも分かっていない・・・

いちおう、糞リポジトリを置いておく
煮るなり焼くなり、好きにしやがれ!!

model.png

Figure_1.png

Point and Figure データモデル化 

とりあえずPYTHONのソースを見つけたので、参考にさせていただくこととした。


マーケットデータは前に参考にさせていただいたソースのものを使うことにした。


テスト

  • EURUSDの日足データから、P&Fの元になる数列を入手した。
  • ブロックの基準数(セル高さ)は、全範囲の(MAX-MIN)/200とした。
  • データ長さは、圧縮前5000行だったが、P&F数列は531となった。

試行錯誤


ブロック基準数とデータ圧縮

 いまP&Fチャートの特徴をよくよく考えてみると、これはデータを圧縮する方法だと気づく。
その際に基準数を大きくすると、おそらくデータ長さは小さくなると考えられる。
 一般的に為替チャートは、基準足の長さによって、日足、週足、月足というふうに、データの粒度が変わってくる。しかしながら、P&Fチャートではトレンドが転換した場合のみにね次の足に更新されるという概念であるため、時間の更新に対して一律に足が更新されるわけではない。

マルチタイムフレーム分析

 また一般的なテクニカル指標であれば、基準足に対して、複数の時間尺度を用いて、総合的に相場の局面を判断することが一般的であり、マルチタイムフレーム分析という手法が存在する。
 ブロックの基準数を可変すると、データ長さが変わる特性があることから、P&Fにおけるマルチフレームの概念については、複数のブロック基準数をもとに決定するマルチブロック分析が有効と考えられる。

AIアルゴリズム

 また、一般的な時系列データに対するAI学習の一般論として、過去のデータの影響を考慮する再帰的学習(リカレントネットワーク)が使われるが、これはレンジ相場のような周期的な変動の場合には有効と考えられる。しかしながら、為替変動の場合はテクニカル的な重要サイン(ブレイクアウトを起点)によるトレンド変化を捉えることが最も重要と考えられるため、再起的な学習よりはパターンの組み合わせ的な条件判断が要求される。AI学習の観点からも、マルチブロックのパターン分析を行う方が理にかなっていると考える。(そもそもRNNに関しては、通常のAI分析に対して計算コスト的にも厳しい状況が想定される。)

 今回はいろいろなハイパーパラメータを構成する因子の中に、複数のブロック基準数も加えて、パラメータのチューニングをしてみようかと思う。

モデル


PFの特徴をみると、以下のことがわかる。

  1. ×と〇は常に繰り返されている
  2. ×→〇の変化では、一段下から始まる
  3. 〇→×の変化では、一段上から始まる

この特徴は、全くもって無視しても構わないことになる。

とりあえず下記のP&Fチャートであれば、
×の数をプラス、〇の数をマイナスの数値におきかえると、

このチャートは、下記の数列に等しくなる。

12 , -7 , 7 , -5 , 5 , -3 , 12 , -5 , 5 , -5 , 6 , -6 , 3 , -6 , 2

Fig94.gif

さらに前後の和を取って、

5 , 0 , 2 , 0 , 2 , 9 , 7 , 0 , 0 , 1 , 0 , -3 , -3 , -4 max = 9 , min = -4 , Range = 13

という風に、ダイナミックレンジを下げることができる。
AIで言えば、学習機の感度が上がる方向になる。

ちなみに、もう一回やるのは、ダメな模様

5 , 2 , 2 , 2 , 11 , 16 , 7 , 0 , 1 , 1 , -3 , -6 , -7 max = 16 , min = -7 , Range = 23

そしてAI的には、次の数字が予想できれば、
トレードのポジションの転換点を知ることができる。

P&Fチャートの優れているところは、
このように数列の羅列の中に、ありとあらゆる値動きが
織り込まれている点だ。

というわけで、先ずはモデルの定義が終わったので、
為替データから上記の数列を出すところから、
コーディングすることとする。



Deep Learning 

めっきりAIトレードシステム開発が止まっている。
少しだけ前進しないと・・・

前に符号化のことを書いた。

最近、オセロゲームのアルゴリズムを見ていて、まず符号化することが大事だ。
これはAIで言うところのスケーリングというやつで、二つがあると言う。

今回はPFチャートのため、画像として捉えるのであれば正規化が使える。
すなわち、状態は〇,×,無の3種類であり、これを-1,0,1として扱う。(正確には0~1だが)。
この時、上下の空間を価格変動のレンジ、左右の空間を時間のファクタと考えれば、画像処理のアルゴリズムに近くなる。

また価格変動を数列と考えた場合は、標準化が適している。元のデータの平均を0、標準偏差が1のものへと変換する。この場合は、上下空間は価格に織り込み済みなので、左右の空間のみで良い。

おそらく計算的には標準化の方が楽である。

しかしながら、折角のPFチャートなので正規化でやるのも面白そうな気がする。

ひとまず今は、オセロのAIアルゴリズムを物色している。

以上

第4回 AIトレードシステム開発記録 

とにかくポチポチやっている。

パソコンはやはり目が疲れるから駄目だな・・・
究極を言えば目をつぶってブラインドタッチができるのが理想である

この前まで右肩が痛いので、ずっと仮名文字入力を目指していたのであるが、
完全なブラインドタッチを目指すとすると
やはりローマ字入力に軍配が上がるようだ・・・

目の疲れはやはり年齢的なものもある。
パソコンのモニタのブルーライト設定を入れると
少しは楽にはなるが。。。
(とにかく目を守っていくのが最重要な課題である)

思えば、まぶたの裏にパソコンのモニタを映してくれるようなものはないのだろうか?
人間の脳というのは実に不思議で、夢の中では本当にリアルな画像を見ることができる

つまり言い換えると、目なんて開けていなくても、
どこかに脳とつなぐ神経回路があれば、頭の中に映像を伝達することができるということだ・・・

視覚障害の人は、パソコンができないのだろうか?
そんなことはない、視覚障害であっても、世界的に有名なピアニストもいる。
つまり人間の能力というのは、やり方さえ工夫すれば、
いくらでも拡張が可能なのだ。

一つのやり方としては、点字などを使って、
入力された文字を触覚で読み取る方法・・・

もう一つとしては、やはり音声入力や読み上げ機能を使って
耳で情報をコントロールすることだ・・・

インターネットが進んだこの時代で、そろそろテクニカル的に
バリアフリーに取り組んでもらいたいものだ。。。

そろそろ本題に入る


さてAIトレードなるものを試行しようとして、
それこそ、ここ3年はかなり苦労の連続であった。

昨夜もまだ、それが終わったというわけではなく、
仕事を早々に切り上げて、いつもの本屋に行って
ITコーナーの隅々まで書籍を読み通している。

思えば、これを考えた3年前には、ほとんど理解できないことばかりであったが、
苦節3年の血のにじむような努力の甲斐もあって
やっと本屋の90%程度の情報に対して、
人並みにこれがなんであるのかを把握できるようになった。

昨夜は最終のブラッシュアップのために
JavaSciript関係の本と、JavaのSpringFameworkの本を買ってきた。


最近は 掌田津耶乃 さんの本ばかり読んでいる。
(ビギナーにとにかくわかりやすい本なのである。)

残すところは、ruby,PHP,Goぐらいだろうか?
(あっといけない、ASP.NETを忘れていた・・・)

これまでAIといえば、python一択であったが、
最近はPython以外のプログラマがAIに参入しているのが事実だ。

それに加えて、最近ではコーディング不要のAIなんて言うのも
出回ってきて、それこそ主婦や子供でもAIを駆使できる時代は
そんなに遠くはないと感じている。

来月にDeepLearningのG検定を受ける予定だが、
その先にあるE資格について、問題集を買ってきた。
この内容が結構えぐい内容で、これができれば東京大学の
数学科に入学できるぐらいだ・・・
(さすがに今のAI研究の最前線の人たちは、それぐらいの頭脳集団なのかもしれないが)

本当に今の時代はいいなと思う。
自分は遅ばせながら、この年になってITに参入した。
ずいぶん遅かったなと後悔する部分もあるのであるが
考えてみれば、ここまでITが進んだ今だからこそ、
取り組むには絶好のタイミングということもできる。

なぜならば、インターネット動画や書籍もふくめて、
これほどにも情報にあふれている時代であるから・・・

トレード状況


さて、ここでAIシステムをつらつら書こうと思っていた矢先であるが、
とあるネット上にあった記事を試しに、DEEPLEARNINGのトレードを
はじめている。

簡単な日足のデータを突っ込んで、翌日の終値を予想するという物だ。

その結果であるが、度肝を抜かれるぐらいの好成績を得ている。
(まだ1週間ぐらいなので、半信半疑であるが、絶好調なのである)

やり方としては、朝の6時ごろにバッチを走らせると、
とりあえず翌日の予想値を吐き出してくれる。

朝の出勤前に、その予想値との乖離度合いを見て
24hのバイナリオプションのエントリーを入れる。

いまはGBPUSDでやっている。

結果をアップしてみると・・・

どうだろう、最初に二万程度を入れたのであるが、
現在は47000円になった。
(最初の方は要領が分からなかったので、ミストレードも含まれる)

直近では三連荘で100%の勝率であるし、通算での勝率は75%(9勝3敗)である。
(バイナリオプションでは勝率60%でも高い方法だと言われる現状において、
勝率が75%を超えていると言う状況は、本人にも予想できない結果である。)

そんな訳で、今朝の俺は震えている。
この震えは、このブログを始めた当初に、自分が思い込みで感じていたような
甘いものではなくて、本当にAIに対する限りない可能性を示されていることに、
ただただ震えている。

自分として、いまだ何も取り組めていない状態であるが、
すでにトレードシステムは完成してしまっている。。。

そんな半信半疑の状態なのである。



trade.png


第三回 AIトレードシステム開発記録 (10/04) 

FXで頑張ってる人、集まろう! 為替ブログ・テーマ
FXで頑張ってる人、集まろう! 

 このところ、AIのマーケット予測を色々調べてきているが、
時系列データをAIに食べさせるという、
やや無茶ぶりな予想屋が多いことに嘆いている。

勿論だがAIにデータをなんでも突っ込んで、
なんかそれらしい答えを得て、喜ぶ輩が多いのであるが
自分は少なくとも、テクニカルを使って
根拠のある予想を立てないと、
意味がないと考えている。

そんな中で、いまひらめいている案としては、
AIに食わせるデータとしては、POINT&FIGUREが
一番しっくりくると考えている。

Fig94.gif

このチャートの良い点としては、×と〇が交互に並んでいて
時間という概念が無いからである。

よく言うAI学習においては
  • パラメータの特徴を際立たせる
  • 極限まで情報を圧縮する
  • 次元数を減らす
などが一般的に言われていることである。

よく価格の変動率など、微妙な数値の変化を
学習機に突っ込んでAIになんとかさせるとか
無理くりなことを一般的にやりがちであるが
これはハッキリ言って、テクニカル無学者の
なんの知恵も感じない愚かな考えである。

AIの研究者として、AIの特性を理解することと、
FXの研究者として、FXの特性を理解すること

結局、この両方の知識の融合を無くして、
これを成すことは、まったくもってあり得ないのである。


モデル化


さて、言っていても始まらないので、とりあえずは机上で
モデリングするところから始めてみる。

PFの特徴をみると、以下のことがわかる。

  1. ×と〇は常に繰り返されている
  2. ×→〇の変化では、一段下から始まる
  3. 〇→×の変化では、一段上から始まる

この特徴は、全くもって無視しても構わないことになる。

とりあえず下記のP&Fチャートであれば、
×の数をプラス、〇の数をマイナスの数値におきかえると、

このチャートは、下記の数列に等しくなる。

12 , -7 , 7 , -5 , 5 , -3 , 12 , -5 , 5 , -5 , 6 , -6 , 3 , -6 , 2

Fig94.gif


そしてAI的には、次の数字が予想できれば、
トレードのポジションの転換点を知ることができる。

P&Fチャートの優れているところは、
このように数列の羅列の中に、ありとあらゆる値動きが
織り込まれている点だ。


というわけで、先ずはモデルの定義が終わったので、
為替データから上記の数列を出すところから、
コーディングすることとする。

つづく



第二回 AIトレードシステム開発記録 (09/28) 

本格的にAIトレードシステムについて
このブログに書いていくうえで、
一つだけ大事なスタンスがある。

それは、このブログのタイトルにも示しているが
決してシステム屋さんや、IT系のエンジニアを
対象にせず、あくまで純粋にトレードに取り組む人たちにむけた
情報発信を心がけたいと思っている。

つまり、AI活用はあくまで、これまでの
テクニカル分析を主体に拡張するものであって
やみくもに為替データをAIに突っ込んで、
何かしか根拠の分からない予想結果に、
頼り切らないということである。

ただ、やはりとっかかりについては、
そもそもAIってどんなもの?を
体感的には理解しておく必要があって、
それには、まずはAI流のやり方自体を
その道の方々に習って進めざるを得ない。

まずは、これまでのことを振り返り、
システム構築していく流れを
こちらに書き留めていくことにする。


Deep learning


まずはKERASの使い方をマスターすること
特にRNN(リカレントニューラルネット)へ為替データを流し込む
シミュレーションアプリをWEBベースで構築する

参考にしたいサービスとしては

こちらのチュートリアルから始めることとする。

logo_transparent.png



FC2カウンター
メインコンテンツ
リンク
プロフィール

motochan

Author:motochan
【ご挨拶】

このブログのモットーとしては、やはり初心者のためのテクニカル講座という分かりやすさを重視したいと思っています。ちょいちょい脱線めいた話や自虐ネタを満載していますが、さらりと受け流していただければと思います。リンクや画像については、個人の使用の範囲と考えておりますが、万一、無断転用とかでお叱りを受ける場合には、すみやかに削除いたしますので、ご指摘いただきたく思います。
詳細はコチラ>>
ブログ村