プログラミングでアイデアを具現化したい

仮説アルファを妄想するのが日課でアイデアを具現化するためにプログラミングを始めました。主な言語はC# 。

SQL

SSHでPostgresqlに接続した話

趣味プログラマーとして今までノーガード上等でやってきましたがちょっとした事情で セキュリティを高める必要があって、DBサーバへSSH接続してDBサーバから情報を クライアントアプリで取得するフローを構築したのでメモ書き。①クラウドにおいてるwinサーバ…

MT4オフラインチャートの作り方メモ

久々のエントリーです。 今更誰にも需要がなさそうなタイトルですが、作業用メモということで。手順① ツール→オプション→プロキシサーバーを有効にチェック プロキシ設定からサーバーに「offline」を入力してOK。 ※通信できなければなんでもいい。 MT4再起…

中ボスになった雇用統計

最近、雇用統計時のSNSタイムラインは 昔ほど盛り上がらないようになった気がしている。値動きがしょぼいもんね。そりゃ祭りにならない。直近の発表は雇用がよくても平均時給が悪かったりと、 結果に矛盾があったりしてなかなか値幅がないのが続いていた。 …

前処理大全

前処理大全[データ分析のためのSQL/R/Python実践テクニック]なにやら面白そうな本を見つけたのでポチってしまった。 そういえば、最近データを取得して貯蔵する仕組みだけ構築して データを活かしきれていなかったな。本書で何か気付きを得られたらうれしい。

SQLServer timeレコードを任意の間隔で生成する

SQL

ちょっとした流動性調査で、数百ms毎のdepth調査をする為、 基準となるtimeレコードがほしかったので生成するqueryを書いた。 --一時テーブルが存在する場合は削除する。 IF OBJECT_ID(N'tempdb..#tempTable', N'U') IS NOT NULL DROP TABLE #tempTable; --…

BitFlyerの現物とFXの差額について

BitFlyerのbitcoin価格に現物とFXで乖離があるのはたぶん皆さんご存知だと思います。 感覚では大体いつも1万円前後乖離しているんじゃないかなーと思ってました。 少しデータもたまって来たので簡単にクエリ書いて視覚化してみました。 SELECT convert(nvar…

ビットコイン(BTC/JPY)の時間帯別値幅を出してみた

tos5511.hatenablog.com 以前投稿した記事と似た内容です。 ビットコインには時間帯による癖があるのか調査してみました。 ちょっと手持ちのサンプルが少ないんで統計値とはまだ呼べないかもですが。 select TB_A.tradedate ,MAX(case when TB_A.時間='00' t…

SQLiteをやめてSQLServerにプライスを格納することにしたので・・

個人用メモ実装が楽だしDBの引越しも超楽だからってことで 仮想通貨のプライスを格納するDBにSQLiteを採用していたのだが、 SQLiteのマネージャーツールで良いものがない。 MS様のツールでしかプログラムを書けない私は (コードスニペットや諸々親切な機能…

ビットコインのトライアングルアービについて検証してみた

始まりはこれだった。 BTCUSD×USDJPY 円価は271,029 そしてBTCJPYのレートは274,316 差額は3,287円これを見て、BTCJPY売り,BTCUSD買い,USD/JPY売りで トライアングルアービを実施すればぼろ儲けやん。 ふざけた数字表示しやがって。 ここからは実際の検証結…

2000年以降の時間毎の値幅

SQL

大したことやってないんですけど、無性に表題の件が気になったので 数値がどうなっているのか改めて視覚化したいと思い、 MT4から1時間足をSQLServerにインポートして以下クエリで出力してみました。case whenの箇所が力技みたいで気持ち悪いですが、 今回の…

プロはselect句で処理する - SQL Tips

当初の予定からだいぶスタートが遅れているけど、 平常運用できそうなシストレ概要が出来上がりつつある。 ※適当に雇用統計で試しただけのもの。根詰めればたぶんすぐにGoLiveできるんだろうけど、なんだろうな。 昔ほどのやる気がないのか、社畜から離脱す…

日銀金融政策決定会合発表時のティック数

SQL

0時を超えてしまった為、昨日の話となってしまいますが 日銀発表時5秒間の通貨別ティック数です。 さすがにドル円が今回は1位ですね、 SELECT [通貨ペア] ,count(通貨ペア)ティック数 ,AVG([SP])平均SP FROM [Fixテーブル] where [日時] between'2016-04-28 …

Transact-SQL ストアドプロシージャの作成と実行

SQL

ストアド プロシージャの作成方法 CREATE PROCEDURE ストアドプロシージャ名 AS 任意の Transact-SQL ステートメント ストアド プロシージャの実行方法 EXEC ストアドプロシージャ名 プログラムからクエリを投げる場合、ストアドプロシージャで指定したほうが…

SQL 通貨毎に最新のティックを取得する

SQL

最新のティックを使いたいと思ったが、思いのほか工夫が必要だったのでメモ。ただ拾い方としては効率が悪い気もしていて、もう少し高速な方法は考えたいところ。 select [通貨ペア],[Bid],[日時] from (select *, row_number() over(partition by [通貨ペア]…

トランザクションログファイル(ldf)を圧縮してみた

SQL

毎日28通貨分の全Tick情報をローカルDBに格納しています。 約1週間たって、どのくらいのサイズになったか確認してみたところ・・ ldfとかいう拡張子のファイルがmdf本体よりもデカいんですね。 なんじゃこりゃとwちょっと容量食い過ぎなんで、調べてみたら…

24時間前のテーブルデータをアーカイブする

SQL

OANDAからFixで取得しているTickデータですが 28通貨の1週間分で約1,000万レコードです。最初は1週間毎に過去Tickをアーカイブしていこうかと思っていましたが これでは週後半、テーブルが肥大してきた状況下では シグナル発信用アプリの動作が遅延しそうで…

自習書とかいう良本

Transact-SQLについて勉強しようかと思ってAmazonで書籍みてたんですけど、 こんな感じに2000年とか2008年の古い書籍しかなくて、ろくに知識もないくせに 新しい技術ちゃんと解説入ってんのかよーとかおもって敬遠していた訳ですが。 なんと、調べていたらMi…

SQL 別PCからDBにアクセスする

SQL

SQLServerをインストールすると初期状態ではネットワーク制限された状態で インストールされます。このままでは使い勝手が悪いのでネットワーク内で 共有できるよう設定しました。結論から言うと、下記URLの手順通りで何も難しい事はありませんでした。 レッ…

クリック証券 新FXネオのスプレッド調査4(イースター編)

金曜日はイースター休暇で各業者のスプレッドは拡大しやすい状況だった。 実際にクリック証券ではどうだったのか。 クリック証券が提供しているヒストリカルデータを元に算出してみる。 ※1分足ベースの為、誤差はあるかと。 select SPTable.通貨名,SPTable.…

SQL 時間を変更する

SQL

SQLServerで時間を編集する方法元のデータ update テーブル set 列 = dateadd(hour,9,列) 変更後 日付も変更されていますね。 なぜこんな事を記事にしているかというとOANDAから取り込んでいるTickデータ、初期の頃は日本時間に変換してなかったんですよね笑…

ベルギーテロで一番反応した通貨ペアは

テロで犠牲になった方も多くいる中でこのような計算をするのは 不謹慎だと感じる方もいるかも知れません。しかし、このような時マーケットはどう動くのか。 後の為にデータを残します。データはoandaからFIXでMarket Data-Incremental Refreshで取得していま…

コード修正

SQL

tos5511.hatenablog.com この記事で書いた冗長なコード。 declare @日時 varchar(20) set @日時 = '201603' select SPTable.通貨名,SPTable.時間,AVG(SPTable.SP) from ( select 通貨名 ,([終値(ASK)]-[終値(BID)]) as SP ,case when convert(varchar(8),[日…

クリック証券 新FXネオのスプレッド調査3(ヒストリカルデータベース)

tos5511.hatenablog.com tos5511.hatenablog.comシリーズ3作目です笑今度はクリック証券、3月のドル円の時間帯別の平均SPを出してみました。 シリーズ2での検証結果が正しいことが証明できるか・・書いたコードは以下、ドル円とドル円EXモードの時間帯毎…

クリック証券 新FXネオのスプレッド調査2(ヒストリカルデータベース)

tos5511.hatenablog.com前回に続き、もう少しクリック証券のヒストリカルデータで遊んで見ましょう。クリック証券のドル円の通常モードとEXモードについて スプレッド拡大の傾向を調査してみました。(3月分) declare @日時 varchar(20) set @日時 = '201603…

クリック証券 新FXネオのスプレッド調査(ヒストリカルデータベース)

tos5511.hatenablog.com これでとりあえずは作業が多少効率的になったので、 クリック証券の新FXネオのヒストリカルデータを全通貨分取り込みました。 以下は1/18~3/19までの期間中、クリック証券の最小スプレッドと最大スプレッドです。 SELECT [通貨名] ,…

クリック証券のヒストリカルデータをSQLServerに取り込む

SQL

過去に似た事やってるんですが、後日わかりやすいように手順化しておきます。まずはクリック証券のヒストリカルデータは営業日毎の為、 これを個々importするのは非常にめんどくさい。 そして通貨名がついてないのでカラムを追加してやる必要がある。 ここは…

SQLServerでテーブルカラムの属性を変更する。

SQL

SQLServerでテーブルを作成した後、カラムの型を変更したい場合、 画面上で変更しようとすると上記のように怒られる。こんな時はALTERコマンドで属性変更できる ALTER TABLE [ClickNeoPrice].[dbo].[ClickNeoPrice] ALTER COLUMN 日時 datetime2(7) NOT NULL…

SQLServer2014Express ダウンロード&インストール手順

SQL

色々環境構築失敗して、インストールしなおす事にしたので ついでに手順をアップしてみる。Download Microsoft® SQL Server® 2014 Express from Official Microsoft Download Center 今回インストールするのはSQLServer2014Express 「ExpressAndTools 64BIT\…

OANDA FIXAPI接続とDB連携

tos5511.hatenablog.comこの後、何もしてなかった訳じゃなく コツコツ作業を続けてました。tos5511.hatenablog.com 元々、上記のような手法でFX業者のHPからレートを取得することは可能でしたが マナー的な問題や通貨ペア数の数の問題もあり、OANDAから正式…

日本語変数・メソッドって意外と有り?

プログラミングしていて、特に私のような趣味プログラマーなんかは 俗に言う「3か月後の自分は他人」なんて状態になるのが多いのではないだろうか。 それを回避する為に少し複雑な処理には細かくコメント入れたりして ただそれも変数やメソッド名の命名ルー…