Logicky BLOG

Logickyの開発ブログです

BTCFXの約定データで強化学習してみる

BTCFXの1日分の約定データ(1分足データ)をもとに、取引方法を学習させてみたいと思います。Open AI GymのEnvというのを自作することで、学習環境を自作することができます。 Open AI Gymが用意してくれているEnvは、env = gym.make('CartPole-v0')といっ…

Bitflyer FX バックテストしてみる

下記に書いた1秒足作るコードで作った1秒足データを元に、バックテストを実施するコードを作成してみました。 blog.logicky.com ただ、Firestoreを使うのをやめようと思ってるので、Firestoreデータをcloud storageにエクスポートして、bigQueryにインポー…

Bitflyer FXの約定データを取得して1秒足データを作ってFirestoreに保存する

データ取得 下記のようなnode.jsコードを作って取り込みました。非常に適当に作っております。firestoreに入れています。firestoreにbatch()というのを使って一括で保存しているのですが、3分くらい経つとこれの途中でとまります。なので、2分したら強制的…

ビットコインFX裁量支援・自動売買ツール LOGIFXを作りました

Bitflyer FXに対応した裁量支援・自動売買ツールを作りました! Windows / Mac / Linuxで動作します。 販売サイト 製品紹介・販売サイトは下記です。 7日間無料キャンペーン中ですので、よかったら使ってみてください! https://fx.logicky.com 概要・特徴 …

webpackでfirebaseの開発環境・本番環境を切り替える

webpack.DefinePluginというのを使うと、定数を環境に応じて定義することができるので、これを使ってfirebaseのプロジェクト情報を切り替えます。 const webpack = require('webpack'); module.exports = (env, argv) => { let plugins = [ ... ]; let fireb…

webpack4でconsole.log削除する

chaika.hatenablog.com なんか、下記の方がトレンディーらしい。。 github.com 上のサイトのとおりやってもエラーになったけど、下記に書いてあった。terser 3.16のバグらしい。。 github.com

BitfinexとBitmexの板と約定履歴をwebsocketで取得する

node.jsを使ってます。 Bitfinex const ws = require('ws') const w = new ws('wss://api.bitfinex.com/ws/2') w.on('message', msg => console.log(msg)) let msg = JSON.stringify({ event: 'subscribe', channel: 'trades', symbol: 'tBTCUSD' }) w.on('o…

vue + stripe-elementのコンポーネントを自作した

vue-stripe-elementsを使っていて困ったこと 最初下記を使っていて、すごく使いやすかったのですが、複数ヶ所でstripe-elementを表示させようとするとエラーになってうまくできませんでした。 github.com vue-stripe-elementsのissue 同じようなことで困って…

Stripeのサブスクリプション

課金の有効性チェック Stripeでサブスクリプション使うときに、支払いが有効で、現在サービス利用可能かというのを判断するときのやり方が書いてあった。 stripe.com 最初の支払いが成功したら、current_period_endに、有効期日を保存。月額課金だったら、課…

Vue.js + Firebase + Stripeで開発しているときに調べたことのメモ

CloudFunctions async/await使う時は、下記のようにnode:8をpackage.jsonに設定する必要ある。 { "name": "functions", "description": "Cloud Functions for Firebase", "engines": {"node": "8"}, 上記を設定すると、そのままだとyarnが使えなかった。ココ…

node + webpackでregeneratorRuntimeが無いいわれるで

async, await使ってたら下記エラーがでたで Uncaught ReferenceError: regeneratorRuntime is not defined 下記に書いてあるとおりにやってみたら、エラーがでなくなったで dev.to 下記をインストールして、 $ yarn add -D babel-plugin-transform-runtime .…

既存のvueアプリに適用しやすいcssフレームワークはなんですか?

Quasarを使おうと思ってたのですが、quasar-cliも、vue-cliも使えない状況で、使おうと思ったら、やり方が書いてなかった。下記によるとデフォルトのquasarに既存vueを統合してよみたいな感じに書いてあるので、Quasarは今回はやめることにした。 https://fo…

FirebaseでGoogleログインする

ここに説明があります。vueでやるときどこに何書くのがいいのかなーと思いますが、api/firebase.jsに下記みたいのを書きました。firebase.config.jsに、apiKeyとか、authDomainとかを書いております。 src/api/firebase.js import firebase from 'firebase/a…

Electron - ビルドしてみる

ビルドは、下記に説明があります。 アプリケーションの配布 Mac用のアプリを、下記2つを使って、ビルドしてみたいと思います。 electron-packager electron-builder ビルドするアプリ 今回ビルドするのは、下記を使おうと思います。 github.com electron-pa…

単純なasar

Electronファイルの圧縮はasarというのを使ってるそうです。 github.com Windows上の長いパス名の周りの 問題 を軽減したり、require をわずかにスピードアップしたり、ソースコードを簡単な調査から隠したりするために、ソースコードを少し変更することであ…

puppeteerでスクレイピングしてみた

puppeteerというのを使ってみました。google chromeをコマンドラインから使えるやつです。久しぶりにjQueryやってる感じで、イライラした笑 でも便利そうだし、面白かった。これを使うと、なんか色々できそうで面白い。 本家マニュアルも読んだけど、この記…

Node.jsでファイルの読み書き

Node.jsでファイルの読み書きします。 File System | Node.js v10.11.0 Documentation fsモジュール fsモジュールを使って読み書きします。非同期コールバック、同期、非同期プロミスバージョンという感じで、同じ処理に3つの関数がある場合が多いっぽい。…

Wordpressからはてなブログへの引っ越しの際に、日本語URLがおかしいのと、シンタックスハイライトが反映されないのを解決した

Wordpressからはてなブログに引っ越しました この度、はてなブログにお引っ越しをしました。めっちゃ便利だし、安いし、軽いしいい感じだと思いました。 引っ越し方法も基本は簡単で、Wordpressの管理画面の標準機能に、エクスポート機能があるので、それを…

phpstorm - ubuntuでvimプラグイン使ってるときのキーバインド

phpstromでvimのpluginを使ってると、キーバインドが若干調整が必要になる。 ctrl+bは、通常であれば、定義元にジャンプするが、それがvimのページアップになってしまう。 あと別に大丈夫ではあるけど、ctrl + fが、検索ではなく、ページダウンになるので、v…

Node.jsでbitFlyerAPIを使う

APIのドキュメントはここにあります。 サンプル const axios = require('axios') const config = require('./bitflyer.config') const baseUrl = 'https://api.bitflyer.com' const crypto = require('crypto') function request(method, path, data) { retu…

Javascript - Promsise async await

参考:Promiseを使う Promiseの例 const axios = require('axios') function hoge(msg) { return new Promise((resolve, reject) => { if(msg === 'hoge') resolve('page') reject('error') }) } function page() { return new Promise((resolve, reject) =>…

php-fpmの設定

下記のようなエラーがでたので、php-fpmの設定を調整します。 [pool www-data] server reached pm.max_children setting (5), consider raising it [pool www-data] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), …

node.js - socket.ioでブロードキャストする

ブロードキャストというのは、node.jsのサーバから接続されている各クライアントに配信することです。 プロジェクト作成 $ mkdir hoge $ cd hoge $ yarn add express $ yarn add socket.io $ vue create client $ cd client $ yarn add socket.io-client と…

Node.js - requireとexports

ここに詳しく書いてありました。 大体こんな感じで使う。 index.js var hoge = require('./hoge.js') var page = require('./page.js') console.log(1) console.log(hoge.val) console.log(hoge.num) console.log(hoge.hoge.a) console.log(page.pageFunc(10…

abコマンド

Apache Benchというらしい。これ使って負荷チェックしてみる。 詳細はここに書いていたので、見ていただければと思います。 $ ab -n 100 -c 100 https://example.com/ cが、同時接続数で、nが合計リクエスト数だそうです。100ユーザが同時に2リクエストする…

Firestoreの概要と特徴

Firestoreとは? Firestoreは、NoSQLデータベースで、JOINとかできないですが、ある程度のSQLは使えます。クエリ実行時は全てインデックスが使われるので、作成されていないインデックスが必要な場合、実行できません。 Firestoreのすごいところ Googleのサ…

Ubuntu - クリップボードコピー

今私はubuntu18.04をメインPCとして使っています。もともとWindows10をデュアルブートにしてたのですが、たしか16から18にアップデートしようとしてたらゴチャゴチャしてしまい、めんどくさくなってwindowsを消してubuntu18.04オンリーのPCにしてしまいまし…

cakePHP2 - 多言語化

多言語化します。 cakephpマニュアルのこのページに説明が書いてあります。 あと、翻訳ファイルの作成については、ここが参考になりました。 翻訳したい文字列を指定する 翻訳対象にしたい文字列は、__()というのでくくります。 翻訳ファイルの作成 まず翻訳…

イーサリアムやってみる

この本みながら、イーサリアムやってみます。この無料サイトも色々詳しく書いてありそうなので、後で見てみる。 イーサリアムをインストール Goのクライアントはgo-ethereumです。通称Gethです。Gethはここからダウンロードできます。今のバージョンは1.6.7…

Go言語によるビットコインのフルノード実装btcdを調べる(2)

btcdを実行した際のプログラムの流れを最初から確認してみます。 server.Start() btcdを実行すると、設定読み込んだり、データベースの準備したりしたあとに、サーバを作成し、起動します。サーバの起動は、server.goのStart()です。そこで、s.peerHandler()…