import time time.sleep(秒数)
python 現在の日時表示
import datetime # datetimeモジュールのインポート ... # today()メソッドで現在日付・時刻のdatetime型データの変数を取得 d = datetime.datetime.utcnow() + datetime.timedelta(hours=9) print(d.strftime("%x %X")) # 日付と時刻に対応する文字列
BitMEX bot レバレッジの設定とポジションの情報取得
#!/usr/bin/python3 import requests import ccxt HIGH = 2 LOW = 3 LOT_RATE = 0.7 # ロット(割合) LEVERAGE = 3 #レバレッジ設定 # ポジション情報取得関数 def position(): pos = bitmex.private_get_position()[0] if pos['currentQty'] > 0: side = 'LONG' else: side = 'SHORT' return {'side': side, 'currentQty': round(pos['currentQty']), 'avgEntryPrice': pos['avgEntryPrice']} #BitMEX操作オブジェクト取得 bitmex = ccxt.bitmex({ 'apiKey': 'ご自分の環境のAPI-KEY', 'secret': 'ご自分の環境のSecret-KEY', }) #レバレッジ設定をBitMEXに反映する(設定値を取得するAPIが見つからないため、こちらから設定してしまいます) bitmex.private_post_position_leverage({"symbol":"XBTUSD", "leverage": str(LEVERAGE)}) #最終価格を取得する last = bitmex.fetch_ticker('BTC/USD')['last'] #現在の保有BTC総量を取得 total_btc = bitmex.fetch_balance()['BTC']['total'] #前ポジションの数量(USD)取得 pos = position() current_position_qty = pos['currentQty'] if pos['side'] == 'LONG' else - pos['currentQty'] if pos['side'] == 'SHORT' else 0 #最大ポジション数量(レバレッジ設定×保有BTC総量×Price最終値×ロット割合)!!実際は成行注文をするので、この値より多少前後します!! max_position_qty = int(LEVERAGE * total_btc * last) #新ポジションの数量(USD)の作成(最大ポジション数量×ロット割合) new_position_qty = int(max_position_qty * LOT_RATE) print("現ポジションUSD: " + str(current_position_qty)) print("最大ポジションUSD: " + str(max_position_qty)) print("新ポジションUSD: " + str(new_position_qty))
AWS Cloud9 で bitmex botサンプル動かすまでの手順メモ
AWS Cloud9 デフォルトのpythonをpython3に変更する
エイリアス書き換え
ec2-user:~/environment $ unalias python
ec2-user:~/environment $ alias python='python3'
さらに左上にある「AWS Cloud9」をクリックし、「Preferences」をクリック
すると、下記Project Settingsが表示されます。下にスクロールすると「Python Support」があり、「Python Version:」を選択出来ますので、Python3を選択
さらにさらに
$ sudo update-alternatives --config python
実行して"2"を選択
btc情報取るだけの簡単なサンプル実行
新規ファイル作成
ec2-user:~/environment $ touch tradebot_1.py
実行権限つける
ec2-user:~/environment $ chmod 775 tradebot_1.py
コードを描く
import ccxt bitmex = ccxt.bitmex({ ‘apiKey’:’APIキー‘, ‘secret’:’秘密鍵‘, }) bitmex.urls[‘api’] = bitmex.urls[‘test’] print(bitmex.fetch_ticker(‘BTC/USD’))
実行
python tradebot_1.py
google wifi環境下でvpn経由のwindowsリモートデスクトップ接続
自宅環境:ドコモ光(ぷらら)
モデム:PR-500MI
家庭内LAN:google wifi x2台
まずPR-500MIにVPNの設定をする。
事前共有鍵をメモ&確認くんでWAN側IPもメモ、Windows側にVPN接続設定する
google wifi を普通にセッティング
google wifi アプリでポート転送設定
まずリモートデスクトップ接続したいPCのDHCP IP予約する
設定>ネットワークの詳細設定>DHCP IP予約
続いてポート転送
設定>ネットワークの詳細設定>ポート転送
TCP & UDPの3389ポートを転送するように設定する
接続
クライアントPCでVPN接続したら、
google wifi アプリの
設定>ネットワークの詳細設定>WAN にあるIPにリモートデスクトップ接続。
MFCで文字列の比較(アルファベット順とか)。CStringListにソートして格納例
CompareStringという関数がある。
CString input_string = "..."; // アルファベット順にソートして格納 POSITION tmp_pos = output_cstringlist.GetHeadPosition(); while( tmp_pos ){ POSITION bk_tmp_pos = tmp_pos; CString tmp_cstring = output_cstringlist.GetNext(tmp_pos); if( CSTR_GREATER_THAN == CompareString(LOCALE_SYSTEM_DEFAULT,NORM_IGNORECASE,tmp_cstring,tmp_cstring.GetLength(),input_string,input_string.GetLength()) ){ output_cstringlist.InsertBefore(bk_tmp_pos,fnm); tmp_pos = bk_tmp_pos; // AddTail()させないように break; } } if( tmp_pos == NULL ){ output_cstringlist.AddTail( fnm ); }
gcp(google cloud Platfome)で無料期間終わったの気づかずにいたら、なんかデータ死んでた
データは残るかと勝手に思い込んでたが、そうは問屋が卸さないようだ。
使用期限が切れる前にエクスポートが必要です。
無料トライアルが終わったら、どうなりますか?
無料トライアルの期間が終了すると、試用中に作成したリソースは停止されますが、30 日以内に有料アカウントにアップグレードすれば復元できます。
その 30 日以内であれば、Google 課金サポートに連絡して、Google GCP サービス(Compute Engine 以外)に保存されているデータをエクスポートできます。30 日が経過した場合は、アップグレードしてもデータやリソースを利用できなくなります。
注意: Compute Engine からデータを自動でエクスポートする方法はないため、無料トライアルが終了する前に、お客様の責任で、Compute Engine に保存されているデータをエクスポートしてください。
VS.NETでデバッグ・メッセージを出力する
Debug.WriteLine("")