「安いから買い、高いから売り」、と考えるのは大きな間違い!
「安いから買い、高いから売り」、と考えるのは大きな間違い!
誰が安いと判断するのでしょうか・・・
誰が高いと決めるのでしょうか・・・
高い、安いという感覚は、個人の感性や、過去の値動きに左右される部分が多いのです。
儲けるためには、安く買って、高く売らねばなりません。
しかし、今、買おうとしている価格が、安いのか、高いのかは、現時点では分からないはずです。
高い、安いという感覚は、人によってまったく違う感覚なのです。
安いな~と感じるときは、以下の2パターンです。
1.特別な材料もなく、短期間で下げたとき
2.何らかの強気材料があり、株価が反応するかもしれないと考えたとき
安いな~という「あなたの感覚」が、上昇に直結することは絶対にありません。
安いから買うという感覚は、スーパーのチラシを見て、卵を買う感覚です。
一般的に卵は転売目的では買いません。従って、安いな~絶対的な感覚で、購入し、「安く買えた。良かった」と自己満足に浸れば良いのです。
しかし、転売目的、利益目的の世界では、「安いから買う」という感覚は、持ってはならない感覚なのです。
安い、高いは・・・
1.過去の値動きから判断できるものではありません。
2.絶対的な水準によって決まるものではありません。
「安いからといって、買ってはなりません」、安いと判断したのは、あなた、投資家自身であることを忘れてはなりません。
高い、安いという感覚は、本当にあやふやなものなのです。
スコトーマ
スコトーマ
スコトーマとは「盲点」のこと。
心理学の世界でも、『心理的盲点』として、よく使われる言葉です。
たとえば、いま、紙と鉛筆を用意して、ご自身の「腕時計」の特徴を絵にして書いてください・・・。
どれくらいの方が、腕時計の特徴(デザイン)を描くことができるでしょうか・・・
絵心とは関係なく、多くの方が、ご自身のお気に入りの腕時計の特徴を把握していないと思われます。
見ているようで見ていない・・・のです。脳とは都合の良い生き物です。都合の良いものしか、受け入れてくれないのです。
思い込みにより、正しい情報を受け取ることができなくなっているのです。
相場と格闘する上でも、儲けたいと考えているわりは、脳は思った以上に機能してくれません。
儲けたいと考えている脳に限って、儲けることができないのです・・・
なぜか・・・
儲けたいと常に考えていること事態が、儲けていない自分(現実)を認知してしまっているからなのです。
儲けたい・・・と考えれば考えるほど、脳は、儲けていない現実から、抜け出せなくなってしまうのです。
現実は、仮想世界であるという「変性意識」という考え方からすれば、儲けることができない・・・という内部表現によって、脳が支配されているからと考えることができます。
自分のいる世界の外は、スコトーマの世界です。
たとえば、取引枚数がミニ1枚のAさんと、ラージ100枚で取引しているBさん・・・
取引枚数の違いは、物理的な資金力の差だけに過ぎません。
Bさんも、昔はもっと小さな取引枚数でした。
ミニ1枚で終わるのか、ラージ100枚までの取引に成長するのか・・・は、意識の持ち方次第と考えています。
なぜ、こんな話をしたのか・・・って・・・
ブログには、様々なチャートを掲載していますが、これらチャートを描くプログラムは私が20才の時に書いたプログラムが、基本になっています。
24年前に書いたソースが、いまもなお、動いているのですが、この週末に、とんでもない発見(バグ)がありました。
ソースコードに誤りがあったのです。致命的なミスではありせんが、24年もの間、発見できなかったバグ・・・いかに、見えていないかを、痛烈に感じました。
バット・ラケット・キュー・クラブ
バット・ラケット・キュー・クラブ
野球のバット、テニスのラケット、ビリヤードのキュー、ゴルフのクラブ・・・どれも、だれでも、簡単に、これらの「振り方」は、勉強できます。
しかし、「上手に」となると、それなりの訓練が必要です。
そして、お金を稼ぐ「プロ」になるためには、文字通り、「血がにじむ」ような努力が必要です。
トレードもまさに、同じと考えます。
見えなかったものが見えるようになるためには、道具の使い方を勉強しただけではダメだと考えいます。
バット、ラケット、キュー、クラブ・・・これらは、トレーディング手法と何ら変わりはありません。
「1億を稼いだ手法」は、非常に単純です。
損切りを小さく、利益を大きく・・・これしかありません。
では、どこで相場に参加するのか・・・
これも、非常に簡単です。
上方向に伸びるときに買い、下方向に進むときに売る・・・これ以外にありません。
では、いつ、上方向に伸び、いつ、下方向に進むのか・・・
これも、また、非常に簡単な話です。
皆が買い始めたときに上方向に伸び、皆がダメだと売り始めたときに下方向に進みます。
自分の予想、推測、想像、第六感・・・まったく関係ありません。他人がどう思っているのか・・・だけで、他人の考えは、値動きとして、感じることができるはずです。
値動きを分析した結果に従うのではなく、値動きに従えば良いのです。
上昇しているものが、いつ反転、下落するのか・・・
下落しているものが、いつ反転、上昇するのか・・・
これを的確に言い当てることなど、無理です。
値動きの初動に乗ることだけを考え、初動と思ったけど、初動ではなかった・・・ならば損切りとするだけです。
初動で乗ることができれば、トレンドはある程度、続きます。どっしりと構え、利益を伸ばす努力をする・・・
相場の先行きを考えるのではなく、トレンドの流れを感じることが重要なのです。
寄り引けシステム
寄り引けシステム
寄り引けシステムは、『データの改ざんが自由自在』であることに気付きました!
寄り引けですから、年に数度、500円儲けた、または、損したという日が生まれます
。
この年に数度のときに「正しいポジション」を持っているか否かが、パフォーマンスに大きな影響を与えます。
つまり、データを数カ所改ざんするだけで、パフォーマンスは見違えるほどによくなることを「発見」したのです。
これまで、ネット上で公開されている、寄り引けシステムのパフォーマンス表を、100%信じていましたが、作成する側になってみると、寄り引けシステムほど、人間の手が入る余地が大きいシステムはない・・と感じ、少々、疑いの目で見るようになりました。
これまで、様々な情報商材を購入してきた過程で、様々な寄り引けシステムともお付き合いしてきましたが、思うような成績を残せないでいます。
○ランキングが急上昇したサイトの寄り引けシステム
○パフォーマンスが良すぎるシステム
現時点で感じているのは、上記2点にマッチするものは、少々、疑いの目で見ています!
シグナル
係数考察
係数考察
係数B
チャートをクリックしますと拡大します。拡大したチャートが「ぼけて」いるときは、チャートを再度クリックしてください。
計算式を利用するテクニカル分析は、「係数(パラメーター)」が非常に重要です。
何本の移動平均線を使うのか・・・
どれくらいの比重を掛けるのか・・・
係数ひとつで、売買シグナルの発生状況は、大きく変化します。
自動売買プログラムを走らせますと、係数を最適化することができます。
たとえば、6日移動平均線と23日移動平均線での売買が大きな利益を上げた!などと計算することができるのです。
しかし、将来にあっても、6日と23日が「有効」である保証はどこにもありません。
係数について、考えてみることにしましょう。
一般的に、係数を小さくすれば、「感応度」が高まります。
大きくすれば「鈍感」になります。
移動平均線の例で考えてみましょう。
3本移動平均線と、25本移動平均線、係数は3と25です。
3本移動平均線と25本移動平均線の「滑らかさ」を比較して頂ければ、「感応度」の話は、ご理解頂けるものと思います。
正確には係数ではありませんが、1分足と、4時間足・・・どちらが相場に早く乗れるか・・・という議論をすれば、1分足に軍配が上がります(損益ではなく、感応度の話です)。
係数は、売買シグナルの発生状況を大きく変化させます。
上のチャートは、ゾーン・チャート3分足での、シグナル発生状況ですが、係数Aと係数Bを比較してください。
どちらが、適していたのか・・・係数Bです。
係数Aと係数B、シグナルの発生回数から、係数Aのほうが係数Bよりも、小さいと判断して頂けるものと思います。
しかし、係数Bが、明日も有効である『保証』はどこにもありません。
係数を大きくすると、感応度が鈍り、売買シグナルの回数は減ります。
係数そのものが、フィルターの役割を果たすのです。
しかし、ディメリットもあります。
売買シグナルの発生タイミングが、係数が小さいときよりも「遅く」なるのです。
遅くなることで、『天を掴み、底を投げる』可能性も出てきます。
係数決定の「大原則」は、『相場が小動きなときは係数を大きくして(ダマシ排除)、相場が大きく動いているときは係数を小さくする(積極参加)』と考えています。
しかし、相場が小さく動くのか、大きく動くのか・・・は、結果からしか分からないことも事実です。
係数を追求しすぎると、過剰最適化の罠に陥ってしまうことも、認識しなければなりません。
利用するタイム・フレームと係数の考察も重要です。
たとえば、5分足に利用する係数と、4時間足に利用する係数は、違って当然です。
過剰最適化に気を付けながら、もっとも適した係数はなにか・・・考えてみる必要があります。
波動カウント
波動カウント
波動は、後から数えれば、すべて正しく数えることができます。
リアル・タイムで、終わったときと、同じように数えることができなければ「意味」がありません。
きょうは、終わったときと同じように数えるための「コツ」を書きます。
リアル・タイムの世界では、波動を、高値と安値だけに注目して数えるのはあまりにも危険です。
そもそも、いま、見ている高値・安値が、終わった時点で、高値と安値である保証はどこにもないからです。
きょうは、高値を付けた、安値を付けたとする「定義」を、ゾーンチャートの転換として、波動を数えて見ることにしましょう。
掲載したチャートは、転換したら「数字」を付けています。
まず、下落の1番は、ゾーンの転換があった時点で認識できます。
ゾーンの買い転換があるまでは、波動1が継続していると、認識するのです。
波動1から買い転換があったあと、波動2の可能性を読むわけです。
波動2は「ダマシ」です。
案の定、ダマシになり、売り転換しました。
波動3の始まりです。
波動3は突如として終わり、上昇波動1が形成されました。
問題はここです。
この上昇波動のあとの転換が、下落の波動3の安値を割り込んだことから、波動1で、上昇が終わっているのです。
つまり、波動1と思ったけど、実は、前波動に吸収されて、波動4と波動5と認識を改めねばならないのです(青文字)。
波動5まで終わり、波動1が始まりました。
波動2がダマシになっています。
そして、同じことが起こります。
21:30の下落です。波動1の始まりかと思いきや、高値を突破したことで、波動4、そして、その後の上昇が波動5として認識できるのです。
波動5が終わり、下落に転じました。
転換数だけでも、これだけ、綺麗に数えることができます。
正しく、波動を数えることが目的ではありません。
ダマシとなる波動2と波動5以降の取引を自粛するために、波動を数えるのです。
リアル・タイムでの波動カウント、ぜひ、挑戦してください!
ボリンジャーバンド自動売買
ボリンジャーバンド自動売買
自動売買の世界で使用されるテクニカル分析は以下の通りです。
1.ボリンジャーバンド
2.MACD
3.ストキャスティクス
4.移動平均線(SMA、EMA、DMA、WMA)
5.ろうそく足(コマ足・陰陽線)
6.一目均衡表
ただし、海外モノは、1~4がメインです。
以下のプログラムは、ボリンジャーバンドをベースにした自動売買ロジックの試作版です(メタ言語)。
変数を多用していることもあり、難解なプログラムのように見えますが、慣れれば、楽に読めるようになります。ご安心ください。
ボリンジャーバンドをどのように処理しているのか・・・読み解けますか?
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 RoyalBlue
#property indicator_color2 Red
#property indicator_color3 RoyalBlue
#property indicator_color4 Red
#property indicator_color5 RoyalBlue
#property indicator_color6 Red
extern int Length = 20;
extern int Deviation = 2;
extern double MoneyRisk = 1.0;
extern int Signal = 1;
extern int Line = 1;
extern int Nbars = 1000;
double g_ibuf_104[];
double g_ibuf_108[];
double g_ibuf_112[];
double g_ibuf_116[];
double g_ibuf_120[];
double g_ibuf_124[];
extern bool SoundON = TRUE;
bool gi_132 = FALSE;
bool gi_136 = FALSE;
int init() {
SetIndexBuffer(0, g_ibuf_104);
SetIndexBuffer(1, g_ibuf_108);
SetIndexBuffer(2, g_ibuf_112);
SetIndexBuffer(3, g_ibuf_116);
SetIndexBuffer(4, g_ibuf_120);
SetIndexBuffer(5, g_ibuf_124);
SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 1);
SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 1);
SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 1);
SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, 1);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);
SetIndexArrow(0, 159);
SetIndexArrow(1, 159);
SetIndexArrow(2, 108);
SetIndexArrow(3, 108);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
string ls_0 = "BBands Stop(" + Length + "," + Deviation + ")";
IndicatorShortName(ls_0);
SetIndexLabel(0, "UpTrend Stop");
SetIndexLabel(1, "DownTrend Stop");
SetIndexLabel(2, "UpTrend Signal");
SetIndexLabel(3, "DownTrend Signal");
SetIndexLabel(4, "UpTrend Line");
SetIndexLabel(5, "DownTrend Line");
SetIndexDrawBegin(0, Length);
SetIndexDrawBegin(1, Length);
SetIndexDrawBegin(2, Length);
SetIndexDrawBegin(3, Length);
SetIndexDrawBegin(4, Length);
SetIndexDrawBegin(5, Length);
return (0);
}
int start() {
int li_8;
double lda_12[25000];
double lda_16[25000];
double lda_20[25000];
double lda_24[25000];
for (int l_shift_4 = Nbars; l_shift_4 >= 0; l_shift_4--) {
g_ibuf_104[l_shift_4] = 0;
g_ibuf_108[l_shift_4] = 0;
g_ibuf_112[l_shift_4] = 0;
g_ibuf_116[l_shift_4] = 0;
g_ibuf_120[l_shift_4] = EMPTY_VALUE;
g_ibuf_124[l_shift_4] = EMPTY_VALUE;
}
for (l_shift_4 = Nbars - Length - 1; l_shift_4 >= 0; l_shift_4--) {
lda_12[l_shift_4] = iBands(NULL, 0, Length, Deviation, 0, PRICE_CLOSE, MODE_UPPER, l_shift_4);
lda_16[l_shift_4] = iBands(NULL, 0, Length, Deviation, 0, PRICE_CLOSE, MODE_LOWER, l_shift_4);
if (Close[l_shift_4] > lda_12[l_shift_4 + 1]) li_8 = 1;
if (Close[l_shift_4] < lda_16[l_shift_4 + 1]) li_8 = -1;
if (li_8 > 0 && lda_16[l_shift_4] < lda_16[l_shift_4 + 1]) lda_16[l_shift_4] = lda_16[l_shift_4 + 1];
if (li_8 < 0 && lda_12[l_shift_4] > lda_12[l_shift_4 + 1]) lda_12[l_shift_4] = lda_12[l_shift_4 + 1];
lda_20[l_shift_4] = lda_12[l_shift_4] + (MoneyRisk - 1.0) / 2.0 * (lda_12[l_shift_4] - lda_16[l_shift_4]);
lda_24[l_shift_4] = lda_16[l_shift_4] - (MoneyRisk - 1.0) / 2.0 * (lda_12[l_shift_4] - lda_16[l_shift_4]);
if (li_8 > 0 && lda_24[l_shift_4] < lda_24[l_shift_4 + 1]) lda_24[l_shift_4] = lda_24[l_shift_4 + 1];
if (li_8 < 0 && lda_20[l_shift_4] > lda_20[l_shift_4 + 1]) lda_20[l_shift_4] = lda_20[l_shift_4 + 1];
if (li_8 > 0) {
if (Signal > 0 && g_ibuf_104[l_shift_4 + 1] == -1.0) {
g_ibuf_112[l_shift_4] = lda_24[l_shift_4];
g_ibuf_104[l_shift_4] = lda_24[l_shift_4];
if (Line > 0) g_ibuf_120[l_shift_4] = lda_24[l_shift_4];
if (SoundON == TRUE && l_shift_4 == 0 && !gi_132) {
Alert("BBands going Up on ", Symbol(), "-", Period());
gi_132 = TRUE;
gi_136 = FALSE;
}
} else {
g_ibuf_104[l_shift_4] = lda_24[l_shift_4];
if (Line > 0) g_ibuf_120[l_shift_4] = lda_24[l_shift_4];
g_ibuf_112[l_shift_4] = -1;
}
if (Signal == 2) g_ibuf_104[l_shift_4] = 0;
g_ibuf_116[l_shift_4] = -1;
g_ibuf_108[l_shift_4] = -1.0;
g_ibuf_124[l_shift_4] = EMPTY_VALUE;
}
if (li_8 < 0) {
if (Signal > 0 && g_ibuf_108[l_shift_4 + 1] == -1.0) {
g_ibuf_116[l_shift_4] = lda_20[l_shift_4];
g_ibuf_108[l_shift_4] = lda_20[l_shift_4];
if (Line > 0) g_ibuf_124[l_shift_4] = lda_20[l_shift_4];
if (SoundON == TRUE && l_shift_4 == 0 && !gi_136) {
Alert("BBands going Down on ", Symbol(), "-", Period());
gi_136 = TRUE;
gi_132 = FALSE;
}
} else {
g_ibuf_108[l_shift_4] = lda_20[l_shift_4];
if (Line > 0) g_ibuf_124[l_shift_4] = lda_20[l_shift_4];
g_ibuf_116[l_shift_4] = -1;
}
if (Signal == 2) g_ibuf_108[l_shift_4] = 0;
g_ibuf_112[l_shift_4] = -1;
g_ibuf_104[l_shift_4] = -1.0;
g_ibuf_120[l_shift_4] = EMPTY_VALUE;
}
}
return (0);
}


