今回はFiboフィボを引いてみようと思います。

僕はかなりのフィボラーなので、この機能は譲れません(笑)

ただ、これがけっこーくせものでして

色々とやっかいな処理が必要なので少し長くなるかもしれません。

 

フィボにも色々ありますが、

とりあえず今月、今週、今日の高値安値フィボを引いてみましょう。

 

TimeFrameの選択ボタンを押すたびに同じ処理を行いますので

今回もやはりサブルーチンにします。

 

void Inner_Fibo(){}

 

Inner_Fiboというサブルーチン名にしました。

まったく同じ処理になるのでパラメーターはありません。

つまり()の中は何もなし。

{}の中には

 

datetime opentime = iTime(NULL,TimeFrame,0);

int openBar = iBarShift (NULL,Period(),opentime,false);

int HighestBar = iHighest (NULL,Period(),MODE_HIGH,openBar,0);

int LowestBar = iLowest (NULL,Period(),MODE_LOW ,openBar,0);

 

とりあえず、この四行をコピペして挿入してください。

 

最初の行ですが

iTime(NULL,TimeFrame,0);

iTimeは何度も使ってますね。

これで、選択したTimeFrameで0の位置、つまり一番右の最新の足

つまり、今月、今週、今日の開始時間を調べてます。

 

datetimeは日付や時刻の数値に使います。

intやstringと似たようなもんです。

つまり

datetime opentime

これは、「opentimeは日付時刻ですよー」という意味です。

 

つまり、この一行は

「今月、今週、今日の開始時間をopentimeに代入しますー」

という意味になります。

 

続く

日足でengulfing(包み線)が出ちゃったのでショートしたいのですが

今のところ僕が勝負できる形ではありません。

ちなみに、engulfとは「飲み込む」という意味です。

形も飲み込んでますが

それまでのトレンドの勢いまで飲み込んでしまうところが

engulfingの怖いところ。

 

前回も同じ水準のengulfingから、このありさま。

 

今、必死で抵抗してるゾーンは

今までも重要なS&Rになってます。

 

この程度はすっぴんチャートを見て気付かなきゃいけないところ。

本当に最低限のレベル。

僕的表現をするなら

「けびんでも気付くレベル」(笑)

もし気付いてなかったならポンコツすぎて話にならないので

今すぐインジケーターを全部とっぱらって

しばらくは、すっぴんチャートだけ見るようにした方がいいです。

チャートを見る力のない人があれやこれやと

インジケーターや手法をいじくりまわしても

絶対に良い結果は得られません。

一時的に勝てても安定して勝ち続けることはできません。

 

僕はよく「えこひいき」という表現を使いますが

チャートでえこひいきして見るべきものは

すっぴんチャートなんです。

ここを徹底的にえこひいきできるかどうか

それもまた思考適性です。

たいていの人はできません。

なんやかんやと「えこひいきできない自分」を正当化する言い訳を考えて

インジケーターに頼ってしまう。

頼りたくなる気持ちはわかりますが、それじゃダメなんですよ。

 

MT4を開いたら

まっさきにすっぴんチャートを確認しないと不安で仕方がない

それくらいのレベルじゃないと。

 

 

「とりあえずビール」ならぬ

「とりあえず、すっぴんチャート」です(笑)

 

「まだ終わってなかったのか!!」と思いましたね?

 

僕はみなさんの期待を裏切るのが大好きです(笑)

このように

 

「たぶんみんなこーゆーこと考えてるだろうから

おいらは逆をいったれ」

 

みたいなのも思考適性の一種なんですよ。

とにかく普段から普通の人の逆を考える習性をつけた方がいいです。

普通の人の思考パターンというのは負け組の思考パターンであって

その思考パターンに基づく行動は負けにしかつながりません。

 

実際は

今日もくそ暑いので僕は西の空に向かい

「○○○○君ありがとー!」と感謝しつつ

昼間からビールを飲んでいたら

記事を書かなきゃいけないような気分になっただけなのですが(笑)

 

 

さて

「上手に負ける」ことについてですが

単純に損失を小さくするという点で

逆指値ルールを守るということが重要なわけですが

その他にも例えば

 

「心理的に引きずらない負け方をする」

 

これも非常に重要なことですよね。

負けを引きずったら必ず次のトレードに悪影響が出ます。

僕の場合は

 

エントリーする時点で負けた自分をイメージしてみます。

 

その時に

 

「ここは勝負するべきじゃなかった」

 

と後悔してる自分が見えたなら、それは見送るべき場面です。

 

「この形で勝負して負けたなら仕方ない」

 

と、サクッと割り切れてる自分が見える場面でのみ勝負するべきなんです。

この意味においては、上手に負けるということは

「上手に待つ」ことと共通してる部分もあると言えます。

 

 

とにかく、

FXで負けを回避することなど不可能です。

負けることが避けられないなら上手に負ける。

金額的にも心理的にも、です。

 

 

前回は背景色の違うボタンを通常ボタンの上に重ねることで

選択してるボタンが一目でわかるようにしました。

ボタンの背景色を変えるだけでいいのに

なんでそんな面倒なことをしたかというと

ちゃんと理由があるんですよ。

 

たぶんみんな気付いてるでしょうが区切り線の処理で

時間足を切り替えた場合に

こんな風におかしくなってしまうことがあります。

この不具合を解消するためなんです。

 

この不具合はTimeFrameのパラメーターを見失ってるってことなので

色つきボタンの表示名を読み取って

そいつをTimeFrameのパラメーターとして設定してやる、ということです。

意味わかんないでしょ?(笑)

 

string timeframe = ObjectGetString(0,"CurrentButton",OBJPROP_TEXT);

 

if(timeframe == "Monthly")TimeFrame = 43200;                   
else if(timeframe == "Weekly")TimeFrame = 10080;
else if(timeframe == "Daily") TimeFrame = 1440;

 

これらのコードを追加するのですが

最初の行は

CurrentButton、つまり色つきボタンのテキストのプロパティを読み取って

timeframeという文字列に代入しますよー、という処理です。

ObjectGetStringがオブジェクトのテキストを取得する関数です。

 

その下は

もし、色つきボタンの表示テキストが「Monthly」だったら

TimeFrameに43200を代入しますよー、という処理です。

 

こいつらをコピペして

 

 

ここに入れてください。

これで不具合が解消されます。

前回、一連の処理をサブルーチン化しましたので

例えばMonthlyボタンの上に色つきボタンを重ねる場合は

 

SelectedButton(50,"Monthly");

 

この一行でOKになります。

Y座標を50、表示を「Monthly」にして

この一連の処理を行いますよー、という意味になります。

 

Weeklyボタンなら

SelectedButton(80,"Weekly");

Dailyボタンなら

SelectedButton(110,"Daily");

 

これらをそれぞれOnChartEventの各コードに追加します。

 

 

あと、Deleteボタンを押した場合は

色つきボタンを削除しなきゃいけませんので削除サブルーチンに

ObjectDelete("CurrentButton");

この一行を追加します。

 

このように。

 

と、ここで僕は気付いた。

削除サブルーチンに組み込んであるんだから

最初の行の削除処理は必要ないということに(笑)

 

これだけでOKなんです。

 

最後に終了処理の最後の行にも

同じコードを追加してください。

 

これで完了です。

ボタンをポチポチしてみてください。

 

 

このように切り替わるはずです。

 

頭のいい人はもう気付いてるでしょうが

通常ボタンの背景色を例えば黄色に変えたいなら


ObjectSetInteger(0,"Monthly",OBJPROP_BGCOLOR,Yellow);

こんなのを追加して

こうすると

はい変わった。

 

別記事のネタですが

こーゆーのも連想力なんですよ。

 

「これってあそこにも使えるんじゃね?」

 

これを思いつくかどうか

トレーダーとして重要な資質です。

 

 

 

 

 

 

 

今回のサブルーチンは前回より少し複雑です。

 

パラメーターが入ってます。

 

SelectedButton というのが一連の処理につけた名前。

括弧の中のYCurrentTimeFrameがパラメーター。

一連の処理というのは括弧の中の

この処理のことです。

 

つまり、どのボタンの上に重ねるかによって

YとCurrentTimeFrameの部分は変えなきゃいけないので

パラメーターにしたわけです。

 

 

YはボタンのY座標です。ピクセルだから整数でint。

 

 

Monthlyボタンの上に重ねる場合は50

Weeklyボタンなら80

Dailyボタンなら110です。

 

 

CurrentTimeFrameはボタンに表示するテキストです。

文字列なのでstring。

 

 

"CurrentButton"というのはボタンのオブジェクト名です。

Monthlyボタンの上に重ねる場合は表示を"Monthly"にする。

Weeklyなら"Weekly"、Dailyなら"Daily"。

同じ表示にすることで、あたかもボタンの色だけ変わったように見せてるんです。

 

 

前に使ったサブルーチンは全く同じ処理だったので必要ありませんでしたが

今回のように部分的に少し違う場合は

このようにパラメーターを使用します。

 

最初の行の

これはボタンの削除処理です。

つまりMontlyからWeeklyに切り替える場合は

Montlyの上に重ねた色つきボタンをまず消して

Weeklyの上に新たに色つきボタンを作成する、

そういう手順になってます。

 

 

最後の行の

これで

ボタンの背景色をしています。

好みの色を設定すれば大丈夫です。

 

 

もう少し続きます。

今回は選択してるTime Frameが一目でわかるように

ボタンに色をつけたいと思います。

 

 

こんな風に。

 

普通は単純に背景色を設定するんですけど

今回は他に「ある目的」があるので

ちょっと変則的なやり方をします。

 

ボタンの上に色のついた別のボタンを重ねる

 

という方法で。

 

今回もサブルーチンを使います。

 

void SelectedButton(int Y,string CurrentTimeFrame){}

 

この一行をコピペしてプログラムの一番最後に追加してください。

そして {} の中に

 

ObjectDelete("CurrentButton");

ObjectCreate(0, "CurrentButton", OBJ_BUTTON, 0,0,0);
ObjectSetInteger(0,"CurrentButton",OBJPROP_XDISTANCE,20);
ObjectSetInteger(0,"CurrentButton",OBJPROP_YDISTANCE,Y);
ObjectSetString(0,"CurrentButton",OBJPROP_TEXT,CurrentTimeFrame);
ObjectSetInteger(0,"CurrentButton",OBJPROP_COLOR,clrRed);
ObjectSetInteger(0,"CurrentButton",OBJPROP_BGCOLOR,SteelBlue);

 

まるっとコピーして挿入してください。

 

 

もうすでに字数制限がやばいので説明は次回に(笑)

前回は小難しい表現をしましたが、

噛み砕いて言うならば

 

「この人はこーゆーとこがFXに向いてる」

 

という、その人の性質

それを探してください、ということです。

 

それを見つけられないということは

FXで成功するために必要なものがわかってないということなので

テクニカルやら何やらをどれだけ一生懸命勉強したって無駄です。

 

例えば

僕はよくアニメやマンガのセリフを用いて説明することがありますが

それは

 

連想力という思考適性なんです。

 

普段の生活の中で、常にアンテナを張ってるんですよ。

「FXに生かせそうな何か」を求めて。

チャートを見たり、FXブログを読んだり、セミナーを受講したり、

そういう時間にFXのことを考えられるのは当たり前です。

それ以外の、FXとは全然関係ないことをしてる時間に

FXのことを考えられないような人は連想力がポンコツなんです。

連想力がポンコツな人はイメージを展開できないので

何をするにも応用がききません。

オリジナルの手法なんて創造できるわけがない。

 

では、連想力を鍛えるにはどうしたらいいのか?

 

知りませんよ!(笑)

 

鍛えて身につけたものじゃないので。

たぶん、物心ついた頃にはすでに持ってました(笑)

 

 

最初から持っていたものにせよ

訓練で手に入れたものにせよ

成功してるトレーダーってのは普通の人と違う

 

特異性 が必ずあるはずなんです。

 

逆の言い方をすれば

 

「この人、かなり変」

 

と、人からよく言われるような人は

何らかの思考適性を持っている可能性が非常に高い。

例えば僕(笑)

 

トレーダーにとって

奇人変人はほめ言葉(笑)

 

 

前回の記事で「思考適性」という言葉を使ったので

もうちょっと説明したいと思います。

 

もし、あなたがFXに関して

「こんなに努力してるのに、なんでダメなんだろう」

とか思ったことがあるのなら

それは思考適性がない、ということです。

 

僕はFXを始めて以来

自分が努力してると思ったことなど一度もありません。

努力というものを数値化できるとしたら

おそらく僕の数値はかなりのものになるでしょう。

でも、それを努力と思ったことはないのです。

 

つまり僕は普通の人が努力しなきゃできないことを

ただ「面白いこと」としてこなしてきてるんです。

苦痛も感じないし、我慢も必要ないので

質量ともに普通の人にはできないことができるんです。

 

 

FXで成功してる人というのは必ず何らかの思考適性をもってます。

例えば、あなたがその人からFXを学ぼうと思ったなら

手法とか表面的なテクニックなどではなく

「その人がどういう思考の持ち主なのか」

そこをまず考えなきゃいけないんですよ。

 

これも何度もポンコツ弟子のけびんに言ってることなんですけど

「その人の脳みその中を理解すること」です。

 

FXで成功するコツとか秘訣とか

そーゆーのはほとんどそこにあるんです。

 

基本的にFXは

「普通の人が普通の思考に基づき、普通の行動をしてたら失敗する」

そういう世界です。

 

成功してる人は

普通じゃない思考に基づく、普通じゃない行動をしてます。

必ず、何かしらあります。

それをまず探してください。

 

成功するトレーダーの本質 を。

 

 

と、僕がどれだけ言っても

ほとんどの人は本質を理解しないで

表面的なテクニックを真似すれば勝てると思ってしまうことも

僕は知っています(笑)

 

 

「まだ続くのか!」と思いましたね?(笑)

 

はっきり言っておきますが

FXというのは技術とか知識とかより

「心構え」の方が100万倍も重要なのです。

 

勝ってる人は自分の知らない「何か」を知ってて

自分が持ってない技術を持ってるから勝てるんだ、などと

 

そんなふうに考えてるうちは

どんなに勉強したって無理ですよ。

 

それで勝てるようになるなら

僕の弟子のけびんが勝てるようにならないことの説明がつきません(笑)

 

FXというのは、ほとんどの人が負けてるんです。

ほとんどの人が負けてるってことは

「どんなに頑張っても無駄」な部分があるという事実を

まず認めなきゃいけません。

 

言い換えれば

「どうにもならない」部分にこそ、勝てるようになるための「秘訣」があって

その「どうにもならない」部分がどのようなものなのか

それを明確にすることができて

ほんのちょっとだけでも「どうにかする」ことができたら

それだけで、かなり成功に近づくことができるんです。

 

僕はFXというのは

勝ち組と負け組はほとんど適性で振り分けられると思ってます。

特に重要な適性は「思考適性」です。

適性のある人は何も教えなくたって

FXにおける「正解」を選ぶことができます。

 

たとえば、「上手に負ける」ためには

「ルールを守ること」が絶対に必要です。

でも「ルールを守ること」に「我慢」や「苦痛」を伴う人は

ぶっちゃけ、FXには向いてないんですよ。

我慢や苦痛を伴う行為など長続きしません。

それがふつーにできる人。

そこからさらにすすんで

ルールを守ることに快感を感じるような人

そういう「思考適性」をもってる人が成功する。

FXってのはそういう世界なんです。