FX 自動取引ソフト System-trade-GIK.com
まずそもそも、 FX とは!? FX とは外国為替取引のデリバティブで、 外国為替証拠金取引のことを指します。 少ないお金でレバレッジ(倍率)を賭け て、稼ぐものです。 株と似ています
登場する基本単語の紹介 (〇 ω 〇) ・過去単位 ・ 1 本足 ・現在単位 ・チャート (・ ω ・) {(・ ω ・)(・ ω ・)(・ ω ・)(・ ω ・)(・ ω ・)}
1.パターン解析による取引 ー多変量解析による、分析結果を求め利用する。 ー価格変動量を単位時間当たりを求め利用する。 2.使う分析方法 ー多変量解析のうちの相関分析。 - 相関係数 ー独自アルゴリズム ← 後に紹介 4. 実行環境 - WindowsXP 以降 -回線速度 100Kbps 以上あれば十分 - CPU:Pentium 1GHz 以上 -解像度 1024×768 以上 ーメモリ512 MB 基本的概念 低スペックでも動く! 3.MQL4 言語の特徴 - C 言語から派生し、 C++ のような記述方法 -独自関数が多々あり。 -実行環境 MetaTrader 4 -開発環境 MetaEditar,TeraPad など
相関係数の求め方の解説 XY Xn-X 平均 Yn-Y 平均 (Xn-X 平均) ^2(Yn-Y 平均 )^2(Xn-X 平均 ) ( Yn-Y 平均) 平均 合計 相関係数 X =独立変数 、 Y =説明変数 r= i=1Σ n ((xi-x 平均 )(yi-y 平均) )/((xi-x 平均 )^2(yi-y 平均 )^2)^1/2 )
独自アルゴリズムの基本概念 ・過去単位期間における、 価格変化量を (=ValueP - ValueP-1) としたとき、 現在単位期間における、 価格変化量を (=ValueN – ValueN-1 )として、 現在変化量に近似する過去変化量を、発見する場合 過去単位期間における、相関係数の増減量と 現在単位期間における、相関係数の増減量を比較し、 指標化されたそれぞれの、 変化量・相関係数の値が酷似した場合、 命令を実行する。
for(int i=0;i<=201;i=i+1){ kakaku1[i] = Close[i]; } これで、 kakaku1 の配列に 201 個の過去の時間基準の終わり値を入れます。 for(int i10=5; i10<=10; i10=i10+1){ double kakakusum10=kakakusum10+kakaku1[i10]; } これで、過去 5 本足~ 10 本足のデータの合計を出します。 次に 5 で割って平均を出す、 for(int ix25=0; ix25<=5; ix25=ix25+1){ double y5m1 =y5m1 + (kakaku1[ix25]-kakakuave5)*(kakaku1[ix25]-kakakuave5); double y5m2 = y5m1; double z5m1 = z5m1 + (ix25-nave)*(kakaku1[ix25]-kakakuave5); double z5m2 =z5m1; } この式を用いて、説明変数の準備段階を終え、 soukan[1] = z5m2/MathSqrt(xixmseki*y5m2); これで過去単位期間あたりの相関係数を求めます。 プログラム解説1 過去 相関係数 R 過去 相関係数 R
for(int ix25=0; ix25<=5; ix25=ix25+1){ double y5m1 =y5m1 + (kakaku1[ix25]-kakakuave5)*(kakaku1[ix25]-kakakuave5); double y5m2 = y5m1; double z5m1 = z5m1 + (ix25-nave)*(kakaku1[ix25]-kakakuave5); double z5m2 =z5m1; } の文で説明変数の積和・平方和を求めていますが、 独立変数 X についての、分析結果は予め int data = 6; int nsum =21; double xixmseki =17.5; double nave = 3.5; このようにして、計算回数を減らすのも考慮して用意しております。 そのため、計算回数削減でプログラム自体を軽くはしているのですが、 区間設定( 5 本分)の設定用ですので、これが 1 本増えるだけで、この値はすべて 書き換えなければなりません。 これを 200 本分のデータで等間隔(5本間隔)で、各区間合計を求める。 同じ要領で現在の相関係数を現在 -5 の区間で求める プログラム解説2 現在 相関係数 R 現在 相関係数 R
for(int s1=0; s1<=20;s1=s1+1){ if(soukan[s1]>0.9){ hantei[1]=9; } if(soukan[s1] 0.8){ hantei[2]=8.5; } if(soukan[s1] 0.75){ hantei[3]=8; } /* 省略 ・ / if(soukan[s1] -0.85){ hantei[35]=-8; } if(soukan[s1] -0.9){ hantei[36]=-8.5; } if(soukan[s1]<-0.9){ hantei[37]=-9; } 相関係数を 0.5 区間で指標化します。 ( 最大 9, 最小△ 9) (変数宣言省略 ) プログラム解説3 相関係数が各区間で求まった相関係数を、 任意区間設定で、指標化する。 (これは細かければ細かいほど、 正確なパターン解析が可能になります 過去 相関係数 RP 過去 相関係数 RP 現在 相関係数 RN’ 現在 相関係数 RN’ 過去指標 RP’ 過去指標 RP’ 現在指標 RN’ 現在指標 RN’
プログラム解説4 価格も同じように For 文を使って、 たとえば For(int i =1, i= i+1,i =5){ i1 =i+5; 価格 [i] -過去価格 [i1]; } のような感じで、各区間求める( 200 本足分) 相関係数を指標化したような要領で指標化します。 → 同じ指標に統一するために、基準化を行います。 指標は過去単位期間における変化量のことではなく、 1 周期を 3 単位期間として、始点 → 中間点 → 終点 の変化量を見て、現在位置を中間点として想定した場 合に 次へ動く値を予想するという指標です。 過去価格 変化量 VP 過去価格 変化量 VP 現在価格 変化量 VN 現在価格 変化量 VN 過去価格 指標 VP’ 過去価格 指標 VP’ 現在価格 指標 VN’ 現在価格 指標 VN’ 注意!
となった場合に、 売り注文・買い注文を出す。 条件値になった時点で決算注文 !ちょっとソースが長いので、 プログラムソースを参照します 過去価格 指標 VP’ 過去価格 指標 VP’ 現在価格 指標 VN’ 現在価格 指標 VN’ プログラム解説 5 過去 相関指標 RP’ 過去 相関指標 RP’ 現在 相関指標 RN’ 現在 相関指標 RN’ = = = 過去単位時間あたり価格変化量指標 VP’ = =現在単位時間あたり価格指標 VN’ = =過去単位時間あたり相関指標 RP’ = =現在単位時間あたり相関指標 RN’ これがパターン解析のミソ!
プログラム解説 6 プログラムは未完成 ー損切り・利食いの設定が任意設定 ー元手によって、損切り・利食いの価格を設定 することが必要 → 誰でも使うことが出来ない ー周期間隔が任意設定である → フーリエ解析の DFT の、 スペクトル解析による、 周期解析を使うことで改善が可能? (現在改善中、 ExcelVBA では実現済み) 理想は任意設定値の一切の排除 ーコンピュータの数学上の確率的予測によって、 全てをコントロール
検証作業 1 検証作業について このプログラムが有用であるかどうかを確かめる手段 ― バックテスト =過去の実際の取引価格を利用した、シミュレート方法 → 合計約 1 憶パターン( 680 万パターンのデータを何度か) 以上の条件環境で、バックテストを実施中 結果 全体の利益は元手 ×0.1 くらいの利益 ( 期間的には 1 か月)検証についてバックテスト結果利益金額のグラフをご紹介
― デモ口座を開設し、実取引のような条件環境で検証 → 現在 1 か月が経ちました。 1個目の口座 2012 年 11 月 12 日開設 元手:100万円 利益40万円 目標口座残高140万円 取引終了後 口座残高 140 万 5273 円 期間的には1週間前後 2012 年 11 月 20 日に閉鎖 これの画像も紹介 検証作業 2 2個目の口座 2012 年 11 月 22 日開設 元手:30万円 目標口座残高60万円 2012年11月 28 日 0:44 分現在 口座残高 34 万 8920 円
プログラムのまとめ 誰でも使うことが出来るが、 MT4 を扱える知識が必要である 少ない元手で、最高の利益を出せる。 逆に、少ない元手で大きく損失を出すこともある このプログラムの計算方法を使い、株も同じように分析することが出来る。 ユーザーは 4 項目を設定するだけで OK 利益・損失をユーザ設定で設定出来るが、これを失敗すると大変なことになる 利益・損失を簡単に設定することが出来るので、 取引に関するリスク管理は誰でも簡単に設定することが出来る ・ 独自アルゴリズムを使うことによって、 他者との取引動機が異なるため流動的に動く市場でも対応が可能となる ・ あくまでテクニカル分析を利用しているため、ファンダメンタルを無視しているので、 社会時事への対応力はない。
さらなる発展可能性 任意設定の一切の排除 MT4 では、 Balance 口座のため元手によっ て利益の重みが違ってきます、それを改 善することが出来れば、口座残高に関係 なく取引を連続して行うことが可能とな ります 現在、任意設定のてんこ盛りです。 逆にこの任意設定を活かし、 ファンダメンタルとの連携も可能にな ります