文系人間のためのシステムトレーダー養成所
--------

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2009-05-12

プロフィールにかえて。

気づいたら、プロフィールらしきものがこのサイトになかったので今更ながら自己紹介をさせていただきます。

僕は現在、お酒を飲んでばかりいた結果単位をとりきれずに5年が確定した大学4年生です。

投資歴は2008年9月からなのでまだ1年たっていません。完全なるぺーぺーです。

好きな指標はボリンジャーバンド。 好きな投資家はジェシーリバモアです。

投資のきっかけは祖母が遺産として残してくれた100万円を、寝かせてないで運用してみようとおもったことになります。

結果としてはサブプライムローン問題による大幅な下げの前の一時的な上げによりロスカットされ残り一気に20万円程になりました。

残りの20万円も100万円に戻したいという欲望が働き無茶な取引枚数でかけあっという間に0になりました。

その時は何が何だかわかりませんでしたが、暫くすると、このままじゃ祖母に申し訳が立たないと思うと同時に、この祖母からもらった遺産を、無駄遣いしたのではなく、授業料だったと言えるようにFXをやり続けようと逆に、強く感じました。

まだ現在は勝ち続けるようになっていませんが、FXのお陰で経済のことやプログラミング、統計数学等様々なものに詳しくなり自分の幅が広がったことは間違いありません。

好きな言葉は 思考は現実化する。

目標は相場で資産を継続的にふやせるようになること。

ブログを通じて自分の活動領域を広げることです。

正直現在の僕は負け組投資家です。

全然勝てていませんが、いずれ必ず勝てるようになってやるという燃えるような願望はあります。

そうはいっても、資金をつぎ込んではロスカットを繰り返すことが続いたため、実際時々俺はもう駄目なんじゃないかとか、FXもうやめようとか思ったりすることは多々ありました。

それでも諦めないで絶対に勝てるようになってやると強く思い続け、何かを掴もうと必死で行きついたところがシステムトレードでした。

僕はサイトの題名どうり文系人間なのでシステムトレードは敷居が高かったのですが、とにかくこの可能性に賭けようという思いが強く、自分は絶対にシステムトレードができるようになると言葉の力をつかって自分に言い聞かせていろいろやっているうちに、だんだんとできるようになりました。

当初は正直、自分だけ勝てるようになれば良いとか、自分が知った優位性のあるものは秘密にしておきたいとか思っていたのですが。

なんか、それってすごく、自分の可能性を狭めているような気がするようになりました。

それに、現在僕は勝ち組投資家でもありませんし、敏腕トレーダーでもありません。

自分の立ち位置としては成り上がりを狙うものです。

それだけに自分がこれまでたくさん失敗して得た教訓や、四苦八苦して得た知識や役立つと思ったことは、出し惜しみするのではなく、皆さんと共有していった方が、その先に何かあるのではないかと感じるようになりました。

ですので、自分が知った優位性や方法論はできるだけ公開し、

そのようななかで、ふとした出会いや関係が芽生え、お互いに協力して成長、成功できるようになれたら最高だなと考えています。

トレーダーは孤独です。精神的に辛いことも普通の人より多く経験していると思います。
それだけに、一度理解しあえることができれば、生ぬるい関係でなく、戦友のような協調体制を取ることも可能なのではないでしょうか。

そのようなコミュニティを作れたらとても楽しいだろうなあと考えています。

お互いに相場で生き抜けるようになりましょう。

年端のいかぬ青二才ですが、一生懸命やっていきたいとおもいますので、幣サイトともどもよろしくお願いいたします。




押していただけると大変嬉しいです。 人気ブログランキングへ

theme : FX(外国為替証拠金取引)
genre : 株式・投資・マネー

2009-05-11

アラート関数の作り方

前回CodersGuruさんのアラート関数を読み、自分でいろいろ試行錯誤した結果、アラート関数をつくり出すことに成功しました!
今回は僕が作ったアラート関数を紹介したいと思います。

アラート関数作成法

前科の疑問は
1,関数はどこに保存したら良いのか
2.保存した関数をどうすれば読み込めるのか
3,時々わからない変数が出てくる

というものでした。

前回の疑問の僕なりに出した答えはこちらです。
1,Libraryに保存します。
2,#import を使用したいコードの先頭で使用し、libraryに保存したコードを読み込みます。
3,分かりやすいアラートがならせるコードを探して応用する(こちらのBolliToucher.mq4 を参考にして作成しました。)

それでは関数を作っていきましょう。

ステップ1 Libraryに自作関数を保存する。

1,メタエディターのfile→Newをクリック。
2,Libraryをクリックして次へを選択。

Libra.png

3,NameにAlertOnceと入力→完了をクリック。

libra2.png


すると
//+------------------------------------------------------------------+
//| AlertOnce.mq4                    |
//| FXboy                      |
//| http://fxboyt.blog56.fc2.com/                  |
//+------------------------------------------------------------------+
#property copyright "FXboy"
#property link "http://fxboyt.blog56.fc2.com/"
//+------------------------------------------------------------------+
//| My function                      |
//+------------------------------------------------------------------+
// int MyCalculator(int value,int value2)
// {
// return(value+value2);
// }
//+------------------------------------------------------------------+

このようなものが出てきたと思います。(#propertyの2行はコードに関係ないので表示が違っていても全く問題ありません)

コメントで記述されているMyFunctionは例文だと思います。
MyFunction(私の関数)と書かれているのでここに自作関数を作るというのは間違いなさそうです。

それでは記述していきましょう。

//+------------------------------------------------------------------+
//| AlertOnce.mq4                    |
//| FXboy                      |
//| http://fxboyt.blog56.fc2.com/                  |
//+------------------------------------------------------------------+
#property copyright "FXboy"
#property link "http://fxboyt.blog56.fc2.com/"
#property library

extern bool Use_Sound=true;
//+------------------------------------------------------------------+
//| My function |
//+------------------------------------------------------------------+
void DoAlert()
{
if(!NewBar() || !Use_Sound)
return;
PlaySound("Alert2");
}

bool NewBar()
{
static datetime dt=0;
if(dt!=Time[0])
{
dt=Time[0];
return(true);
}
}
// int MyCalculator(int value,int value2)
// {
// return(value+value2);
// }
//+------------------------------------------------------------------+


記述する位置はどこでも良いのですがせっかくなのでMy functionと書かれている下から記述してみました。一番下の灰色のコメント部分は気になるようでしたら消しちゃってください。

このコードの概念としては前回の記事のCodersGuruさんのNewBarの判断の仕方と同じです。
ここではAlertではなく、音がなるだけですが、もしAlertになさりたければ、 PlaySound("Alert2");の部分をAlertに変更してください。

コードの解説は省きますが、
static変数は受け取った値を保持するという役割がある
! は「~でないなら」
|| は「もしくは」
NewBar関数を使ってDoAlert関数を機能させている。

ということを頭にいれておけばなんとなく理解できると思います。


先頭に#property libraryと記述しなければ、Start関数が無い(=何も動作をおこせない)じゃないかとコンパイラーが怒り出しますので注意してください。

以上で無事、アラート関数をつくり、保存することができました。

それでは次にこのアラート関数をどのようにして使うかを説明します。

ステップ2 アラート関数を呼び出す。
まずご自身のアラート関数を埋め込みたいと思われているインディケーターのコードをお開きください。
そしたらコードの先頭(init関数の始まる前)に

#import"AlertOnce.ex4"
bool NewBar();
void DoAlert();

を記述し、関数をよびだしてください(これで自分で作った関数が使えるようになります。)

あとはstart関数の中で自分がアラートを鳴らしたい場所にいれこんで頂ければ完了です。

参考までに僕が使用した例をのせておきます。

//+------------------------------------------------------------------+
//| TouchBB.mq4 |
//| FXboy |
//| http://fxboyt.blog56.fc2.com/ |
//+------------------------------------------------------------------+
#property copyright "FXboy"
#property link "http://fxboyt.blog56.fc2.com"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 CLR_NONE
#property indicator_color2 Red
#property indicator_color3 Red
#import "AlertOnce.ex4"
bool NewBar();
void DoAlert();


double BufMA[];
double BufUpper[];
double BufLower[];


extern int BandsPeriod = 20;
extern double BandsDeviationsHigh = 2.0;
extern double BandsDeviationsLow =2.0;

//+------------------------------------------------------------------+
//|Custom indicator intialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,BufMA);
SetIndexBuffer(1,BufUpper);
SetIndexBuffer(2,BufLower);



return(0);
}

//+------------------------------------------------------------------+
//|custom indicator interation function |
//+------------------------------------------------------------------+
int start()
{
int limit = Bars-IndicatorCounted();
if(limit == Bars) limit -= BandsPeriod-1;

for(int i=limit-1; i>=0; i--)
{
BufMA[i] = iMA(NULL,0,BandsPeriod,0,MODE_SMA,PRICE_CLOSE,i);

double sum=0.0;
for(int a=0; a {
double newres = Close[i+a]-BufMA[i];
sum += newres*newres;
}
double deviation = MathSqrt(sum/BandsPeriod);
BufUpper[i] = BufMA[i]+BandsDeviationsHigh*deviation;
BufLower[i] = BufMA[i]-BandsDeviationsLow*deviation;

if(i<2)
{

if(BufLower[i] + 50*Point>Bid) DoAlert() ;
if(BufUpper[i] - 50*Point<Bid) DoAlert();

}

}
return(0);
}
//+------------------------------------------------------------------+

このように使います。ロジックとしてはボリンジャーバンドにローソク足が触れる直前でサウンドを鳴らすというものです。

もしよろしければこちらにAlertOnce関数と、ボリンジャーバンドに価格が近付くとアラートがなるインディケーターを置いておきましたのでDLしてください。

TouchBBはMetaTrader-expert -indicatorのフォルダに
AlertOnceはMetaTrader-expert-librariesのフォルダに
いれてくださいね。

長くなってしまいましたが以上です。何か質問がありましたらシステムトレーダー交流所の方へお越しください。


最後までお付き合い頂きありがとうございました。

押していただけると大変励みになりますのでよろしくお願いします。 人気ブログランキングへ

theme : FXでシステムトレード
genre : 株式・投資・マネー

2009-05-11

ティック毎一回のみアラートを表示させる。

みなさんはあるインディケーターの条件を満たした時にアラートがなってくれたら良いなと考えたことはありませんか?
僕はそのためにメタトレーダーを始めたといっても過言ではありません。
今回はCodersGuruさんがAlertについて書かれていた記事を見つけたので翻訳してみました。

それではお楽しみください。
原文はhttp://www.metatrader.info/node/173です。


Alert Once Per Bar

やぁ兄弟。

Pink Floyedのアルバムで、"Brain Damage"という曲を聞いたことはありますか?聞く必要はありません! しかしMQL4のプログラミング脳で、Alertを一回だけ表示させるということは大変難しい挑戦になります。

1時間足で短期移動平均線が下から上に長期移動平均線を突き抜けた時、アラートを買い!と表示
させたい。素晴らしい!簡単? そうですね。しかし。。

上述した状況に出くわしたとき、まず一つのアラートが表示され、そして短期移動平均線が長期移動平均線の上にある間ずっとアラートが表示され続けます。

私は上述した状況の時、新しいティック(ローソク足)ごとにアラートを表示させたいと考えます。これが私がアラートを表示させる方法の記事を書いた理由です。

では、いつそれが新しいティック(ローソク足)だと言えるのでしょうか。

コードに、新しいティックだと告げるための二つの方法があります。
最初の方法は私が以前作成し、NewBar()と名付けた関数を使うことです。これは新しいティック(ローソク足)が届けられたらtrueを返し、そうでなければfalseを返します。

bool NewBar()
{
 static datetime lastbar ;
 datatime curbar = Time[0];
 if(lastbar!=curbar)
 {
  lastbar=curbar;
  return(true);
 }
 else
 {
   return(false);
 }
}

上記の関数は、最後の記憶されたティックの開始時間(ローソク足の始値が決まった時間)と、最新のティックの開始時間を比べます。もし、その時間が同じでないのならそれは新しいティックが届けられたことを意味し、trueの値を返します。そして、もし値が等しければ、そこには新しいティックは発見されなかったことを意味し、falseを返します。

この関数はもしあなたが一つの条件のみアラートを表示させたいのなら素晴らしいものになります。しかし、アラートを2つ以上の条件で表示させたい時があります。例えば以下の時に鳴らしたい場合

1-短期移動平均線が長期移動平均線を上に交差した時 買い!とアラートを表示させたい。

2-短期移動平均線が長期移動平均線を下に交差した時 売り!とアラーとを表示させたい。

3-二つ前のティックで短期移動平均線が長期移動平均線を上向きに交差した時、他のティックで買いが確認された!とアラートを表示させたい。

4-二つ前のティックで短期移動平均線が長期移動平均線を下向きに交差した時、他のティックで売りが確認にされた!とアラートを表示させたい。

私は4つのアラートが欲しいし、貴方はそれらを追いかけ続けなくてはなりません。そして、Alertはティック一本につき一回で良い!これがプログラミングのBrain Damageです :)!

それでは二つ目のタイプの新しいティックが届けられましたと報告する関数を見てみましょう。

static int LastAlert = 0;

if(LastAlert == 0 || LastAlert_1<Bars)
 {
    Alert(alert_msg);
    LastAlert=Bars;
 }

このコードは最後に保存されたバーの数と現在のバーの総数を比べているものです。もし、この総数が増えれば、それは新しいバーであるという意味を表します。私はこちらのコードの方をお勧めします。なぜなら、アラートよりもむしろ追跡する意味で使うからです。

アラートを一回だけ表示させるためのロジック。
このイメージ(10000語)。Alert一回関数の後ろにあるロジックをしるためにこのイメージをご覧ください(イメージはみれませんでした。原文はhttp://www.metatrader.info/node/173です。)

上のイメージでみれるように、このロジックはとても簡単です。

1-AlertOnce関数が呼び出された時、私たちはまず最初にこの関数が初めて呼び出されたものかをチェックします。そのようなとき、私たちはAlertのメッセージを表示させます。

2-もしそれは最初の呼び出しでなかった時、私たちは「最後のalertを発生させたローソク足は同じローソク足であるかどうか」をチェックします。これは新しいアラートにとって同じローソク足ですか?ということです。もしNoならアラートメッセージを表示させます。

イメージをコードに転換させましょう。

上記のイメージをコードに転換させる前に、新しい概念を付け加えたいと思います。Alertを表示させるための基準です。

私は4つのアラートを設定したいと思います。ですので、私はAlertを表示させる条件を加え、さらにそれぞれのアラートが一度限りで表示されるような関数を作りたいと思います。下に書いたコードがあなたの理解を進めるものになれば幸いです。

bool AlertOnce(string alert_msg, int ref)
{
static int LastAlert_1 = 0;
static int LastAlert_2 = 0;
static int LastAlert_3 = 0;
static int LastAlert_4 = 0;

switch(ref)
{
case 1:
if( LastAlert_1 == 0 || LastAlert_1 < Bars )
{
Alert(alert_msg);
LastAlert_1 = Bars;
return (1);
}
break;
case 2:
if( LastAlert_2 == 0 || LastAlert_2 < Bars )
{
Alert(alert_msg);
LastAlert_2 = Bars;
return (1);
}
break;
case 3:
if( LastAlert_3 == 0 || LastAlert_3 < Bars )
{
Alert(alert_msg);
LastAlert_3 = Bars;
return (1);
}
break;
case 4:
if( LastAlert_4 == 0 || LastAlert_4 < Bars )
{
Alert(alert_msg);
LastAlert_4 = Bars;
return (1);
}
break;
}
}

コードの説明
最初に私たちは4つのアラートの跡をつけました。ですので、私たちは
4つのstatic変数をそれぞれのアラートの値を保持させるために使用します。そして、switchキーワードをそれぞれのアラートに働くように使用します。こちらのほうが、すべてのアラームを設定するために4つの関数を使用するのよりも簡単だと思いませんか?

1-LastAlert_1(もしくは他の4つのアラートのうちの一つ)が0と等しい場合、それは私たちのalert_msgのアラートが初めて呼び出されたことを表し、LastAlert_1にチャートのローソク足の数字を割り当てます。

2-もしLastAlert_1がチャート上のローソク足より小さければ、私たちのalert_msgのアラートは新しいバーで行われた。

これだけです!    

どのように関数を呼び出すか:

これは簡単なことです。最初のアラートの種類(短期移動平均線が上向きにクロスした時に買う)を使用したい時は以下のようなコードを使ってください。

if (Cross(FMA ,SMA) == CROSS_UP)
AlertOnce ("We have to buy",1);

このアラートのリファレンス番号は1番だということを覚えておいてください。

これは便利だと思ってくださると幸いです。

Coders'Guru


翻訳は以上です。 
概念はわかりやすく説明されていたのですが、自分にはまだ疑問があって

1,関数はどこに保存したら良いのか
2.保存した関数をどうすれば読み込めるのか
3,時々わからない変数がでてくる

等があり僕の頭がBrain Damageになってしまいました。

自分で調べて作ってみたので次回、そのことについて触れてみたいと思います。


押していただけると大変励みになりますのでよろしくお願いします。 人気ブログランキングへ


theme : FXでシステムトレード
genre : 株式・投資・マネー

2009-05-10

システムトレードのためのエクセル講座 第3回 モデルの評価

   システムトレーダーのためのエクセル講座 
                第3回
               モデルの評価

前回はパラメーターの変更と最適化をとりあげるとかいたのですが、その前にモデルの評価を記述することの方が先だと気が付きましたので、今回はモデルの評価をとりあげます。パラメーターの変更と最適化は次回にとりあげます。失礼いたしました。

今回モデルの評価で取り上げるのは以下の8つです。隣には評価を算出するのに必要な関数を添えました。

最大損益      MAX
平均勝ちPips   AVERAGEIF
平均負けPips   AVERAGEIF
取引回数     
勝ち回数      COUNTIF
負け回数      COUNTIF
PF          ABS
勝率
累計損益

まずは今回初めて出てきた関数から説明し、
その後上から順に記述する方法を取り上げていきます。
____________________________________________________________________________________________
簡易コード表
1.  L11に =IF(K10>L10,K10,L10) と記述
2.  最終行までコピー(コピーの仕方は第1回のエクセル講座をご覧ください)
3.  M11に =L11-K11 と記述
4.  最終行までコピー
5.  A1に最大損失と記述
6,  A2に平均勝ちPipsと記述
7,  A3に平均負けPipsと記述
8,  A4に取引回数と記述
9,  A5に勝ち回数と記述
10, A6に負け回数と記述
11, A7に勝率と記述
12, A8にPFと記述
13, A9に累積損益と記述
14. B1に=MAX(M10:M5001)と記述
15, B2に =AVERAGEIF(I11:J5001,">0")と記述
16, B3に =AVERAGEIF(I11:J5001,"<0")と記述
17, B5に =COUNTIF(I11:J5001,">0")と記述
18, B6に =COUNTIF(I11:J5001,"<0")と記述
19, B4に =B5+B6と記述
20, B7に =B5/B4と記述
21, B8に =(B2*B5)/ABS(B3*B6)と記述
22, B9に =B2*B5+B3*B6と記述
____________________________________________________________________________________________
関数解説

今回取り上げるのはMAX,AVERAGEIF,COUNTIF,ABSです。説明することはあまりないのですぐに終わります。


MAX
指定した範囲の最大値を表示します。

記述式: =MAX(範囲)

具体例:=MAX(A3:B19)

A3からB19までのセルで最も大きい値を表示します。

メモ:範囲を指定する際には : を使用します。=MAX(始点 : 終点)といった感じです。 =MAX(A3,B19)で
   したらA3とB19のうちどちらが大きいかということにしかなりませんので注意してください。


AVERAGEIF
指定した条件に当てはまる範囲の平均値を表示します。

記述式: =AVERAGEIF(範囲,"条件")

具体例: =AVERAGEIF(A3:B19,">0")

A3からB19までのセルの中で、数値が0以上であるものの平均を算出します。範囲を指定したらコンマで区切ると条件に移行します。 条件はダブルクオーテーションマーク(")で囲む必要があることに注意してください。


COUNTIF
指定した範囲の中で条件に当てはまるセルの個数を表示します。

記述式: =COUNTIF(範囲,"条件")

具体例: =COUNTIF(A3:B19,">0")

A3からB19までのセルの中で、数値が0以上であるものの個数を数えます。範囲を指定したらコンマで区切ると条件に移行します。 条件はダブルクオーテーションマーク(")で囲む必要があることに注意してください。


ABS
ABSに続く括弧内の数値、もしくは式の解の絶対値を表示します。

記述式: =ABS(数値)

具体例: =ABS(E10-F10)
E10=202.35  F10=202.65  の場合 ABS(E10-F10)=0.3
E10=202.35  F10=202.05  の場合 ABS(E10-F10)=0.3
______________________________________________________________________________________

関数解説は以上です。それではモデル評価の記述方法にまいりましょう。


最大損失

概要
モデルを評価する上で大変重要になってくるのがこの最大損失です。
最大損失とは一時的に最大資産から落ち込んだ所の損失額で最も大きいものを表します。
簡単に言うとそのシステムを最悪の時期に使用した時に生じる損失はいくらかということです。
僕はそんなに資産が無いので最大ドローダウンよりも最大損失で計算しています。わかりやすいので。

システムを使用する際に、最大損益の3倍の資産は欲しいところです(理想ですが)。

システムを使用する際に、自分の資産が最大損益が発生しても20%程の損失でしか無い程のロット数で賭けるのが資金管理的にはちょうど良いのではないかと思います。

記述式
1.L11に =IF(K10>L10,K10,L10) と記述
2.最終行までコピー(コピーの仕方は第1回のエクセル講座をご覧ください)
3.M11に =L11-K11 と記述
4.最終行までコピー
5.A1に最大損失と記述
6.B1に=MAX(M10:M5001)と記述

解説 
1,最大損失を求めるためにはピークを求めなければなりません。累計損益(K10)とピーク(L10)を比べ、累計損益が今までのピークを上回れば累計損益の値を表示し、上回らなければピークをそのまま表示します。

3,上記で求めたピークから累計損益を引いたものがピークからの損失額になります。

6,3で求めた損失額の最大値を求めます。


平均勝ちPips
概要
勝ちトレードの時は平均で何Pipsとっているのかを算出します。システムを使っている時の目安になると思います。

記述式
1,A2に平均勝ちPipsと記述
2,B2に =AVERAGEIF(I11:J5001,">0")と記述

解説
個別損益(I11:J5001)のなかで0以上の値のもの(=勝ちトレード)を抜き出しその平均値を算出します。


平均負けPips
概要
負けトレードの時は平均で何Pips負けているのかを算出します。システムを使っている時の目安になると思います。

記述式
1,A3に平均負けPipsと記述
2,B3に =AVERAGEIF(I11:J5001,"<0")と記述

解説
個別損益(I11:J5001)のなかで0以下の値のもの(=負けトレード)を抜き出しその平均値を算出します。


勝ち回数
概要
取引回数、勝率をだすための準備だと思ってください。売買回数よりもさきにこちらから解説します。

記述式
1,A5に勝ち回数と記述
2,B5に =COUNTIF(I11:J5001,">0")と記述

解説
個別損益(I11:J5001)のなかで0以上の値のもの(=勝ちトレード)を抜き出しその個数を数えます。


負け回数
概要
勝ち回数と同じく取引回数、勝率をだすための準備です。

記述式
1,A6に負け回数と記述
2,B6に =COUNTIF(I11:J5001,"<0")と記述

解説
個別損益(I11:J5001)のなかで0以下の値のもの(=負けトレード)を抜き出しその個数を数えます。


取引回数
概要
検証で行われたトレード回数です。この値が少なすぎるとシステムの信頼性が疑われます。
自分のロジックはそこそこのエントリー機会があり、売買検証の結果は信頼に足るものなのかを判断するのに必要な材料になります。

記述式
1,A4に取引回数と記述
2,B4に =B5+B6と記述

解説
勝ち回数+負け回数=取引回数ですね。


勝率
概要
システムを使っている時の目安です。勝率がわかっていれば平均どれくらいの頻度で勝ち負けがあるかが気休め程度に把握できます。(もちろん勝率70%でも負けが何回も続くことはありますのであくまでも気休めです。)

記述式
1,A7に勝率と記述
2,B7に =B5/B4と記述

解説
総トレード回数を勝ちトレード回数で割ることで勝率がでます。


PF
概要
PFとは、プロフィットファクターで、総利益が総損失の何倍かを示すデータのことです。
期待値のようなものになります。1以下ならばそのシステムは使えない(やればやるだけ損失を出す)
ものであることがわかり、2以上ならば相当良いシステムということができます。

記述式
1,A8にPFと記述
2,B8に =(B2*B5)/ABS(B3*B6)と記述

解説
勝ちトレード数×勝ちトレード回数÷負けトレード平均PipS×負けトレード回数
=(      総利益       )÷(      総損失             )    
となり、PFになります。損失は-がついてしまいますのでABSを使って絶対値で計算します。


累計損益
概要
そのシステムで取引を続けた結果いくらの損益になったかを表すものです。
ここではスプレッドを入れていないので、累計損益-(スプレッド×売買回数)が累計損益になります。


記述式
1,A9に累積損益と記述
2,B9に =B2*B5+B3*B6 と記述

解説
勝ちトレード数×勝ちトレード回数+負けトレード平均PipS×負けトレード回数
=(      総利益       )+(      総損失             )    
となり、累計損益となります。




大変お疲れ様でした。もし僕と同じデータをお使いになられた方はおそらく↓のようになると思います。
(書式をいじって色等はかえています)
サ鄙・レ チ#58600;、 2


結果としてはどうでしょうか。まぁ、悪くはないシステムですね。目立たないですが。
最大損失が10なのでもし常に1万通貨で取引をしていると仮定したら10万円が最大損失になります。最悪のタイミングで取引をはじめたら10万円の資金でやっていたら破産するということになります。

スプレッドが0.3がとして考えると実際の累計損益は32.65-568×0.03=15.63
つまり1563Pips抜いていたということになります。
一万通貨で取引し続けたら15万6千3百円の利益です。
2008年4月7日から2008年1月30日までで1563pipsなのでまぁ、すくなくても僕が裁量で取引するよりかは格段に良好なパフォーマンスといえると思います。

僕裁量システムはPFが0.02とかだと思います。データを集めて計算してみると二度と裁量はやりたくないと思えて良いかもしれません。

PFは1.22と低いですが売買回数が568回と多いのでそこはまぁ目をつぶっても良いのではないかと思います。

今回のモデルの評価はこんな感じです。適当に作った割には、まぁ良いかなというところです。

前後してしまいましたが、次回こそ、パラメーターの変更と最適化を取り上げたいと思います。お楽しみに。

最後まで読んで頂きありがとうございました。


押していただけると大変励みになります。ありがとうございます。 人気ブログランキングへ


theme : FXでシステムトレード
genre : 株式・投資・マネー

2009-05-09

今回は雑記です。不況がはびこる世の中でどのように生きていくべきか考察したものをまとめてみました。

今回はサンプルとして父、母、僕の3種類を取り上げて考察していきます。

父:一所にとどまる

母:道を選ぶ

僕:道を作る(目標)

それぞれをみていきましょう。



父:一所にとどまる

父さんは、年功序列で終身雇用を全うし、現在無事退職して年金生活を送っています。

日本の終身雇用制は素晴らしいといわれ、世界で注目されていた時期もありました。

実際、父さんは夜7時頃にはいつも帰ってきて、生活に不自由を感じさせない稼ぎで、現在は年金をもらって悠々自適生活をおくっているので、僕自身。父さんのライフスタイルに憧れていました。


サブプライムローンで不況が襲い大手企業の相次ぐ破綻に失業者の増加、派遣切り、内定取り消し問題を見た時に、

花の終身雇用時代は終わったな

と感じました。



母:道を選ぶ

母さんの座右の銘は拘束しない拘泥しないです。

意味としては、

○○が無いと生きていけないという状況に陥らないように自分の場所をつくっていく。

というものだと自分の中では理解しています。

○○にはいろいろなものが入ります。
企業、勤め先、特定の取引先、御得意先、恋人、友達、親友、グループ、肩書き、権威、お金
等等。。

一見冷たいこの言葉、僕は好きです。

なぜなら 自分の人生を他人に支配されたくないからです。
この生き方には厳しい反面自由があります。

依存をしないので他人に迷惑かけることもありません。
自分の人生は自分で責任を持つ。ということでしょうか。

この概念は就職にも当てはまります。

大手企業に入る。やらされるのは下積みばかり。自分がやりたくない仕事しかやらされない。人間関係も険悪。鬱になるけど、やめたら給料を貰う当てがなくなるから働き続けるしかない。

これだと自分の人生を生きているというより、奴隷とかわりありません。

自分の生活を守るのは企業ではありません。自分自身です。

そのためにはどうすれば良いか。

自分のブランドを作り上げていつでも他の場所にいけるようにしておくことです。

母はそのことを実行しました。

どういうことかというと、母は公認会計士の資格と、英語のスキルを取得して、50歳を過ぎて転職を繰り返し、転職を繰り返すごとに年収があがっていくという離れ業をやってのけています。
この会社もう先が無いな。とか、自分に合わないと思ったら、自分のスキルがあれば転職先はすぐにみつかるので拘泥されません。

今の時代は母さんみたいに生きていくべきだと、1年前位に考えたのですが、金持ち父さんをよんで僕の意見は覆りました。



僕:道を作る(目標)

日本にはある程度のレールが敷かれています。
小学校→中学校→高校→大学→企業
              →専門職、企業
大雑把にいうとこんな感じです。
気がついたら従業員として働き終身雇用で働くというのが基本的な日本の文化、枠組みです。

しかし、別に道はそれだけではないですよね。

つまり、企業で働いてお金を得るのではなく、自分でお金を作り出すことができたらどうだろう。ということです。
自分でお金を作り出せるようになれば

大学→起業
   →フランチャイズ権購入
   →個人投資家
   →不動産投資で不労所得
という様々な道をつくることができますよね。

そうは言うもののお金が何もなければそんなことできないだろう。とお思いでしょう。

しかし、できます。初期資金がほとんどなくても。

それを可能にするのは、ネット商売とFXです。

ネット商売はパソコンさえあれば初期資金0で始めることができますし
FXはレバレッジをかけられるので10万程あればとりあえず始められると思います。

相場の収入はうまくいけば大きく化けますが、不安定で資金を減らすことも多々ありますので、なにか安定した収入も欲しいところです。

ネット商売はお金が減ることはないので相場に比べれば安定した収益を得ることができるでしょうが資産の増え方は大きくありません。

そこで
アフィリエイト等のネット商売で定期的に収入を得て、相場でその資産を増大させる。

というパターンができると経済的自立が達成できるのではないかと考えています。

メタトレーダーで優秀なEAを作れるようになれば教材として販売することもできるようになりますしね。


これは初期投資0でもできるので、誰でもできることだと思います。インターネット万歳です。

といっても相場もネット商売も簡単に稼げるようにはなりません。どちらも相当大変です。

実際僕は道を作るという目標を掲げてから
テレビをみるのやゲームをするのをやめ。
遊びにでかけるのも週に一回くらいにし。
学校以外では春休みも返上しずっと家で作業(Codersguruさんの翻訳等)をし、インディケーターを作れるようになり売買検証をする。
寝る前は何か情報をインプットしてないと時間がもったいないからIpodにおとしたジェームスの音声や英会話を聞きながら寝る。
買い物に行く時も必ず勉強になる音声を聞きながら家をでる。
ご飯を食べすぎると睡眠がより多く必要になるから小食にする。
といった人間ではない生活を送っていました。アフィリエイトも少しかじってみました。


その結果として僕が稼いだお金の総額なんと     



0!


まぁ、大変なんですよ。

稼いでない男が話す負け惜しみみたいなのですが。

それでも僕は1年以内にはだいぶお金を貯めていると思います。

辛くても諦めないでやっていれば夢は叶うからです。

少し辛いから、失敗したからといって諦めないでください。

実は僕は稼いだ金0という結果に不満をもっていません。なぜならまだ自分がお金を貰えるほどの価値を提供していないと思っているからです。 
その根底にあるのが以下の教えです。

「お金を稼ごう稼ごうとするよりも先に、お金が自然とやってくるような人間になりなさい」
「貴方がたくさんの給料を貰いたければ、その10倍分の価値を提供しなさい。そうすれば自然とお金は入ってきます。」(松下幸之助)

ですので、現在、ブログに関してはこのブログは素晴らしいといわれるようなものにすることが目標になっています。あせらずゆっくりやっていこうと思います。

実際、お金こそまだ稼いでいませんが、このブログを始めたお陰で色々なチャンスが舞い込んできました。
具体的には言いませんが本当です。ブログのお陰での素晴らしい出会いも感謝しています。

このサイトをご愛好頂いている方にはとても感謝しています。最近更新が遅れがちになって申し訳ありません。

貴方はどのような道を選ばれますか?

もし貴方が僕と同じような道を歩みたいと思われるのならば、それに対する助けや勇気づけになるようなブログになれば大変光栄です。

何か質問、相談、ご意見、ご感想、ご批判がございましたらシステムトレーダー交流所へお越し下さい。
最近コメント欄を消して、一括した掲示板を設置することにしました。それがシステムトレーダー交流所になります。
メールでしたらこちらにお願い致します。
bunkeisystemtrader@yahoo.co.jp 

それと、本日リンク先を更新しました。幣サイトのことを取り上げて下さった方々のブログをお礼に載せておきました。もしよろしければご覧ください。


取り留めのない文章で、大変長くなってしまいましたが、最後まで読んで頂き本当にありがとうございました。


押していただけると大変励みになりますのでよろしくお願いします。 人気ブログランキングへ


theme : FXでシステムトレード
genre : 株式・投資・マネー

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。