投稿一覧

自動売買方法

はじめに TradingViewはトレードする場合かなり便利です。 様々なチャートとインジケータをweb上で閲覧可能。 Oandaと接続して、裁量トレードはできる。 ここまでは良いのですが、TradingViewだけで 自動売買 が現在未対応らしい。 残念すぎるだろ… あきらめない 自動売買の選択肢で有力なのが、MT4・MT5を使用する方法です。 ですが、これには問題があり、基本的にはWindowsでこれらのソフトを稼働させ続ける環境を用意する必要があります。 Windows稼働の環境作りも面倒で、もっさりした環境でMT4・MT5を使いたくないですよね… そこで、TradingViewを使ってFXをする方法を調査しました。 PineScript(TradingViewで使用されるインジケータ作成用の言語)でAlert発火 ↓ WebHookでGASにAlertのメッセージを飛ばす ↓ GASでメッセージを解析してOandaのAPIで取引を実行する トレード用のAPI トレード用に使用できるAPIの選択肢は少なく、有力なのはOandaです。 ただ、これも問題がありOandaのGold会員である必要があります。 Gold会員の維持は毎月$50万のトレードを行っている必要があり、比較的ハードルが高いです。 最後に 日本国内では、未だにMT4が主流のようで、なかなか自動売買が楽にできる選択肢が増えないのが現状のようです。 TradingViewに頑張ってもらって、無料でTradingViewから自動売買ができるようになれば最高ですよね? 近いうちにその日が来ることを望んでいます。...

マインドマップ調査

はじめに マインドマップ関連のツールや技術に関して調べた結果の議事録。 マインドマップツール Mindmeister Miro Whimsical その他 複雑GUIの会 Markdownツール [HackeMD](https://hackmd.io/ まとめ マインドマップを作るための技術は主に以下の3種類 HTML SVG Canvas Canvasは実装に手間がかかるが、表現力が最も高い。 また、画像でのエクスポートが用意。 SVGは十分表現力が高いが、テキストの処理が弱い。 HTMLでもマインドマップを作成可能だが、曲線の表現はSVGなどを頼るしかないので、簡易的なマインドマップしか作れない。...

シートがなければ作るというGAS

きっかけ SpreadsheetでGASを使っていて、自分がよくやるのが月毎にシートを分割すること。 例えば、「2022/01」のシートにはその月の売上をGASで登録する。 「2022/02」になったら、自動でその名前のシートを作って、登録する。 便利だが、GASでシートがなければ作るというのが少し面倒だったので、ここにメモしておく。 やりたいこと 特定のシート名のシートが、そのスプレッドシートに存在するかを確認する。 もしなければ、テンプレートとなるシートをコピーして、シート名を設定する。 さらに、そのシートを一番左に移動する。 戻り値として、シートを返す。 function createSheetIfNotExist(ss, sheetName) { const sheet = ss.getSheetByName(sheetName) if (sheet) return sheet const templateSheet = ss.getSheetByName('原本') const newSheet = ss.insertSheet(sheetName, 1, {template: templateSheet}) return newSheet } insertSheet関数は、第2引数で新規シートの挿入位置を指定できる。 さらに、{template: templateSheet}のように、テンプレートのシートを指定するオプションがある。 まとめ しっかりGoogleのドキュメントを読めば、サクッと解決できた。...

Spreadsheetの画像が印刷されない問題解決

問題 Spreadsheetで画像を表示していて、PDFにして印刷しようとすると画像が表示されなくなることがある。 原因はわかっていないが、推測ではGoogleのサーバーでPDFをレンダリングする際に、一定時間以上経過するとロードされなかった画像は無視してPDFを作成しているような気がする。 つまり、画像を含めてSpreadsheetをPDF化して印刷しようとしても、Googleサーバーのご機嫌次第では表示されなくなる。 これは結構困りもので、人によっては表示されたり、画像によっては表示されたりと解決が難しい。 そもそも画像を表示する方法 よく紹介されている画像を表示する方法としては、Googleドライブ上にファイルを上げて、その画像のファイルIDを取得して、以下のようにIMAGE関数で表示している。 IMAGE("https://drive.google.com/uc?export=download&id={画像のファイルID}") この方法では、PDFで印刷時に表示されない問題が発生する。 ちなみに、画像は誰でも見れる共有権限にしておかないと、IMAGE関数で表示できないので注意すること。 解決策 以下の方法で表示できた。 IMAGE("https://drive.google.com/thumbnail?id={画像ファイルID}") おそらくこのURLはGoogleドライブの画像のファイルのサムネイルとして、少し画質が悪いがデータ量が少ないものを表示することになる。 私のケースではこの画質でも十分だったので、問題解決。...

Vueプロジェクト作成

プロジェクト作成を楽したい プロジェクトを新規作成する場合に、ゼロから作成するよりも雛形を使いたい。 使用したいモジュールは以下。 Vue.js Webpack Firebase Sass TypeScript vue create コマンド:vue create 自分で選択肢を選ぶながらプロジェクトを作成できる。 最大の問題点は、webpackの設定ファイルがVue用に作成されたもので作られてしまう。 気に食わない。 vue init コマンド:vue init webpack-simple project-name 指定したテンプレートを元にプロジェクトを作成できる。 問題点は、パッケージのバージョンが古すぎる。 ローカルのNode.jsのバージョンとマッチしないと、作成直後でもエラーが発生して動作しない。 このコマンドはもう使えないと思って良いかもしれない。 webpack-cli コマンド:webpack init webpackのプロジェクトを作成することができる。 問題点は、Vue.jsの設定は自分でしないといけないこと。 結論 webpack-cli を使用するのが一番良さそう。 $ mkdir project-name $ cd project-name $ yarn init -y $ yarn add webpack webpack-cli $ npx webpack init 更に、これでプロジェクトを作成した後に、 firebase init (firebase-toolsが必要)でfirebaseプロジェクトの設定を追加するのが良さそう。 Vue.jsを追加する場合は、以下の記事が参考になりました。 https://ics.media/entry/16329/#webpack-ts-vue Vue の追加 yarn add -D vue vue-loader @vue/compiler-sfc webpack.config.jsonに以下を追加 const { VueLoaderPlugin } = require('vue-loader') const webpack = require('webpack') webpack....

GASの備忘録

はじめに GASを使用するにあたって、結構細かい仕様が気になることがあります。 誰も気にしないような仕様を、備忘録として追記していきます。 備忘録 getLastRowは関数も含む getLastRow で値を含む最後の行を取得できます。 「値を含む」には、関数も含みます。 関数をコピーする GASで行を追加する際、関数が込みで行追加は面倒。 便利な関数が copyTo 。 これを使うと関数だけコピーとか、値だけコピーができる。 GASの種類 コンテナバインド型:Googleドキュメント経由で作成されたGAS スタンドアロン型:単体で作られたGAS https://developers.google.com/apps-script/guides/bound コンテナバインド型は一部特別な関数やイベントを使用することができる。...

FirebaseでハマったReference、Doc、Snapshot

参考 firestoreのreferenceとかsnapshotで混乱したので整理してみた ...