2年ぶりに人間ドックに行きました。
体重 +10 kg
腹囲 +10 cm
メタボです!
運動不足、暴飲暴食、ストレス・・・・
この2年で、体型が変わってしましました・・・・。
本気で早くシステムトレードで年利20%~30%以上で運用できるようになり、ストレスフリーな生活になりたいです・・・。
このままだと早死だな。
篠原(強弱・AB)レシオとは?
ABレシオは「オシレーター系」のテクニカル指標です。
日本人チャート分析者である篠原正治氏が、 株価予測の為に作り上げたオシレーター系テクニカル指標です。
「篠原レシオ」「強弱レシオ」とも言われています。
篠原(強弱・AB)レシオの計算式
Aレシオを「エネルギー」、Bレシオを「人気」とします。
【Aレシオ 計算方法】
Aレシオ=X日間のA1(強エネルギー)合計÷X日間のA2(弱エネルギー)合計×100
A1(強エネルギー)=当日高値-当日始値
A2(弱エネルギー)=当日始値-当日安値
当日始値を基準に、その日の高値までの幅を強エネルギー、その日の安値までを弱エネルギーとします。
過去(通常は)26日間の強エネルギーを弱エネルギーで割って値を求めます。
【Bレシオ 計算方法】
Bレシオ=X日間のB1(強人気)合計÷X日間のB2(弱人気)合計×100
B1(強人気)=当日高値-前日終値
B2(弱人気)=前日終値-当日安値
「Aレシオ」の特徴
エネルギーの強弱が均衡しているときに100%近傍に落ち着きます。
そこでAレシオが100%よりも下落して60%や50%という水準になっていれば、反転上昇が見込まれることから、「買いサイン」と読みます。
AレシオはBレシオほど派手には動きません。
Aレシオが低水準にあればエネルギーが蓄積されている状態にあると読んで、上昇するときを買いタイミングと捉えます。
「Bレシオ」の特徴
数100%という水準まで派手に大きく動くのが特徴です。
実際の日足チャートとかなり似たような動きをします。
200~300%まで急上昇したときは、過熱感が強くなっていると読んで、”売りが近い”と判断し、買い持ちしたポジションを徐々に落としていきます。
売買の目安
- 買い : 低い位置でAレシオを下回っていたBレシオが、70%以下でAレシオを上抜いた時
- 買い : ABレシオがともに高い位置から急落し、70%を下回った時
- 買い : Aレシオが低い位置でエネルギーを溜めている時に、Bレシオが高い位置からAレシオに接近した時
- 売り : Bレシオが上昇前の3倍になった時
両方のラインを利用した手法としては、Bレシオが、100%近傍までの低い位置を移動するAレシオを下から上に抜けてきたときに、「買いサイン」とみなします。
BレシオがAレシオからの上方乖離を大きくしているうちは、買い継続ですが、Bレシオが200~300%の水準まで上れば、いったん売りとして様子を見るのが無難といえます。
Protraでの描写方法
強弱レシオは、ProtraのTIlib.ptには存在しません。なのでTllib.ptに追加が必要です。
2年前に実装しようとして失敗し、今年に入っても数回挑戦して失敗していました。今回、ようやく実現できました。
ソースコード
「TIlib.pt」に下記を追加します。GitHubに公開済です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
#==== 篠原・強弱レシオ(ABレシオ) # AB[A]ならtypeに0をAB[B]なら1にする def ABratio_new(days, type) obj = [8] obj[0] = null # previous AB obj[1] = null # current AB obj[2] = type # type obj[3] = MAutil_new(days) # numerator obj[4] = MAutil_new(days) # denominator obj[5] = {-days}LatestClose # fallback closing price obj[6] = -days obj[7] = Index while obj[6] < 0 ABratio_next(obj) end obj[6] = at obj[7] = {-at}Index return obj end def ABratio_next(obj) obj[6] = obj[6] + 1 + obj[7] - Index obj[7] = Index obj[0] = obj[1] if !obj[5] obj[5] = {obj[6]-1}Close if !obj[5] return end end close1 = {obj[6]-1}Close high = {obj[6]}High open = {obj[6]}Open low = {obj[6]}Low if obj[2] == 0 # Aレシオ = X日間のA1(強エネルギー)合計 ÷ X日間のA2(弱エネルギー)合計 × 100 AB_typeA_calc(obj[3], obj[4], high, open, low, close1) else # Bレシオ = X日間のB1(強人気)合計 ÷ X日間のB2(弱人気)合計 × 100 AB_typeB_calc(obj[3], obj[4], high, open, low, close1) end if obj[3][0] != null && obj[4][1] != 0.0 obj[1] = 100.0 * obj[3][1] / obj[4][1] end return end def AB_typeA_calc(n, d, high, open, low, close1) # A1(強エネルギー) = 当日高値 - 当日始値 a1 = high - open # A2(弱エネルギー) = 当日始値 - 当日安値 a2 = open - low MAutil_next(n, a1) MAutil_next(d, a2) end def AB_typeB_calc(n, d, high, open, low, close1) # B1(強人気) = 当日高値 - 前日終値 b1 = high - close1 # B2(弱人気) = 前日終値 - 当日安値 b2 = close1 - low MAutil_next(n, b1) MAutil_next(d, b2) end def ABratio_draw(obj, color) MA_draw(obj, color) end def ABratio_value(obj) return obj[1] end |
Protra上で描写するソースコードは次のとおりです。
この例では、日間は通常「26日間」が使われるらしいので26にしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
require "Color" require "TIlib" $Names[0] = "AB ratio A(26)" $Colors[0] = $Red $Names[1] = "AB ratio B(26)" $Colors[1] = $Green if !$A && !$B $A = ABratio_new(26,0) $B = ABratio_new(26,1) else ABratio_next($A) ABratio_draw($A, $Colors[0]) ABratio_next($B) ABratio_draw($B, $Colors[1]) end Indicator(0, ABratio_value($A)) Indicator(1, ABratio_value($B)) |
結果
下の赤緑のグラフが篠原(強弱・AB)レシオです。
「Bレシオの方が200%、300%と激しく動く」「基本的には100%となる」「Bレシオが200%を超え始めると買われすぎ」「Bレシオが70%より下げると売られすぎ」・・と、なんとなく、正しそうに見えます。
まとめ
篠原(強弱・AB)レシオは2年前から描写したかったテクニカル指標です。
今回、「TIlib.pt」を徐々に理解できるようになり実現しました。
「TIlib.pt」は海外サイトのテクニカル指標をベースに作成されています。
ですので最近のテクニカル指標や、日本製のテクニカル指標が実装されていません。
こんな事をしなくてもイザナミなどには既に実装されています。
何のためにやっているか全く意味が分からないね。単に100行未満のプログラミングがやりたいだけだろうね。