[システム]プログラム言語など学習スレ[初心者]
■ このスレッドは過去ログ倉庫に格納されています
自分でシステムを検証できるようになるように初歩から
プログラミングやExcelを学んでいこう、というスレです。 とりあえずExcelでは、自分のサイトの
即死するほどわかりやすいExcelでのシステム検証入門
http://homepage3.nifty.com/sikou-off/sokussi.htm ちなみに自分はperlを勉強しようと思っているんで、
お仲間がいましたら一緒に勉強しましょう。 メモ帳に時系列データがあって、それに移動平均線を
引く、って時点でもうどうしてよいのかわかんないのです。
条件に合うデータを抽出するのはなんとかわかるんだけど。 なぜ、Perlでやるのですか?
エクセルのほうが簡単じゃないですか? 質問スレの宣伝見て来ました。
自分は、これからPHP勉強したいです。
とりあえず、WEBサーバ作りました(C++で)。
Perlってどこが良いんですか?
WEBサーバ作ってるときにPerlが良いという人がいました。
ちょっと興味があります。
>>1さんがんばってください。 >>7さん
最近、Excelに限界を感じてきました。特に時系列データの処理を
手作業でやるのがしんどくてしょうがないのです。
あと、せっかくだから何か言語を使えるようになりたいと前から
思ってました。
>>8さん
来てくれてありがとうございます!
perlの利点は
・初心者がとっつきやすい
・テキストの処理に向いている
あと、他の言語にステップするのに最初に手をつけるのに良いらしいです。 cvsの取り込み+EMAの計算+出力。5列目が終値の場合。
#!/usr/bin/perl -w
use strict;
my $ema=0;
my $alpha=2/(10+1);
while(<>){
chomp;
my @a=split(",",$_);
if($ema==0){
$ema=$a[4];
}else{
$ema=$ema+$alpha*($a[4]-$ema);
}
printf("%s,%d\n",$a[0],$ema);
}
ずれた。鬱。
ちなみに1列目が日付だと思って下さい。
だから一度全部取り込んでから改めて計算するのがよい。
TEMAのエクセルでの計算方法がわかるかたいらっしゃいますか?
EMAはわかるのですが、TEMAがどうやってもうまくいきません。
eSignalのスクリプトと、なにかのスクリプトの計算式はわかったのですが、
そのスクリプトの仕様がわからないため、excelに実装できないでいます。
ttp://share.esignal.com/groupcontents.jsp?folder=EFS%20-%20Averages&groupid=7
の下から5番目にeSignalのTEMAスクリプトファイルがあります
ttp://www.fongan.net/mtHelp/mtHelpTPage.asp?cn=&hpi=1158
がなんかのスクリプトで使うらしき(?)計算式です
わかる方がいましたら、よろしくお願いします。
>>9
自分のサイト「成功するのに時間かかる方法」に
「慣れないプログラム言語を覚えようとし始めたり」
って自分で書いてあるのにやろうとするのは何故ですか?
=EMA(前日のEMA,当日の終値,日数)
Function EMA(PEMA, CPrice, n)
EMA = PEMA + (2 / (n + 1)) * (CPrice - PEMA)
End Function
エクセルで作ったEMA関数ですが、
21日のEMAを出すには、
まず、最初に21日間の終値の平均を出します。
[B21]
=average(A1:A21)
これが21日EMAの最初のEMAになります。
以降、
[B22]
=EMA(B21,A22,21)
[B23]
=EMA(B22,A23,21)
・
・
とします。
と、ここまではできるのですが、TEMAがわかりません。
サイトの式では、
EMA(EMA(EMA(当日終値, 係数), 係数), 係数)
となってるのですが、
自作の関数では、前日のEMAが引数として必要です。
EMA(前日のEMA, EMA(前日のEMA, EMA(前日のEMA, 当日終値, 日数), 日数), 日数)
としたのですが、なにか違うような気がします。
3つのEMAの計算時に、引数として全て同じ前日のEMAを入れていいのかがわかりません。
(係数は関数内で計算しているため、自作の関数では日数にしてます)
>>15
TEMAというのはTripleEMAで3回EMA処理することみたいだね。
だから基本的に生プライスのシリーズ>EMA1回目のシリーズ>2回目>3回目
とそれぞれデータ配列を処理していけばいいと思うんだけど、
ぶっちゃけMAでもEMAでもMAMAでもEMAEMAでもどれがシステムに優位になるとかはないよ。
それぞれパラメータがあるわけだしね。DONCHANチャンネルの中間線とかはMAでごちゃこちゃやるよりも、
割合直感に近い動きをしたりする。eSignalあるならデフォであるね。 http://www.microsoft.com/japan/msdn/vstudio/2005/express/vcsharp/
Visual C# 2005 Express Edition
日本語ベータ版
無料。正規の有料版になっても1万くらいだと思われる。おすすめ。 ありがとうございます。
いろんなのがあるんですねぇ。
TEMAですが、
EMA1(n日)を出したら、そのEMA1(n日)自体のEMAを出していくみたいですね。
というとこまでわかりました。
頭こんがらがりそう…
>>22
チャートとあわせて参考にするだけなので
しかしTEMAのグラフがチャートソフトと全然あわないorz
どこが違うんだろう…
>>24
MAはMovingAverage所詮、平均なのであんまり厳密に深入りしても得るところは何もないよ。 >>26
一行はムリじゃないでしょうか。
収めて3行くらいですが、かなり見にくくなって入力間違い等ありそうですが。
>>25
TEMAはサポート・レジスタンスとしては結構機能してる気がします。
通常のMAはどうだかわかりませんが。
ソフトでも見れるのでいいんですが、翌日のTEMA(予測値)を出したかったもので。
excelは主に上昇率・下降率・パターン認識から翌日のレンジ予測に使ってます。
>>26
あ、できる方法があります。
VBAでオリジナル関数を作ればできると思います。
>>27
特定のMAがよく機能するなんてことはないと思う。
そこにあるのは最適化された数式と数字だけ。 >>29
でも、実際書かれる線の位置が全然違うんですよね。
うーん
メモリ:256MB
CPU:3Ghz
なんですが、
なぜか、エクセルが妙に遅い…
15年ほどの日足+各種計算をやってるんですが、
リスト内をクリックするだけで再計算。
数分〜数十分かかる…
参照&計算多すぎなのかな
なんか変なもんでも入っちゃったのかなぁ…
DELPHIで作るか…
>>31
プログラム板へ行けばわかるが、DEL使いは死滅しつつあるよ。
どうせDelphi.netになってしまっているから、Delphiの存在価値がなくなってしまって、DEL使いはC#に移行し、みな満足している。
普通にC#.netでやれば良いと思う。 おりが使っていうるのは
丸紅が自信を持ってお送りする「ロジテック」
死ぬほど早い >>33
DELPHI起動してみたものの、
なにをすればいいのかわからずボーゼン。
しばらくやってないうちに使い方わすれてしまったorz
DELPHI、骨組みはCより楽だから、自分で使うには全然いいと思います。
Cは、、、これまたしばらくやってないけど、
使い方覚えてみようか…
>>34
ロジテックってPC本体ですか?
まあとにかくDELPHIのことは忘れろ。自分で使うのにもVS.netのほうが簡単な道具。 そうですかぁ
フォーム作るのがめんどくさそうですね
まぁ、DELPHI歴は数ヶ月にも満たないから忘れちゃってたし、
CはDOS時代で止まってるけど、DELPHIよりはいいかなぁ
無料みたいなので、ちょっと見てみようかな
あぼーん表示だが誰か見当つく。いい加減消えてくれ。 open(IN,"jikeiretu.txt");
@file = <IN>;
foreach $line (@file) {
if($line!~/^0/) {
print"$line";
}
}
close(IN);
で0から始まる時系列データだけを削除しようと思うのですが、
コマンドプロンプトで実行すると、うまく実行できるときとできない
ときがあるようです。原因など検討がつく人がおりましたら是非
教えて下さい。 open(IN,'jikeiretu.txt');
@data = <IN>;
foreach $line (@data){
if(!$line =~ /^0/){push(@buf, $line);}
}
close(IN);
open(OUT,'>converted.txt');
print OUT @buf;
close(OUT); システムなんて、Tradestatinoで組めば、いっぱつじゃん。
ここで、デモ配ってるよ。
http://www.swingwaver.com/forum
ここなんて、おもろいよ。
記事もまあまあ。
http://www.swingwaver.com/fight
>>46
おまえここでも宣伝かよ
いいかげんにしろよな
どーもはじめまして。よさげなスレですね。
自分も参入させて下さい。
プログラミングの知識は皆無なんでC#の参考書買ってきたのですがソッコー挫折しました。
でEXCELのVBAの入門書から地道に勉強することにしました。
とりあえずYahoo Financeから時系列データの自動取得と自動更新するとこまでは出来たのですが、
データを読み込むときに不規則に文字化けしてしまうので、それを見つけて修正する
分割の考慮が終値しかされていないので始値などにも修正を加える等、
いろいろ細かい所に苦労させられてます。
プログラミングってそういうもんなんですかねぇ。疲れました。
別のスレでも書いたのですが
課題が出たのですが分からないので教えてください
この間に、英文テキストファイル(単語数100語程度)を用意し、
これを処理するプログラムをつくります。
プログラムは、
(1)テキストファイルを単語ごとに区切る
(2)単語をソートして並べ替える
(3)ファイルに保存する
という流れで作ってください
↑という問題です
初心者にも分かりやすくお願いします 細かい文法は知らんが、一行でこんな感じか?
awk '{for(i=1;$i != NR;i++) {print;} }' text_file | sort | uniq > word_file >>51
その程度は簡単にできるようにならないと相場のデータ処理で苦労するぞ。
1、基本的には、英語なので、文字列を" "スペースで区切って、配列に全部格納する。
2、配列の要素をソートした結果を最終的な配列要素に再格納する。
3、ファイルに保存する。
あとは、1,2,3、の具体的なコードを手元の本やら、WEBで調べ上げて、組み上げる。
>>51
デバグ済み
awk '{for(i=1;$i != NL;i++) print $i;}' text_file | sort | uniq > word_file
入力例(text_file)
AAA aaa xxx aaa bbb ccc
zzz xyz aaa ccc
zzz AAA zzz
出力結果(word_file)
AAA
aaa
bbb
ccc
xxx
xyz
zzz awk、sort、uniqはUNIXのコマンドです。WindowsでもCygwin(フリー)をインストールすると
UNIXが使えるようになります。ちょっとしたテキスト処理はawk言語で記述できるので
便利ですよ。今はperl使う人が多いかもですが苦手なのでいつも数行のawkを書きます。 awkに笑いました。(^^;
カーニハンの本には、tclでYahooの株価情報をリップするサンプルが
ありますね。 >>59
そういや、最近yahooの株価画面がリニューアルされたよね。
株式分割もtableタグの中に追加されていて、少し嬉しい。 >>60
俺のはperlで作ったスクリプトだったので4ステップ修正すれば対応できたけど、
vbaなどの言語を使っている人には辛い画面リニューアルだったんじゃないかな
と思ったんですがどうですかね?
>>61
ttp://homepage.mac.com/chartscape/DataSources/
CSV形式で取得するのがメジャー。
取れない情報があればしかたがないが、大抵はある。
ココの人たちってJAVA使わないの?
オリジナルのテクニカル分析も自由に開発できるじゃん
データはCSVでとればいいだけだし、EXCELじゃグラフ機能とか限界あるでしょ
>>62
例えば、1983年以降のすべてのデータの一括取得後、日々の更新では差分だけを
取得するような単純な処理のツールですら以前(今はあるよね??)にはなかったで
すもん。
んで、現状でも取れない情報があったり、自分好みの形式で取得できなかったりす
るのでツールはもう自作するのがデフォルトになってます。
最近は特定株比率と浮動株比率の一覧が欲しくって、四季報からの情報抽出ツー
ルを作ってます。
>>63
テクニカル分析にはC#でデータの取得にはperlを使ってます。 データの整形にperl,計算はjavaを使っています。
最近は銘柄ごとに50日分の時系列データを保存したtxtを2つの引数にして相関係数を計算するものをつくってみました。
日経225銘柄(カネボウ除く)について計算すると
もっとも低い組み合わせbest10は
4324 (株)電通 9020 東日本旅客鉄道(株) -0.365958535
8232 (株)東急百貨店 9503 関西電力(株) -0.363421861
8232 (株)東急百貨店 9020 東日本旅客鉄道(株) -0.363399061
9020 東日本旅客鉄道(株) 2282 日本ハム(株) -0.317717922
8232 (株)東急百貨店 9532 大阪ガス(株) -0.311209315
8232 (株)東急百貨店 9501 東京電力(株) -0.293873876
8232 (株)東急百貨店 9502 中部電力(株) -0.290992723
6976 太陽誘電(株) 9020 東日本旅客鉄道(株) -0.263416163
4010 三菱化学(株) 9020 東日本旅客鉄道(株) -0.261863376
2768 双日ホールディングス(株) 4502 武田薬品工業(株) -0.251814005
といった具合になりました。24976個の相関係数が3時間くらいで計算できます。
excelのみでこういうことをしようとすると苦しいです。
>>67
各銘柄毎に総当たりで相関関係を計算してるんでしょう。
昔は計算速度が遅かったから、CAPMみたいにベンチマーク基準にする
必要があったわけですが。 66ですが、68さんのおっしゃるとおりです。
銘柄ごとのタブ区切りファイルが224あって、この中から重複のないように2つの組み合わせをとって計算するわけです。
ファイル名を証券コードにしてあるので引数を表示に使いまわせるので便利です。 エクセルのことで、恐縮なんですが、a1,a2,a3,a4・・・にある偶数ばんめのデータ(つまりa2,a4,a6・・・)をb1=a2,
b2=a4,b3=a6としたいのですが、これはVBAを使わない場合どういうふうにすればいいのでしょうか?
B1 に =OFFSET($A$1,ROW(B1)*2-1,0) と入力して、
あとはB2〜B3にコピーすればできるんでは?
ふと思いついただけなので、もっといい方法があるかもしれません。
エクセルで30分ブレイクアウトの検証をしたいのですが、
5分足の4本値を取り込んで、
1日のうちの初めの6本だけのMAX MINの表示のさせ方を教えてください^^;
日付が代わって初めの6本だけっていうのが
どうも分からなくて。 >>72
よくわからないけども、IF関数を使って、日付か何かで分岐させれば?
マクロ使わないんなら、別のセルを用意して、
日付が変わったらフラグたてて、
そのフラグを元に6本とればいいんでは?
Excelの扱える行数は32767行もしくは65535行まで
Excel自身が持ってるグラフ化機能も使えるけど
上限数が決まってる時点で致命的に不便
プレーンテキストで保存してLinuxマシンにGNUplotでも入れて描画させれ
vbaの達人にExcel検証ファイル作ってもらって
システムトレード観が変わりました。
パンで翻訳やってる長尾さんとかもVBA使ってるくらいだから
初心者さんは難しい言語に手を出す必要ないと思います。 rrrqqqaaaあっとhotmail.com
VBAを一緒に勉強できる仲間募集してます。
今、オンラインなので、連絡下さい。
VBA。手動を記録してソース見て色々考えているレベル。 ニーズがあるかどうかは分かりませんが、もし必要な人が
いましたらどぞ。
日本株3795銘柄の日足の4本値を各銘柄ごとにCSVファイル
に保存してあります。
[株価データ] 日本株3795銘柄 1983.01.04-2004.12.03.zip 90,486,405 5dcb813f103483c5b6dcc4f2d3ba4130 多少はDLされましたよ。ちと驚いたかもw
なお、日々の株価データは次のページで提供されているデータを使って
ください。提供されている銘柄や扱っている市場がほぼ同じです。分配
には、perlか何かでツールを作ればいいやね。
ttp://www.rain-net.com/kabu/ 最強のシステムトレードだそうです。使ってみてはどう?
RCトレーディングシステム
ttp://swingwaver.com/index.php >>84
私も日本株3795銘柄の日足の4本値が欲しいのですが、
どこのホームページにあるのでしょうか。
>>87
よく知らないけど、これってnyで放流してるって意味なんじゃない デイトレ用チャートソフトのリアルデータを数秒毎に取り出し
自作システムに使用している方はいないでしょうか?
今はVBAを使い数秒毎に自動更新しているのですが、これだと
データ処理専用PCと注文用PCの2台が必要になるで・・・
商品先物用のDDE機能付きの格安ソフトがあればそれでもいいんですが。 >>87
最新データっす。どぞ〜。
ttp://krn2.x0.com/summit/
ファイル番号 1279 受信用パスワード kabu ちと補足。
今度のデータには1991年以降の日経平均、TOPIX、ジャスダック指数のcsvファイルが
含まれてますけど、いらなければ捨てちゃってください。 >>92
いろいろ努力してみたのですが、「ページを表示できません」のメッセージが出ます
ツール→「インターネットオプション」→「詳細設定」は規定値にしているのですが。
どこかいじる必要があるのでしょうか。 まだバーチャだけでつが、自分は
『やさしいPerl 表計算的処理編』
という本を買って勉強しました。
エクセルユーザーならとても読みやすいと思います。
でも、Perlに馴染めずいまはPythonつかってまつが(w
ttp://www.amazon.co.jp/exec/obidos/ASIN/4899770413/250-6800550-0489814 >>94
URLはあってますが、行けてももうファイルが消えてますね。 株価データの抽出ツールなんてperlで50ステップ程度で作れると思うのだが....
自作しちゃえばいいのに。 どこから抽出するのかが問題。
また抽出したデータを毎日欠かさず蓄積していかなければならない。
更に、抽出や蓄積となったとしても株式分割修正を加えなければならない。
その全てをある程度自動化できてやっと株価データベースが完成する。
それほど難しい問題ではないが、単純でもない。 ここひとつき、土日にコツコツ作り始めて、
やっとそれっぽいのが出来たよ。
使用するテクニカル分析を選び、パラメータを調整し、シグナル発生条件を決める。
過去シグナル発生ごとに、予め決めた期間内の上昇幅、下落幅を計算する。
これをすべてのシグナルに対して繰り返して、結果、その指標は、有効か否かを検証する。
このツールの有効点は・・・
■銘柄に有効なテクニカル指標とそのパラメータを割り出せる。
■そのテクニカルを使うと、過去どれくらいの確率で、どれくらい上がったか下がったかが分かる。
■どれくらい下げても我慢するかを予め決めておくことにつながる。(冷静な取引の手引きにできる)
で、今のところ、移動平均とボリンジャーバンドにしか対応してない。
今後は、もっと多くのテクニカル分析に対応させて、それぞれをAND、ORで組み合わせるようにするつもり。
最初のテクニカル検証結果をもとに、ポジる条件、ストップ、リミット条件、
ポジションサイズの変更条件を設定し、資金の増え方を見る、
ってところまで作りたいです。
↑はJAVAで作りました。仕事で使ってるので・・・。 ■ このスレッドは過去ログ倉庫に格納されています