Document

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