AWSでよく使うlinux コマンドメモ

which・・・コマンドの場所が分かる
–user・・・所有者であれば真を返すコマンドオプション
==x.x.x・・・バージョンを指定してインストール
pip freeze・・・pipでインストールしているモジュールを
        すべてバージョン情報と共に表示する。

仮想通貨の他人のポジションを知る方法

仮想通貨のポジションは以下のサイトで知ることができる

Percent Long/Shortを参考にすると良い

  • tradingview

取引所にもよるがBitFinexでLong等と検索すると出てくる。
Security関数等でインジケータとして使用することもできる・・と思う。

Djangoの設定

・日本語化

# 以下を削除
# LANGUAGE_CODE = 'en-us'
# TIME_ZONE = 'UTC'

# 以下を追記
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

・使用するDBをsqlite3からmysqlに変更

        # 以下を削除
        #'ENGINE': 'django.db.backends.sqlieete3',
        #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        # 作成したデータベース情報を追記
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'app1_db',
        'USER': 'app1_user',
        'PASSWORD': 'app1_passwd',
        'HOST': 'localhost',
        'PORT': '3306',

Cloud9 Python3への変更

pythonを使ってWebアプリケーションを作成するために

Djangoと言われるフレームワークを使うんだけど、Cloud9はデフォルトでpython2系しか設定されておらず、python3系に変更する必要があります。

方法は以下のサイトが良く書かれていたのでリンク張っておきます。

AWS Cloud9 デフォルトのpythonをpython3に変更するhttp://servernameis.xsrv.jp/CryptoCurrencyAutoTrader/2018/03/24/cloud9-changepython3/

python3がデフォルトして何か問題なのかな。
早くpython3がデフォルトになることを祈る。

後で分かったんでけど、上記の手順だと、新しいターミナルを開いたときに
python2系に戻ってしまう。

ec2-user:~/environment $ vi ~/.bashrc

と入力してからbashrcファイルを書き換えよう。
viなので、viエディタの使い方が分からない人は検索してみてね。

PineScriptのデバッグに使用する関数について

PineScriptのデバッグに使用する関数について

plotchar・・・任意の文字を出すことができる。

plotchar(条件,出力場所,出力文字列)
注意:ローカルスコープ(if文の中等)には書けない。

plotchar(close <= open,location.belowbar, text="H")

下のような感じで表示される。

条件を満たした時にアラートを表示する方法

今回は条件を満たした時にアラートを表示する方法

Pine エディタに以下の新規作成から「MACD Strategy」を選択する。

するとPine エディタに以下のように表示される。

//@version=3
strategy("MACD Strategy", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
if (crossover(delta, 0))
strategy.entry("MacdLE", strategy.long, comment="MacdLE")
if (crossunder(delta, 0))
strategy.entry("MacdSE", strategy.short, comment="MacdSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

3つほど変更する。
1つ目 strategyの名前をMY MACD Srategyに変更
2つ目 plotを追加
3つ目 エントリーするところをコメントにしてアラートの条件に変更

//@version=3
strategy("MACD Strategy", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
plot(ema(close, fastLength))
plot(ema(close, slowlength))
alertcondition(crossover(delta, 0) , "くろすおーばー","買い注文してね")
alertcondition(crossunder(delta, 0) , "くろすアンダー","売り注文してね")
//if (crossover(delta, 0))
// strategy.entry("MacdLE", strategy.long, comment="MacdLE")
//if (crossunder(delta, 0))
// strategy.entry("MacdSE", strategy.short, comment="MacdSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

これでアラートを表示する条件が整った。

次にPineエディタから「チャートに追加」を押してみよう。

あとは右のほうの時計マークを押すと、「アラート管理」っていうメニューが表示されるから「+」ボタンを押してみる。

ダイアログがでてくるから「条件」にさっき変更したsutdyの名前を設定してみよう。するとだいたい自動で設定してくれるよ。

あとは期限とアラートアクションを変えてみよう。

これでメールが送付されるようになるよ。

ちなみにメールの受信をトリガーに発注したりもやろうと思ったらできると思うよ。
夢が膨らむね。

何か分からないことがあったら教えてね。

公開されているインジケーターのソースの見方

今日は公開されているインジケーターのソースの見方についてだよ。

まずは「インジケーター」と書いているボタンをクリックしてみよう。

クリックしたら「インジケーター&ストラテジー」というダイアログがでてくるので左から「公開ライブラリ」
を選択し、右にでてくるインジケーターから何か選択してみよう。

追加されたインジケーターの歯車みたいなマークを選択してみよう。

表示されたダイアログから「ソースコード」を選択するよ。

下の「Pine エディタ」にソースコードが表示されたかな?

何か分からないことがあったら教えてね。

strategy.*の使い方

今日はPineScriptのStrategyの使い方。

基本的なentryとcloseの使い方を見ていく。

デフォルトの「MACD Strategy」をPine エディタに表示して確認してみるね。

表示したら「チャートに追加」かCtrl + Enterを押してチャートに追加してみよう。

青色の文字がLongのエントリーで、赤色の文字がショートのエントリーだね。

Pine Scriptを確認してみるとこんな感じになっているよ。

if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")
if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")

entryは強制的に指定したポジションを持つようになる。
例えば今ポジションを持っていなかったとしても、ショートのポジションを持っていたとしても
strategy.longでentry関数を呼び出すとlongのポジションを持つようになるよ。

次にポジションをクローズしたい場合だけどstrategy.closeでクローズしたいポジションを指定するか
close_allすると簡単。まず下のようにコードを書き換える。

if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")
if (crossunder(delta, 0))
    strategy.close("MacdLE")

次にチャートに追加してみる。

さっき、ショートのポジションを持っていたところが、ロングのポジションのクローズに変わった。
close_allの場合は引数は何も要らない。