<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>mk-mode BLOG</title>
	<atom:link href="http://www.mk-mode.com/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mk-mode.com/wordpress</link>
	<description>このブログは自作の自宅サーバに構築した CentOS で運用しています。</description>
	<lastBuildDate>Wed, 22 Feb 2012 15:20:58 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/feed/" />
		<item>
		<title>Cygwin &#8211; procps パッケージ導入！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/23002058/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/23002058/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 15:20:58 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[PC_Tips]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6535</guid>
		<description><![CDATA[こんばんは。 Cygwin で top コマンドや free コマンドなどが使用できない場合があります。 インストールされていないからであり、procps というパッケージをインストールすることで解決できます。 導入メモ [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>Cygwin で top コマンドや free コマンドなどが使用できない場合があります。</p>
<p>インストールされていないからであり、procps というパッケージをインストールすることで解決できます。</p>
<p><span id="more-6535"></span></p>
<h3>導入メモ</h3>
<h4>０．procps について</h4>
<p>Cygwin に procps というパッケージを導入することで、以下のコマンド使用できるようになります。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
prockill  procps    sysctl    free      pgrep     pkill
pmap      pwdx      skill     slabtop   snice     tload
top       uptime    vmstat    w         watch
</pre>
<p>以下を参照。</p>
<ul>
<li><a href="http://cygwin.com/packages/procps/" target="_blank">http://cygwin.com/packages/procps/</a></li>
</ul>
<h4>１．導入済み確認</h4>
<p>以下のコマンドで Cygwin に既に procps が導入済みかどうかを確認します。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ cygcheck -c | grep procps
</pre>
<p>なにも表示されなければ、未インストールです。<br />
apt-cyg を導入しているなら、以下のコマンドでも確認できます。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ apt-cyg find procps
</pre>
<h4>２．procps インストール</h4>
<p>Cygwin の setup.exe を起動して、[System] の procps をインストールするだけです。<br />
apt-cyg を導入しているなら、Cygwin 上から以下のコマンドでもインストールできます。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ apt-cyg install procps
</pre>
<h4>３．導入完了確認</h4>
<p>以下のコマンドで Cygwin に procps がインストールできたかを確認します。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ cygcheck -c | grep procps
procps               3.2.7-1              OK
</pre>
<p>このように表示されれば、インストールできています。<br />
apt-cyg を導入しているなら、以下のコマンドでも確認できます。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ apt-cyg find procps
</pre>
<h4>４．動作確認</h4>
<p>試しに、コマンドを実行してみます。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ top
top - 13:28:29 up 2 days, 11:03,  0 users,  load average: 0.00, 0.00, 0.00
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
Cpu(s):   0.5% user,   0.5% system,   0.0% nice,  98.9% idle
Mem:   2097151k total,   488783k used,  1608368k free,        0k buffers
Swap:  4177920k total,   803956k used,  3373964k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3836 hoge       8   0  6672 8320 1692 S    0  0.4   0:00.26 mintty
  980 hoge       8   0  6952 7408 1976 S    0  0.4   0:00.12 bash
 1216 hoge       8   0  5284 4756  800 R    0  0.2   0:00.10 top

$ free
             total       used       free     shared    buffers     cached
Mem:       2097151     498287    1598864          0          0          0
-/+ buffers/cache:     498287    1598864
Swap:      4177920     802324    3375596

$ uptime
 13:29:38 up 2 days, 11:04,  0 users,  load average: 0.00, 0.00, 0.00
</pre>
<p>正常に機能しました。<br />
Cygwin の uptime で Windows のマシン起動時間も取得できるんですね！<br />
systeminfo コマンドのまどろっこしさが解消されます。</p>
<hr />
<p>これでまた、Cygwin が一層便利なものになりました。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4839911959&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=483991169X&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/23002058/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/23002058/" />
	</item>
		<item>
		<title>Windows &#8211; MeCab で形態素解析！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/21002012/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/21002012/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 15:20:12 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[PC_Tips]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6503</guid>
		<description><![CDATA[こんばんは。 文章を意味のある単語に区切り、辞書を利用して品詞や内容を判別することを「形態素解析」と言います。 形態素解析は、主にかな漢字変換や機械翻訳に使われている記述です。 今回はまず、近い将来目論んでいることのため [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>文章を意味のある単語に区切り、辞書を利用して品詞や内容を判別することを「形態素解析」と言います。<br />
形態素解析は、主にかな漢字変換や機械翻訳に使われている記述です。</p>
<p>今回はまず、近い将来目論んでいることのために、Windows のコマンドプロンプトで試してみました。</p>
<p><span id="more-6503"></span><br />
以下、導入・試行方法の記録です。</p>
<h3>記録</h3>
<h4>０．前提条件</h4>
<p>インストールするのは、WindowsXP SP3 です。</p>
<h4>１．ダウンロード</h4>
<p><a href="http://mecab.sourceforge.net/" target="_blank">MeCab: Yet Another Part-of-Speech and Morphological Analyzer</a> のダウンロードリンクから &#8220;mecab-0.992.exe&#8221;（当記事執筆時点の最新）をダウンロードします。<br />
Windows版の場合はこのインストーラにIPA辞書も含まれているようです。</p>
<h4>２．インストール</h4>
<p>ダウンロードした &#8220;mecab-0.992.exe&#8221; を実行します。<br />
今回はコマンドプロンプトで使用することが目的なので、途中で聞かれる「辞書の文字コード選択」では「SHIFT-JIS」を選択します。</p>
<h4>３．実行</h4>
<p>デスクトップに作成された MeCab のショートカットアイコンをダブルクリックするだけです。</p>
<h4>４．形態素解析の実行</h4>
<p>開いたＤＯＳ画面に文章を入力＆エンター押下で形態素解析が実行されます。<br />
以下のような感じになります。<br />
<a href="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/WINDOWS_MECAB_1.jpg" rel="lightbox[6503]"><img src="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/WINDOWS_MECAB_1-150x108.jpg" alt="WINDOWS_MECAB_1" title="WINDOWS_MECAB_1" width="150" height="108" class="alignnone size-thumbnail wp-image-6505" /></a><br />
出力フォーマットは左から順に以下のようになっているようです。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,
       活用形,活用型,原形,読み,発音
</pre>
<hr />
<p>おもしろいですね。<br />
近い将来、当方のサーバの MySQL に保存している全ツイート内容や全ブログ記事を Ruby を使って解析・集計してみたいとも思っています。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4873114705&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4274204650&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4501542209&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/21002012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/21002012/" />
	</item>
		<item>
		<title>株価 &#8211; 売買サインチェック（指数移動平均・ゴールデンクロス/デッドクロス版）！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/19002009/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/19002009/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 15:20:09 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[株式]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6525</guid>
		<description><![CDATA[こんばんは。 Ruby + MySQL で自作した株価取得のシステム。 全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。 前回は単純移動平均（= SMA）でゴールデンクロス [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>Ruby + MySQL で自作した株価取得のシステム。<br />
全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。</p>
<p>前回は単純移動平均（= SMA）でゴールデンクロス・デッドクロスを検証してみましたが、今回は指数移動平均線（= EMA）のゴールデンクロス・デッドクロスを買いサイン・売りサインとした場合のその後の株価の変動を検証してみました。<br />
※全体的にどんな傾向があるのかを把握するのと、Ruby の学習が目的です。</p>
<p>個人的な記録ですので、興味が無ければ読み飛ばしてください。</p>
<p>ゴールデンクロス（デッドクロス）とは短期と長期の移動平均線を計算し、短期の値が長期の値を上抜けた（下抜けた）場合のことを言います。</p>
<p><span id="more-6525"></span><br />
以下に、前提条件・検証結果を掲載します。</p>
<h3>１．前提条件</h3>
<h4>１．定義</h4>
<p>何を以って、買いサイン・売りサインと見なすかですが、今回は</p>
<ul>
<li>その日の短期EMAが長期EMAを上回った場合を「買いサイン」</li>
<li>その日の短期EMAが長期EMAを下回った場合を「売りサイン」</li>
</ul>
<p>としました。<br />
<a href="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_CROSS1.jpg" rel="lightbox[6525]"><img src="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_CROSS1.jpg" alt="SIGNAL_CROSS" title="SIGNAL_CROSS" width="366" height="216" class="alignnone size-full wp-image-6528" /></a><br />
検証した短期EMAと長期EMAの日数の組み合わせは、[5, 25], [5, 75], [25, 75] です。<br />
また、調整後終値（株式分割があった場合の調整値）を考慮していません。</p>
<h4>２．検証銘柄と検証期間</h4>
<p>2012年2月14日現在上場している全市場の3,600銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。<br />
また、複数の市場に上場している銘柄については、優先市場のみで検証しました。<br />
<span style="color: #ff6600;">※2012/02/20 修正（売買サイン判定基準を微調整）</span><br />
※全取引件数は 7,963,439 件</p>
<h3>２．検証結果</h3>
<h4>１．サインが発生した件数</h4>
<pre class="brush: plain; gutter: false; title: ; notranslate">
SIGN       (  5 )    ( 25 )    ( 75 )
[Long ]   224,368   121,932    52,185
[Short]   226,208   124,116    54,506
</pre>
<p>５日で計算するよりも25日、25日で計算するよりも75日の方が絞られる。</p>
<h4>２．各サイン発生○日後に上昇・変動なし・下降した件数</h4>
<p>以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[SIGN][DAYS]  [UP   ] (     %)  [EVEN ] (     %)  [DOWN ] (     %)
Long  (  1 )   84,931 (37.88%)   25,536 (11.39%)  113,716 (50.72%)
Long  (  2 )   87,195 (38.91%)   15,870 ( 7.08%)  121,013 (54.00%)
Long  (  3 )   88,013 (39.29%)   12,144 ( 5.42%)  123,830 (55.28%)
Long  (  4 )   88,174 (39.38%)   10,491 ( 4.69%)  125,237 (55.93%)
Long  (  5 )   88,471 (39.53%)    9,309 ( 4.16%)  126,022 (56.31%)
Long  (  6 )   89,309 (39.93%)    8,631 ( 3.86%)  125,743 (56.21%)
Long  (  7 )   89,773 (40.16%)    7,935 ( 3.55%)  125,858 (56.30%)
Long  (  8 )   90,395 (40.45%)    7,390 ( 3.31%)  125,680 (56.24%)
Long  (  9 )   91,125 (40.79%)    6,858 ( 3.07%)  125,422 (56.14%)
Long  ( 10 )   91,586 (41.01%)    6,612 ( 2.96%)  125,142 (56.03%)
Long  ( 11 )   91,960 (41.19%)    6,133 ( 2.75%)  125,174 (56.06%)
Long  ( 12 )   92,171 (41.30%)    5,967 ( 2.67%)  125,023 (56.02%)
Long  ( 13 )   92,757 (41.59%)    5,628 ( 2.52%)  124,627 (55.88%)
Long  ( 14 )   93,065 (41.77%)    5,424 ( 2.43%)  124,337 (55.80%)
Long  ( 15 )   93,261 (41.88%)    5,077 ( 2.28%)  124,347 (55.84%)
Long  ( 16 )   93,381 (41.97%)    4,968 ( 2.23%)  124,162 (55.80%)
Long  ( 17 )   93,838 (42.22%)    4,902 ( 2.21%)  123,543 (55.58%)
Long  ( 18 )   93,880 (42.26%)    4,785 ( 2.15%)  123,459 (55.58%)
Long  ( 19 )   94,186 (42.47%)    4,613 ( 2.08%)  122,992 (55.45%)
Long  ( 20 )   94,176 (42.52%)    4,465 ( 2.02%)  122,865 (55.47%)
Long  ( 21 )   94,229 (42.59%)    4,348 ( 1.97%)  122,659 (55.44%)
Long  ( 22 )   94,213 (42.62%)    4,214 ( 1.91%)  122,609 (55.47%)
Long  ( 23 )   94,215 (42.67%)    4,129 ( 1.87%)  122,474 (55.46%)
Long  ( 24 )   94,362 (42.75%)    3,914 ( 1.77%)  122,447 (55.48%)
Long  ( 25 )   94,436 (42.80%)    3,858 ( 1.75%)  122,360 (55.45%)
Short (  1 )  107,286 (47.44%)   26,853 (11.87%)   92,002 (40.68%)
Short (  2 )  111,278 (49.23%)   17,256 ( 7.63%)   97,481 (43.13%)
Short (  3 )  111,959 (49.57%)   13,794 ( 6.11%)  100,102 (44.32%)
Short (  4 )  112,515 (49.84%)   11,849 ( 5.25%)  101,376 (44.91%)
Short (  5 )  112,684 (49.94%)   10,487 ( 4.65%)  102,452 (45.41%)
Short (  6 )  112,164 (49.74%)    9,682 ( 4.29%)  103,654 (45.97%)
Short (  7 )  111,721 (49.56%)    8,948 ( 3.97%)  104,745 (46.47%)
Short (  8 )  111,279 (49.40%)    8,447 ( 3.75%)  105,534 (46.85%)
Short (  9 )  110,761 (49.23%)    7,904 ( 3.51%)  106,327 (47.26%)
Short ( 10 )  109,872 (48.88%)    7,579 ( 3.37%)  107,325 (47.75%)
Short ( 11 )  109,576 (48.80%)    7,180 ( 3.20%)  107,775 (48.00%)
Short ( 12 )  109,239 (48.68%)    6,747 ( 3.01%)  108,425 (48.32%)
Short ( 13 )  108,516 (48.38%)    6,511 ( 2.90%)  109,293 (48.72%)
Short ( 14 )  108,009 (48.16%)    6,274 ( 2.80%)  109,977 (49.04%)
Short ( 15 )  107,409 (47.92%)    6,064 ( 2.71%)  110,676 (49.38%)
Short ( 16 )  107,272 (47.88%)    5,663 ( 2.53%)  111,127 (49.60%)
Short ( 17 )  106,810 (47.68%)    5,619 ( 2.51%)  111,570 (49.81%)
Short ( 18 )  106,312 (47.49%)    5,495 ( 2.45%)  112,052 (50.05%)
Short ( 19 )  105,972 (47.35%)    5,364 ( 2.40%)  112,476 (50.25%)
Short ( 20 )  105,612 (47.20%)    5,272 ( 2.36%)  112,879 (50.45%)
Short ( 21 )  105,527 (47.17%)    5,098 ( 2.28%)  113,085 (50.55%)
Short ( 22 )  105,539 (47.19%)    4,961 ( 2.22%)  113,149 (50.59%)
Short ( 23 )  105,457 (47.16%)    4,958 ( 2.22%)  113,187 (50.62%)
Short ( 24 )  105,372 (47.15%)    4,696 ( 2.10%)  113,436 (50.75%)
Short ( 25 )  105,197 (47.09%)    4,710 ( 2.11%)  113,481 (50.80%)
</pre>
<p>特に大きな特徴はないように思える。<br />
[ 短期EMA=5日, 長期EMA=75日 ]、[ 短期EMA=25日, 長期EMA=75日 ] で計算して検証した結果は掲載していないが、同じような結果となっていた。</p>
<h4>３．何日後に最も上昇（買い）/下降（売り）したか</h4>
<p>買いサイン発生後、何日後に最も上昇したか、<br />
売りサイン発生後、何日後に最も下降したか、を検証。<br />
以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]   [Long ]  [Short]
(  1 )    38,474   29,719
(  2 )    21,455   18,191
(  3 )    15,926   14,570
(  4 )    13,260   12,259
(  5 )    11,625   11,264
(  6 )    10,518   10,463
(  7 )     9,678    9,942
(  8 )     9,091    9,510
(  9 )     8,557    9,277
( 10 )     8,279    8,895
( 11 )     7,997    8,575
( 12 )     7,646    8,365
( 13 )     7,767    8,772
( 14 )     7,639    8,806
( 15 )     7,636    8,599
( 16 )     7,550    8,576
( 17 )     7,718    8,887
( 18 )     7,972    9,291
( 19 )     8,192    9,621
( 20 )     8,571   10,231
( 21 )     9,228   10,704
( 22 )    10,037   11,707
( 23 )    11,082   13,363
( 24 )    13,656   16,279
( 25 )    22,649   26,614
</pre>
<p>買い（売り）サインが発生した翌日と25日後に大きく上昇（下降）している。<br />
[ 短期EMA=5日, 長期EMA=75日 ]、[ 短期EMA=25日, 長期EMA=75日 ] で計算して検証した結果は掲載していないが、[ 短期EMA=5日, 長期EMA=75日 ]では翌日と75日後に、[ 短期EMA=25日, 長期EMA=75日 ] でも翌日と75日後に大きく上昇（下降）していた。</p>
<h4>４．買いサイン発生から売りサイン発生までの間隔と差が ＋ か ０ か － を集計</h4>
<p>以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]    [UP   ]   [EVEN ]   [DOWN ]
(  1 )          0         0    28,201
(  2 )          0         0    17,903
(  3 )          0         0    14,706
(  4 )          0         0    12,315
(  5 )          0         0    10,997
(  6 )          0         0     9,367
(  7 )          0         2     8,498
(  8 )          1         5     7,617
(  9 )          3        11     6,844
( 10 )         12        23     6,077
   :          :         :         :
( 21 )        898       145     1,820
( 22 )      1,051       120     1,521
( 23 )      1,058       130     1,289
( 24 )      1,176       114     1,122
( 25 )      1,193         0       965
   :          :         :         :
</pre>
<p>買いサインが発生した直後は株価が下降するが24日後頃から上昇する傾向にある。<br />
[ 短期EMA=5日, 長期EMA=75日 ]、[ 短期EMA=25日, 長期EMA=75日 ] で計算して検証した結果は掲載していないが、[ 短期EMA=5日, 長期EMA=75日 ] では47日後頃から、[ 短期EMA=25日, 長期EMA=75日 ] では85日後頃から上昇する傾向にあった。</p>
<hr />
<p>前回の単純移動平均線のゴールデンクロス・デッドクロスよりは有効性はあるでしょうか。<br />
Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4873113946&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4775971506&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=477599039X&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/19002009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/19002009/" />
	</item>
		<item>
		<title>株価 &#8211; 売買サインチェック（単純移動平均・ゴールデンクロス/デッドクロス版）！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/18002045/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/18002045/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 15:20:45 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[株式]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6487</guid>
		<description><![CDATA[こんばんは。 Ruby + MySQL で自作した株価取得のシステム。 全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。 今回は、単純移動平均線（= SMA）のゴールデンク [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>Ruby + MySQL で自作した株価取得のシステム。<br />
全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。</p>
<p>今回は、単純移動平均線（= SMA）のゴールデンクロス・デッドクロスを買いサイン・売りサインとした場合のその後の株価の変動を検証してみました。<br />
※全体的にどんな傾向があるのかを把握するのと、Ruby の学習が目的です。</p>
<p>個人的な記録ですので、興味が無ければ読み飛ばしてください。</p>
<p>ゴールデンクロス（デッドクロス）とは短期と長期の移動平均線を計算し、短期の値が長期の値を上抜けた（下抜けた）場合のことを言います。<br />
株式用語については、ここでは詳しく説明しません。Web等で調べてください。</p>
<p><span id="more-6487"></span><br />
以下に、前提条件・検証結果を掲載します。</p>
<h3>１．前提条件</h3>
<h4>１．定義</h4>
<p>何を以って、買いサイン・売りサインと見なすかですが、今回は</p>
<ul>
<li>その日の短期SMAが長期SMAを上回った場合を「買いサイン」</li>
<li>その日の短期SMAが長期SMAを下回った場合を「売りサイン」</li>
</ul>
<p>としました。<br />
<a href="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_CROSS.jpg" rel="lightbox[6487]"><img src="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_CROSS.jpg" alt="SIGNAL_CROSS" title="SIGNAL_CROSS" width="366" height="216" class="alignnone size-full wp-image-6519" /></a><br />
検証した短期SMAと長期SMAの日数の組み合わせは、[5, 25], [5, 75], [25, 75] です。<br />
また、調整後終値（株式分割があった場合の調整値）を考慮していません。</p>
<h4>２．検証銘柄と検証期間</h4>
<p>2012年2月14日現在上場している全市場の3,600銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。<br />
また、複数の市場に上場している銘柄については、優先市場のみで検証しました。<br />
<span style="color: #ff6600;">※2012/02/19 修正（売買サイン判定基準を微調整）</span><br />
※全取引件数は 7,963,439 件</p>
<h3>２．検証結果</h3>
<h4>１．サインが発生した件数</h4>
<pre class="brush: plain; gutter: false; title: ; notranslate">
SIGN       (  5 )    ( 25 )    ( 75 )
[Long ]   215,427   109,335    57,546
[Short]   217,327   111,352    59,761
</pre>
<p>５日で計算するよりも25日、25日で計算するよりも75日の方が絞られる。</p>
<h4>２．各サイン発生○日後に上昇・変動なし・下降した件数</h4>
<p>以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[SIGN][DAYS]  [UP   ] (     %)  [EVEN ] (     %)  [DOWN ] (     %)
Long  (  1 )   85,389 (39.65%)   25,071 (11.64%)  104,881 (48.70%)
Long  (  2 )   88,050 (40.90%)   15,488 ( 7.19%)  111,744 (51.91%)
Long  (  3 )   88,727 (41.23%)   12,148 ( 5.64%)  114,341 (53.13%)
Long  (  4 )   89,082 (41.41%)   10,360 ( 4.82%)  115,676 (53.77%)
Long  (  5 )   89,435 (41.59%)    9,172 ( 4.27%)  116,422 (54.14%)
Long  (  6 )   90,185 (41.96%)    8,383 ( 3.90%)  116,381 (54.14%)
Long  (  7 )   90,558 (42.14%)    7,602 ( 3.54%)  116,717 (54.32%)
Long  (  8 )   90,988 (42.36%)    7,109 ( 3.31%)  116,721 (54.33%)
Long  (  9 )   91,206 (42.47%)    6,557 ( 3.05%)  117,003 (54.48%)
Long  ( 10 )   91,618 (42.67%)    6,264 ( 2.92%)  116,816 (54.41%)
Long  ( 11 )   91,935 (42.84%)    5,836 ( 2.72%)  116,837 (54.44%)
Long  ( 12 )   92,518 (43.13%)    5,615 ( 2.62%)  116,381 (54.25%)
Long  ( 13 )   92,802 (43.30%)    5,349 ( 2.50%)  116,173 (54.20%)
Long  ( 14 )   92,934 (43.38%)    5,124 ( 2.39%)  116,160 (54.23%)
Long  ( 15 )   93,224 (43.55%)    4,902 ( 2.29%)  115,955 (54.16%)
Long  ( 16 )   93,484 (43.70%)    4,709 ( 2.20%)  115,729 (54.10%)
Long  ( 17 )   93,756 (43.88%)    4,538 ( 2.12%)  115,359 (53.99%)
Long  ( 18 )   93,915 (44.00%)    4,430 ( 2.08%)  115,110 (53.93%)
Long  ( 19 )   93,718 (43.99%)    4,336 ( 2.04%)  114,977 (53.97%)
Long  ( 20 )   93,897 (44.14%)    4,199 ( 1.97%)  114,616 (53.88%)
Long  ( 21 )   93,728 (44.11%)    3,998 ( 1.88%)  114,752 (54.01%)
Long  ( 22 )   93,520 (44.04%)    3,929 ( 1.85%)  114,893 (54.11%)
Long  ( 23 )   93,521 (44.07%)    3,837 ( 1.81%)  114,873 (54.13%)
Long  ( 24 )   93,583 (44.11%)    3,691 ( 1.74%)  114,881 (54.15%)
Long  ( 25 )   93,568 (44.11%)    3,664 ( 1.73%)  114,869 (54.16%)
Short (  1 )   98,457 (45.33%)   25,913 (11.93%)   92,839 (42.74%)
Short (  2 )  102,872 (47.39%)   16,487 ( 7.60%)   97,699 (45.01%)
Short (  3 )  104,284 (48.07%)   13,083 ( 6.03%)   99,556 (45.89%)
Short (  4 )  104,672 (48.28%)   11,068 ( 5.10%)  101,083 (46.62%)
Short (  5 )  104,855 (48.38%)    9,863 ( 4.55%)  102,014 (47.07%)
Short (  6 )  104,272 (48.14%)    8,940 ( 4.13%)  103,375 (47.73%)
Short (  7 )  104,003 (48.06%)    8,318 ( 3.84%)  104,077 (48.10%)
Short (  8 )  103,835 (48.03%)    7,627 ( 3.53%)  104,737 (48.44%)
Short (  9 )  103,385 (47.87%)    7,333 ( 3.40%)  105,230 (48.73%)
Short ( 10 )  102,822 (47.64%)    6,862 ( 3.18%)  106,138 (49.18%)
Short ( 11 )  102,468 (47.50%)    6,495 ( 3.01%)  106,762 (49.49%)
Short ( 12 )  102,083 (47.34%)    6,120 ( 2.84%)  107,431 (49.82%)
Short ( 13 )  101,699 (47.17%)    5,875 ( 2.73%)  108,017 (50.10%)
Short ( 14 )  101,106 (46.91%)    5,743 ( 2.66%)  108,677 (50.42%)
Short ( 15 )  100,823 (46.80%)    5,477 ( 2.54%)  109,140 (50.66%)
Short ( 16 )  100,509 (46.67%)    5,251 ( 2.44%)  109,615 (50.89%)
Short ( 17 )  100,282 (46.57%)    5,161 ( 2.40%)  109,890 (51.03%)
Short ( 18 )   99,934 (46.42%)    4,942 ( 2.30%)  110,401 (51.28%)
Short ( 19 )   99,838 (46.39%)    4,859 ( 2.26%)  110,534 (51.36%)
Short ( 20 )   99,648 (46.31%)    4,795 ( 2.23%)  110,746 (51.46%)
Short ( 21 )   99,564 (46.28%)    4,696 ( 2.18%)  110,879 (51.54%)
Short ( 22 )   99,644 (46.33%)    4,531 ( 2.11%)  110,900 (51.56%)
Short ( 23 )   99,612 (46.33%)    4,318 ( 2.01%)  111,091 (51.67%)
Short ( 24 )   99,577 (46.33%)    4,253 ( 1.98%)  111,085 (51.69%)
Short ( 25 )   99,562 (46.35%)    4,191 ( 1.95%)  111,052 (51.70%)
</pre>
<p>特に大きな特徴はないように思える。<br />
[ 短期SMA=5日, 長期SMA=75日 ]、[ 短期SMA=25日, 長期SMA=75日 ] で計算して検証した結果は掲載していないが、同じような結果となっていた。</p>
<h4>３．何日後に最も上昇（買い）/下降（売り）したか</h4>
<p>買いサイン発生後、何日後に最も上昇したか、<br />
売りサイン発生後、何日後に最も下降したか、を検証。<br />
以下は [ 短期SMA=5日, 長期SMA=25日 ] で計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]   [Long ]  [Short]
(  1 )    35,850   27,941
(  2 )    20,016   17,285
(  3 )    15,119   13,461
(  4 )    12,470   11,711
(  5 )    11,063   10,695
(  6 )    10,060   10,028
(  7 )     9,172    9,571
(  8 )     8,625    8,992
(  9 )     8,148    8,564
( 10 )     7,788    8,400
( 11 )     7,403    8,263
( 12 )     7,508    8,408
( 13 )     7,407    8,427
( 14 )     7,275    8,254
( 15 )     7,421    8,227
( 16 )     7,221    8,235
( 17 )     7,479    8,442
( 18 )     7,702    8,680
( 19 )     7,839    9,129
( 20 )     7,844    9,676
( 21 )     8,746   10,062
( 22 )     9,406   10,942
( 23 )    10,485   12,615
( 24 )    13,247   15,359
( 25 )    22,037   25,271
</pre>
<p>買い（売り）サインが発生した翌日と25日後に大きく上昇（下降）している。<br />
[ 短期SMA=5日, 長期SMA=75日 ]、[ 短期SMA=25日, 長期SMA=75日 ] で計算して検証した結果は掲載していないが、[ 短期SMA=5日, 長期SMA=75日 ]では翌日と75日後に、[ 短期SMA=25日, 長期SMA=75日 ] でも翌日と75日後に大きく上昇（下降）していた。</p>
<h4>４．買いサイン発生から売りサイン発生までの間隔と差が ＋ か ０ か － を集計</h4>
<p>以下は [ 短期SMA=5日, 長期SMA=25日 ] で計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]    [UP   ]   [EVEN ]   [DOWN ]
(  1 )      1,530     1,256    11,179
(  2 )        810       456     9,061
(  3 )        574       294     9,101
(  4 )        326       169     9,834
(  5 )         30        44    11,815
   :          :         :         :
( 21 )      1,849       200     2,497
( 22 )      1,983       167     1,933
( 23 )      2,069       146     1,497
( 24 )      1,992       117     1,126
( 25 )      1,895        98       820
   :          :         :         :
</pre>
<p>買いサインが発生した直後は株価が下降するが22日後頃から上昇する傾向にある。<br />
[ 短期SMA=5日, 長期SMA=75日 ]、[ 短期SMA=25日, 長期SMA=75日 ] で計算して検証した結果は掲載していないが、[ 短期SMA=5日, 長期SMA=75日 ] では54日後頃から、[ 短期SMA=25日, 長期SMA=75日 ] では68日後頃から上昇する傾向にあった。</p>
<hr />
<p>先日からやっている単純移動平均や指数移動平均の終値の上抜け・下抜け具合から買いサイン・売りサインを判定するよりは、若干ですが有効性はありそうに感じました。</p>
<p>Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4873113946&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4775971506&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=477599039X&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/18002045/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/18002045/" />
	</item>
		<item>
		<title>Ruby on Rails &#8211; 3.1.3 から 3.2.1 へアップグレード！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/16002013/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/16002013/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 15:20:13 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ホームページ]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6483</guid>
		<description><![CDATA[こんばんは。 １ヶ月ほど前に、Ruby を 1.9.2 から 1.9.3 にアップデートしたのに合わせ、Rails も 3.0 系から 3.1.3 にアップグレードしました。 しかし、今では Rails も既に 3.2. [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>１ヶ月ほど前に、Ruby を 1.9.2 から 1.9.3 にアップデートしたのに合わせ、Rails も 3.0 系から 3.1.3 にアップグレードしました。<br />
しかし、今では Rails も既に 3.2.1 までリリースされています。</p>
<p>そこで、当方の Rails も 3.2.1 にアップグレードしました。</p>
<p>単純に Gem でアップデートするだけでもよいのですが、既存のアプリディレクトリを退避しておいて新たに作成したアプリに移行させる、というような方法を採りました。</p>
<p>アップグレード自体は、単純な作業なのですが、当方の環境においてつまずいた箇所がありましたので記録しておきます。</p>
<p><span id="more-6483"></span></p>
<h3>記録</h3>
<h4>１．プラグイン</h4>
<p>従来、vendor/plugins ディレクトリに配置していたプラグインは 3.2 系では非推奨になり、次の 4.0 系では廃止されるようです。<br />
3.2 系では非推奨であるだけで別に動かなくなるというわけではありませんが、今回対応しておきました。<br />
リリースノートによると、Gemパッケージに変更するか、lib ディレクトリは移動するか、だそうです。<br />
当方に導入しているプラグインは Gem には存在しないものなので、lib ディレクトリへ移動する方法を採りました。<br />
そして、プラグインを読み込むために config/initializers ディレクトリにプラグインを require するためだけのスクリプトを置いて対応するようですが、当方は元々 controller 内でプラグインを require していたので、パスを指定して require するように対応しました。</p>
<h4>２．Gem パッケージ Action Mailer</h4>
<p>Rails を 3.1.3 から 3.2.1 へアップグレードしたことに合わせ、ホームページのお問合せ画面からメール送信する Gem パッケージ Action Mailer も 3.1.3 から 3.2.1 はアップグレードしました。<br />
元々の記述が悪かったのかメール送信が出来なくなりました。<br />
改めて、ソースを見直し・修正して事なきを得ました。</p>
<h4>参考サイト</h4>
<ul>
<li><a href="http://edgeguides.rubyonrails.org/3_2_release_notes.html" target="_blank">Ruby on Rails Guides: Ruby on Rails 3.2 Release Notes</a></li>
</ul>
<hr />
<p>3.0 系から 3.1 系へアップグレードする時は、Asset Pipeline で苦労しましたが、今回はそれほど大きな苦労はありませんでした。</p>
<p>それにしても、Ruby とか Rails ってアップグレード・アップデートする度にスクリプトの改修が必要になるのはどうかと・・・<br />
発展途上の言語だから仕方のないことでしょうか？</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4873113946&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4774146633&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/16002013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/16002013/" />
	</item>
		<item>
		<title>株価 &#8211; 売買サインチェック（指数移動平均版）！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/14002049/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/14002049/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 15:20:49 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[株式]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6474</guid>
		<description><![CDATA[こんばんは。 Ruby + MySQL で自作した株価取得のシステム。 全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。 前回は、単純移動平均値を上回った場合・下回った場合 [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>Ruby + MySQL で自作した株価取得のシステム。<br />
全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。</p>
<p>前回は、単純移動平均値を上回った場合・下回った場合を買いサイン・売りサインと定義して検証してみました。</p>
<ul>
<li><a href="http://www.mk-mode.com/wordpress/2012/02/13002046/" target="_blank">株価 &#8211; 売買サインチェック（単純移動平均版）！</a></li>
</ul>
<p>今回は「指数移動平均」というものを使用して同様の検証をしてみました。<br />
※全体的にどんな傾向があるのかを把握するのと、Ruby の学習が主な目的です。</p>
<p>指数移動平均とは、簡単に言えば、単純移動平均よりもトレンドを追うのに適した分析方法で、EMA（Exponential Moving Average）と略されます。<br />
計算式は以下のとおり。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
１期目の EMA[n]
    = n 期間の移動平均
２期目以降の EMA[n]
    = EMA[n-1] + ( 終値[n] - EMA[n-1] ) * 2 / ( 1 + n )
</pre>
<p>その他、指数移動平均の詳細は各自調べてください。</p>
<p><span id="more-6474"></span><br />
以下に、前提条件・検証結果を掲載します。</p>
<h3>１．前提条件</h3>
<h4>１．定義</h4>
<p>何を以って、買いサイン・売りサインと見なすかですが、今回は一番単純に、</p>
<ul>
<li>その日の株価（終値）が指数移動平均値（EMA）を上回った場合を「買いサイン」</li>
<li>その日の株価（終値）が指数移動平均値（EMA）を下回った場合を「売りサイン」</li>
</ul>
<p>としました。<br />
<a href="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_MA.jpg" rel="lightbox[6474]"><img src="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_MA.jpg" alt="SIGNAL_MA" title="SIGNAL_MA" width="366" height="216" class="alignnone size-full wp-image-6516" /></a><br />
平均値は当日を含めた過去5日分・25日分・75日分の終値で検証しています。<br />
また、調整後終値（株式分割があった場合の調整値）を考慮していません。</p>
<h4>２．検証銘柄と検証期間</h4>
<p>2012年2月14日現在上場している全市場の3,600銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。<br />
また、複数の市場に上場している銘柄については、優先市場のみで検証しました。<br />
<span style="color: #ff6600;">※2012/02/18 修正（売買サイン判定基準を微調整）</span><br />
※全取引件数は 7,963,439 件</p>
<h3>２．検証結果</h3>
<h4>１．サインが発生した件数</h4>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[SIGN ]    (  5 )    ( 25 )    ( 75 )
[Long ] 1,070,660   503,130   280,492
[Short] 1,071,817   504,749   282,523
</pre>
<p>５日で計算するよりも25日、25日で計算するよりも75日の方が絞られる。</p>
<h4>２．各サイン発生○日後に上昇・変動なし・下降した件数</h4>
<p>以下は 5日 で EMA を計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[SIGN][DAYS]  [UP   ] (     %)  [EVEN ] (     %)  [DOWN ] (     %)
Long  (  1 )  424,875 (39.72%)  121,450 (11.35%)  523,336 (48.93%)
Long  (  2 )  445,579 (41.68%)   75,698 ( 7.08%)  547,762 (51.24%)
Long  (  3 )  453,832 (42.47%)   59,900 ( 5.61%)  554,794 (51.92%)
Long  (  4 )  459,022 (42.97%)   51,543 ( 4.83%)  557,562 (52.20%)
Long  (  5 )  461,384 (43.22%)   45,533 ( 4.27%)  560,646 (52.52%)
Short (  1 )  494,829 (46.18%)  126,978 (11.85%)  449,737 (41.97%)
Short (  2 )  509,076 (47.53%)   81,557 ( 7.61%)  480,524 (44.86%)
Short (  3 )  511,666 (47.79%)   64,925 ( 6.06%)  493,965 (46.14%)
Short (  4 )  511,615 (47.81%)   55,735 ( 5.21%)  502,645 (46.98%)
Short (  5 )  514,605 (48.12%)   49,462 ( 4.62%)  505,413 (47.26%)
</pre>
<p>特に特徴はないように思える。<br />
25日・75日でEMAを計算して検証した結果は掲載していないが、同じような結果となっていた。</p>
<h4>３．何日後に最も上昇（買い）/下降（売り）したか</h4>
<p>買いサイン発生後、何日後に最も上昇したか、<br />
売りサイン発生後、何日後に最も下降したか、を検証。<br />
以下は 5日 で EMA を計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]   [Long ]  [Short]
(  1 )   363,779  323,152
(  2 )   233,776  224,066
(  3 )   203,713  208,903
(  4 )   209,889  226,020
(  5 )   295,937  333,675
</pre>
<p>買い（売り）サインが発生した翌日と5日後に大きく上昇（下降）している。<br />
25日・75日でEMAを計算して検証した結果は掲載していないが、25日では翌日と25日後に、75日後では翌日と75日後に大きく上昇（下降）していた。</p>
<h4>４．買いサイン発生から売りサイン発生までの間隔と差が ＋ か ０ か － を集計</h4>
<p>以下は 5日 で EMA を計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]    [UP   ]   [EVEN ]   [DOWN ]
(  1 )          0         0   375,434
(  2 )      6,307     9,337   182,728
(  3 )     20,236    10,653    96,944
(  4 )     32,102     8,220    50,551
(  5 )     36,885     5,216    25,623
(  6 )     35,342     2,993    12,094
(  7 )     30,199     1,616     5,921
(  8 )     24,399       777     2,794
(  9 )     20,137       419     1,421
( 10 )     15,466       213       768
   :          :         :         :
</pre>
<p>買いサインが発生した直後は株価が下降するが5日後頃から上昇する傾向にある。<br />
25日・75日でEMAを計算して検証した結果は掲載していないが、25日では12日後頃から、75日では25日後頃から上昇する傾向にあった。</p>
<hr />
<p>単純移動平均同様、それほど有効性は感じませんが、なんとなく指数移動平均でのサイン発生後の挙動が把握できました。<br />
Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。</p>
<p><iframe style="width: 120px; height: 240px;" src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4873113946&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe><iframe style="width: 120px; height: 240px;" src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4775971506&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe><iframe style="width: 120px; height: 240px;" src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=477599039X&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/14002049/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/14002049/" />
	</item>
		<item>
		<title>株価 &#8211; 売買サインチェック（単純移動平均版）！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/13002046/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/13002046/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 15:20:46 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[株式]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6462</guid>
		<description><![CDATA[こんばんは。 Ruby + MySQL で自作した株価取得のシステム。 全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。 今日は、取得している株価データを利用して、買いサイ [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>Ruby + MySQL で自作した株価取得のシステム。<br />
全市場（東京・大阪・名古屋・札幌・福岡）の全銘柄の2000年からの全取引データを取得しています。</p>
<p>今日は、取得している株価データを利用して、買いサイン・売りサインが発生した場合のその後の株価の変動を検証してみました。<br />
全体的にどんな傾向があるのかを把握するのと、Ruby の学習が目的です。</p>
<p>単純移動平均とは、その名のとおり単純に当日を含めた過去数日間の平均（相加平均）で、SMA（Simple Moving Average）と略されます。</p>
<p><span id="more-6462"></span><br />
以下に、前提条件・検証結果を掲載します。</p>
<h3>１．前提条件</h3>
<h4>１．定義</h4>
<p>何を以って、買いサイン・売りサインと見なすかですが、今回は一番単純に、</p>
<ul>
<li>その日の株価（終値）が単純移動平均値（SMA）を上回った場合を「買いサイン」</li>
<li>その日の株価（終値）が単純移動平均値（SMA）を下回った場合を「売りサイン」</li>
</ul>
<p>としました。<br />
<a href="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_MA1.jpg" rel="lightbox[6462]"><img src="http://www.mk-mode.com/wordpress/wp-content/uploads/2012/02/SIGNAL_MA1.jpg" alt="SIGNAL_MA" title="SIGNAL_MA" width="366" height="216" class="alignnone size-full wp-image-6514" /></a><br />
平均値は当日を含めた過去５日分・25日分・75日分の終値で計算しています。<br />
また、調整後終値（株式分割があった場合の調整値）を考慮していません。</p>
<h4>２．検証銘柄と検証期間</h4>
<p>2012年2月14日現在上場している全市場の3,600銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。<br />
また、複数の市場に上場している銘柄については、優先市場のみで検証しました。<br />
<span style="color: #ff6600;">※2012/02/17 修正（売買サイン判定基準を微調整）</span><br />
※全取引件数は 7,963,439 件</p>
<h3>２．検証結果</h3>
<h4>１．サインが発生した件数</h4>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[SIGN ]  [     5 ] [    25 ] [    75 ]
 Long    1,033,977   450,660   247,395
 Short   1,035,174   452,357   249,290
</pre>
<p>５日で計算するよりも25日、25日で計算するよりも75日の方が絞られる。</p>
<h4>２．各サイン発生○日後に上昇・変動なし・下降した件数</h4>
<p>以下は５日でSMAを計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[SIGN][DAYS]  [UP   ] (     %)  [EVEN ] (     %)  [DOWN ] (     %)
Long  (  1 )  413,496 (40.03%)  116,780 (11.30%)  502,740 (48.67%)
Long  (  2 )  434,535 (42.09%)   72,241 ( 7.00%)  525,616 (50.91%)
Long  (  3 )  442,870 (42.92%)   56,893 ( 5.51%)  532,159 (51.57%)
Long  (  4 )  447,829 (43.41%)   48,870 ( 4.74%)  534,883 (51.85%)
Long  (  5 )  450,773 (43.72%)   43,079 ( 4.18%)  537,202 (52.10%)
Short (  1 )  474,211 (45.82%)  122,281 (11.82%)  438,453 (42.36%)
Short (  2 )  488,520 (47.22%)   77,931 ( 7.53%)  468,123 (45.25%)
Short (  3 )  491,435 (47.53%)   61,897 ( 5.99%)  480,652 (46.49%)
Short (  4 )  492,265 (47.64%)   53,037 ( 5.13%)  488,030 (47.23%)
Short (  5 )  494,858 (47.91%)   46,826 ( 4.53%)  491,136 (47.55%)
</pre>
<p>特に特徴はないように思える。<br />
25日・75日でSMAを計算して検証した結果は掲載していないが、同じような結果となっていた。</p>
<h4>３．何日後に最も上昇（買い）/下降（売り）したか</h4>
<p>買いサイン発生後、何日後に最も上昇したか、<br />
売りサイン発生後、何日後に最も下降したか、を検証。<br />
以下は５日でSMAを計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]   [Long ]  [Short]
(  1 )   349,037  311,239
(  2 )   224,757  216,046
(  3 )   196,212  200,401
(  4 )   201,847  216,973
(  5 )   287,099  322,288
</pre>
<p>買い（売り）サインが発生した翌日と５日後に大きく上昇（下降）している。<br />
25日・75日でSMAを計算して検証した結果は掲載していないが、25日では翌日と25日後に、75日後では翌日と75日後に大きく上昇（下降）していた。</p>
<h4>４．買いサイン発生から売りサイン発生までの間隔と差が ＋ か ０ か － を集計</h4>
<p>以下は５日でSMAを計算した場合です。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
[DAYS]    [UP   ]   [EVEN ]   [DOWN ]
(  1 )        587     2,981   300,627
(  2 )      1,915     3,379   163,805
(  3 )     11,251     7,504   115,507
(  4 )     46,650    11,526    69,484
(  5 )     52,434     5,230    21,668
(  6 )     42,911     2,653     9,397
(  7 )     33,244     1,278     4,030
(  8 )     25,062       572     1,728
(  9 )     18,907       273       763
( 10 )     13,332       123       430
   :          :         :         :
</pre>
<p>買いサインが発生した直後は株価が下降するが５日後頃から上昇する傾向にある。<br />
25日・75日でSMAを計算して検証した結果は掲載していないが、25日では17日後頃から、75日では37日後頃から上昇する傾向にあった。<br />
要は、この上昇する日に買った株を売れば利益になるということです。</p>
<hr />
<p>それほど有効性は感じませんが、なんとなく単純移動平均でのサイン発生後の挙動が把握できました。<br />
Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。</p>
<p><iframe style="width: 120px; height: 240px;" src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4873113946&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe><iframe style="width: 120px; height: 240px;" src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4775971506&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe><iframe style="width: 120px; height: 240px;" src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=477599039X&amp;ref=qf_sp_asin_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="320" height="240"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/13002046/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/13002046/" />
	</item>
		<item>
		<title>Cygwin &#8211; Windows の MySQL へ TCP 接続！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/11002034/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/11002034/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 15:20:34 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[サーバ構築]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6455</guid>
		<description><![CDATA[こんばんは。 以前、Cygwin から Windows ネイティブの MySQL へ接続することに関する話をしました。 Cygwin &#8211; MySQLクライアントインストール！ Cygwin &#8211; R [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>以前、Cygwin から Windows ネイティブの MySQL へ接続することに関する話をしました。</p>
<ul>
<li><a href="http://www.mk-mode.com/wordpress/2011/12/30002055/" target="_blank">Cygwin &#8211; MySQLクライアントインストール！</a></li>
<li><a href="http://www.mk-mode.com/wordpress/2012/01/12003036/" target="_blank">Cygwin &#8211; Ruby on Rails で MySQL ソケットエラー！</a></li>
</ul>
<p>今回も関連したメモ的な話です。<br />
それは、Cygwin のコマンドラインから Windows ネイティブの MySQL へのログインについてです。</p>
<p><span id="more-6455"></span><br />
前述の過去記事でも紹介していますが、Windows の MySQL は Unix ソケットは使用せず、TCP 接続するようになっています。</p>
<p>ですから、通常</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
$ mysql -u hoge -p
</pre>
<p>でログインできるところが、以下のようにエラーとなってしまいます。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
$ mysql -u hoge -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
</pre>
<h4>TCP 接続でのログイン方法</h4>
<p>Cygwin のコマンドラインから Windows ネイティブ の MySQL へのログインは、以下のようにオプションを指定することで可能になります。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
$ mysql --protocol=TCP -u hoge -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.5.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt;
</pre>
<hr />
<p>これだけです。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4839911959&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4798124230&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4774142948&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/11002034/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/11002034/" />
	</item>
		<item>
		<title>MySQL &#8211; 一般ユーザにSUPER権限を付与！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/10002040/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/10002040/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 15:20:40 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[サーバ構築]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6445</guid>
		<description><![CDATA[こんばんは。 MySQL で ストアドやトリガを使用する際 root ユーザなら問題ないのですが、一般ユーザの場合、SUPER 権限が付与されていないため実行できません。 簡単なことですが、滅多に行わない作業なのでメモっ [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>MySQL で ストアドやトリガを使用する際 root ユーザなら問題ないのですが、一般ユーザの場合、SUPER 権限が付与されていないため実行できません。</p>
<p>簡単なことですが、滅多に行わない作業なのでメモっておきます。<br />
SQL 文を発行して行う方法です。</p>
<p><span id="more-6445"></span></p>
<h3>記録</h3>
<p>まず、MySQL サーバへ root でログインしておきます。</p>
<h4>１．SUPER 権限確認</h4>
<p>以下の SQL 文を発行して、一般ユーザに SUPER 権限が付与されているか確認する。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
mysql&gt; SELECT user, Super_priv FROM mysql.user WHERE user='hoge';
+------+------------+
| user | Super_priv |
+------+------------+
| hoge | N          |
+------+------------+
1 row in set (0.00 sec)
</pre>
<p>SUPER 権限が付与されていなければ、Super_priv の値が &#8220;N&#8221; になっているはずです。</p>
<h4>２．SUPER 権限付与</h4>
<p>以下の SQL 文を発行して、一般ユーザに SUPER 権限が付与する。</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
mysql&gt; UPDATE mysql.user SET Super_priv='Y' WHERE user='hoge';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0[/sql]
</pre>
<p>※GRANT 文の実行ではないので、&#8221;FLUSH PRIVILEGES;&#8221; は不要。</p>
<h4>３．再度、SUPER 権限確認</h4>
<pre class="brush: plain; gutter: false; title: ; notranslate">
mysql&gt; SELECT user, Super_priv FROM mysql.user WHERE user='hoge';
+------+------------+
| user | Super_priv |
+------+------------+
| hoge | Y          |
+------+------------+
1 row in set (0.00 sec)
</pre>
<p>SUPER 権限が付与されて、Super_priv の値が &#8220;Y&#8221; になっているはずです。</p>
<hr />
<p>これで、一般ユーザでもストアドやトリガが使用できるようになります。</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4798124230&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4774142948&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/10002040/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/10002040/" />
	</item>
		<item>
		<title>Apache2 &#8211; DoS 攻撃対策！</title>
		<link>http://www.mk-mode.com/wordpress/2012/02/08002056/</link>
		<comments>http://www.mk-mode.com/wordpress/2012/02/08002056/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 15:20:56 +0000</pubDate>
		<dc:creator>管理人@mk-modeBLOG</dc:creator>
				<category><![CDATA[サーバ構築]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS]]></category>

		<guid isPermaLink="false">http://www.mk-mode.com/wordpress/?p=6438</guid>
		<description><![CDATA[こんばんは。 少し前に、「Apache2 &#8211; 脆弱性対策！」で紹介したとおり、Apache2 脆弱性（DoS攻撃）対策として、Apache 設定ファイルに不正なヘッダーやリクエストそのものを拒否する記述を追加 [...]]]></description>
			<content:encoded><![CDATA[<p>こんばんは。</p>
<p>少し前に、「<a href="http://www.mk-mode.com/wordpress/2012/01/30002016/" target="_blank">Apache2 &#8211; 脆弱性対策！</a>」で紹介したとおり、Apache2 脆弱性（DoS攻撃）対策として、Apache 設定ファイルに不正なヘッダーやリクエストそのものを拒否する記述を追加する方法を採っていました。<br />
※本来は、Apache2 のバージョンを 2.2.20 以上にする事が一番妥当な方法ですが。。。</p>
<p>しかし、この方法でも DoS 攻撃を受けているみたいで、数日経つと OOM-Killer によりあらゆるサービスが徐々に停止していく現象に陥ります。</p>
<p>そこで、別の方法（Rangeを許容しない方法）も試してみましたが、OOM-Killer が動くことは無かったのですが、いまいち挙動が不安定（数時間試しただけですが）だったので、さらに別の方法を試してみました。</p>
<p>Apache2 に mod_evasive というDoS攻撃対策モジュールを導入してみました。<br />
色々調べ結果、全て同じ対応方法が記載されていましたので、これで間違いないと思います。</p>
<p><span id="more-6438"></span></p>
<h3>導入記録</h3>
<h4>前提条件</h4>
<p>以下の条件で作業・確認しております。</p>
<ul>
<li>サーバOSは CentOS 6.2</li>
<li>Apache2 のバージョンは 2.2.15</li>
</ul>
<h4>１．httpd-devel のインストール</h4>
<p>httpd-devel が未インストールならインストールする。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# yum -y install httpd-devel
</pre>
<h4>２．mod_so.c の存在確認</h4>
<p>mod_evasive の導入には mod_so.c が必要になるので存在するか確認する。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
</pre>
<h4>３．mod_evasive のダウンロード・展開</h4>
<p>mod_evasive をダウンロード・展開する。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# cd /usr/local/src
# wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
# tar zxvf mod_evasive_1.10.1.tar.gz
mod_evasive/
mod_evasive/.cvsignore
mod_evasive/LICENSE
mod_evasive/Makefile.tmpl
mod_evasive/README
mod_evasive/mod_evasive.c
mod_evasive/mod_evasive20.c
mod_evasive/mod_evasiveNSAPI.c
mod_evasive/test.pl
mod_evasive/CHANGELOG
</pre>
<h4>４．mod_evasive のコンパイル・インストール</h4>
<p>mod_evasive をコンパイル・インストールする。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# cd mod_evasive
# apxs -i -a -c mod_evasive20.c
/usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wformat-security -fno-strict-aliasing  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o mod_evasive20.lo mod_evasive20.c &amp;&amp; touch mod_evasive20.slo
mod_evasive20.c: In function ‘create_hit_list’:
mod_evasive20.c:118: 警告: no return statement in function returning non-void
mod_evasive20.c: In function ‘access_checker’:
mod_evasive20.c:212: 警告: implicit declaration of function ‘getpid’
mod_evasive20.c:212: 警告: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘int’
mod_evasive20.c:229: 警告: ignoring return value of ‘system’, declared with attribute warn_unused_result
mod_evasive20.c: In function ‘destroy_hit_list’:
mod_evasive20.c:301: 警告: no return statement in function returning non-void
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_evasive20.la  -rpath /usr/lib/httpd/modules -module -avoid-version    mod_evasive20.lo
/usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' mod_evasive20.la /usr/lib/httpd/modules
/usr/lib/apr-1/build/libtool --mode=install cp mod_evasive20.la /usr/lib/httpd/modules/
libtool: install: cp .libs/mod_evasive20.so /usr/lib/httpd/modules/mod_evasive20.so
libtool: install: cp .libs/mod_evasive20.lai /usr/lib/httpd/modules/mod_evasive20.la
libtool: install: cp .libs/mod_evasive20.a /usr/lib/httpd/modules/mod_evasive20.a
libtool: install: chmod 644 /usr/lib/httpd/modules/mod_evasive20.a
libtool: install: ranlib /usr/lib/httpd/modules/mod_evasive20.a
libtool: finish: PATH=&quot;/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/tripwire/sbin:/root/bin:/sbin&quot; ldconfig -n /usr/lib/httpd/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib/httpd/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib/httpd/modules/mod_evasive20.so
[activating module `evasive20' in /etc/httpd/conf/httpd.conf]
</pre>
<h4>５．mod_evasive の設定</h4>
<p>まず、Apache 設定ファイル httpd.conf に以下の行が追加されていることを確認する。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
LoadModule evasive20_module   /usr/lib/httpd/modules/mod_evasive20.so
</pre>
<p>そして、Apache 設定ファイル httpd.conf の最終行に以下の記述を追加する。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# vi /etc/httpd/conf/httpd.conf
&lt;IfModule mod_evasive20.c&gt;
    DOSHashTableSize 3097
    DOSPageCount 3
    DOSSiteCount 50
    DOSPageInterval 2
    DOSSiteInterval 1
    DOSBlockingPeriod 60
    DOSWhitelist 127.0.0.1 192.168.11.*
    DOSEmailNotify hoge@hoge.com
&lt;/IfModule&gt;
</pre>
<p>各設定項目の意味は以下のとおり。</p>
<table>
<tr>
<th align="center">項目名</th>
<th align="center">説明</th>
</tr>
<tr>
<td>DOSHashTableSize</td>
<td>各子プロセスでのハッシュテーブル・サイズ<br />サイズを大きくするとパフォーマンスは良くなりますがメモリを消費します</td>
</tr>
<tr>
<td>DOSPageCount</td>
<td>同ページへのリクエスト数のしきい値</td>
</tr>
<tr>
<td>DOSSiteCount</td>
<td>同サイトへのリクエスト数のしきい値</td>
</tr>
<tr>
<td>DOSPageInterval</td>
<td>PageCountしきい値の計測間隔（秒）<br />デフォルト：１秒間隔</td>
</tr>
<tr>
<td>DOSSiteInterval</td>
<td>SiteCountしきい値の計測間隔（秒）<br />デフォルト：１秒間隔</td>
</tr>
<tr>
<td>DOSBlockingPeriod</td>
<td>IPアドレスを遮断する時間（秒）<br />この遮断されている間のアクセスには403 (Forbidden)を返します</td>
</tr>
<tr>
<td>DOSWhitelist</td>
<td>検出対象外とするIPアドレス</td>
</tr>
<tr>
<td>DOSEmailNotify</td>
<td>DoS攻撃を受けたことを知らせるメールアドレス</td>
</tr>
</table>
<h4>６．Apache 設定ファイルの文法チェック</h4>
<p>Apache 設定ファイル httpd.conf の文法が正しいかチェックする。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# /etc/rc.d/init.d/httpd configtest
Syntax OK
</pre>
<h4>７．Apache 再起動</h4>
<p>設定を有効にするために Apache を再起動します。</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# /etc/rc.d/init.d/httpd restart
</pre>
<hr />
<p>今のところ順調です。<br />
（実は他にも手を加えている箇所がありますが、今は秘密！）</p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4873113814&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=komasaru-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4798107441&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mk-mode.com/wordpress/2012/02/08002056/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.mk-mode.com/wordpress/2012/02/08002056/" />
	</item>
	</channel>
</rss>

