日時も刻印してログファイルに出力するにはこんな感じ
import logging logging.basicConfig( level=logging.INFO, filename='log.txt', format="%(asctime)s %(levelname)s %(message)s") logging.info('なにかしら情報')
日時も刻印してログファイルに出力するにはこんな感じ
import logging logging.basicConfig( level=logging.INFO, filename='log.txt', format="%(asctime)s %(levelname)s %(message)s") logging.info('なにかしら情報')
import time time.sleep(秒数)
import datetime # datetimeモジュールのインポート ... # today()メソッドで現在日付・時刻のdatetime型データの変数を取得 d = datetime.datetime.utcnow() + datetime.timedelta(hours=9) print(d.strftime("%x %X")) # 日付と時刻に対応する文字列
#!/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))
エイリアス書き換え
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"を選択
新規ファイル作成
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
自宅環境:ドコモ光(ぷらら)
モデム:PR-500MI
家庭内LAN:google wifi x2台
事前共有鍵をメモ&確認くんでWAN側IPもメモ、Windows側にVPN接続設定する
まずリモートデスクトップ接続したいPCのDHCP IP予約する
設定>ネットワークの詳細設定>DHCP IP予約
続いてポート転送
設定>ネットワークの詳細設定>ポート転送
TCP & UDPの3389ポートを転送するように設定する
クライアントPCでVPN接続したら、
google wifi アプリの
設定>ネットワークの詳細設定>WAN にあるIPにリモートデスクトップ接続。
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 ); }