見出し画像

ブラウザだけで自動売買botを動かす~告知編~

今までいくつかのbot記事を書いてきましたがプログラムのコードを動かす
ための手段がわからなかったり、記載どおりに環境を構築してもうまく動かない等の問題があると思います。

それでも自動売買を動かしたいという方は多いと思います。

今回はそんな方でもブラウザページを開くだけで自動売買が開始できるようにプログラムを準備中です!

まだ準備段階ですが、少しどんな感じで動くか理解していただくためにデータ取得のコードだけ公開します。

動作確認のための準備は簡単です。
テキストエディタ等で下に公開したコードを張り付けて拡張子をHTML(ファイル名.html)に保存した後にそのファイルをChrome等のブラウザで開いてください。

このような画面が表示されTrade、Instrument、TraderBin1mのデータがどんどん更新されていくはずです。

これは画面起動時にBitMEXのWebscketに接続し、最新のデータが送信されてきたら表示を更新するといったプログラムになっています。

まだ作成中ですが手法は

これと同じにしようと思っています。

あとはUIを人間が理解しやすいように変更したり情報加工して気が向いたらチャート表示とチャート内にエントリーしたポイントと決裁したポイントを載せられれば良いなと思ってます。(デザインセンスが全くないので良い案があったらしえてほしいです・・・)

純粋なJavascriptはhash関数ついてないからAuth関連の処理が面倒くさいですね。

とりあえずデータ取得の部分だけでも動かして遊んでみてください。

閲覧ありがとうございました。
少しでも「イイネ」と思っていただけら「スキ」ボタンを押していただけるとありがたいです。

最後にコードを公開します。

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<style type="text/css">
	textarea {
		display: block;
		width: 98%;
		height: 100px;
		margin: 10px auto;
		resize: none;
	}
</style>
<body>
	<label>Trade</label>
	<textarea id='trade'></textarea>
	<label>Instrument</label>
	<textarea id='instrument'></textarea>
	<label>TradeBin1m</label>
	<textarea id='tradeBin1m'></textarea>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
	<script type="text/javascript">
// 接続先URI
var uri = "wss://www.bitmex.com/realtime";
// WebSocketオブジェクト
var webSocket = null;
// send command
var CMD_FLG = true; 
var order_book = '{"op": "subscribe", "args": ["trade:XBTUSD","instrument:XBTUSD","tradeBin1m:XBTUSD"]}';

// ws open
$(function(){
	ws.open();
})

var ws = {
	open: function() {
		if (webSocket == null) {
			webSocket = new WebSocket(uri);
			webSocket.onmessage = this.get;
		}
	},
	send_cmmand: function() {
		webSocket.send(order_book);
	},
	get: function(event) {
		var json = JSON.parse(event.data);
		// console.log(json);
		if(CMD_FLG){
			CMD_FLG = false;
			ws.send_cmmand();
		}

		if(json && json.table){
			var datas = JSON.stringify(json.data);
			switch(json.table){
				case "trade":
					$("#trade").val(datas);
					break;
				case "instrument":
					$("#instrument").val(datas);
					break;
				case "tradeBin1m":
					$("#tradeBin1m").val(datas);
					break;
			}
		}
	}
}
	</script>
</body>
</html>


以上、ありがとうございました。

プログラムのことに関しては言語問わず対応できます。主にこれからプログラムを覚えていきたい+仮想通貨で自動売買をしたい人向けに記事を書いていきます。