最近,私はテレグラムグループユーザーからいくつかのプライベートメッセージを受け取った. 彼らは参照のために新しい株の戦略を購読するデザインの例を希望しています. 時々,彼らは交換が新しい通貨に着陸すると新しい株を購読したいです. だから,この記事では,私たちは新しい株の戦略を購読するための簡単なツールを開発します.
たとえば,現在,取引所と取引ペア: XXX_USDTは,まだ取引所でリストされていない.しかし,それはすぐにリストされます.私たちはプログラムでこの取引所のXXX_USDT市場をフォローする必要があります.取引ペアがリストされると,それは取引することができます.私たちは10の限定価格の購入オーダーを発行し,金額を指定し,新しい通貨を購読するオーダーをリストします.あなたがそれらを成功して購入できれば,あなたはタスクを完了することができます.そうでなければ,すべてのオーダーが閉鎖されるまでリストすることができます.そしてあなたは通貨を購入することができます.
デジタル通貨市場でのプログラミングの基礎がない人は 始められないかもしれませんので 導入を始めましょう
戦略パラメータの定義:
命令の配達などの操作を制御するために 7つのパラメータを定義します
コード実装:
function pendingOrders(ordersNum, price, amount, deltaPrice, deltaAmount) {
var routineOrders = []
var ordersIDs = []
for (var i = 0 ; i < ordersNum ; i++) {
var routine = exchange.Go("Buy", price + i * deltaPrice, amount + i * deltaAmount)
routineOrders.push(routine)
Sleep(ApiReqInterval)
}
for (var i = 0 ; i < routineOrders.length ; i++) {
var orderId = routineOrders[i].wait()
if (orderId) {
ordersIDs.push(orderId)
Log("placed an order successfully", orderId)
}
}
return ordersIDs
}
function main() {
if (symbol == "null" || pendingPrice == -1 || pendingAmount == -1 || pendingPrice == -1 || deltaPrice == -1 || deltaAmount == -1) {
throw "Parameter setting error"
}
exchange.SetCurrency(symbol)
// Block error messages
SetErrorFilter("GetDepth")
while (true) {
var msg = ""
var depth = exchange.GetDepth()
if (!depth || (depth.Bids.length == 0 && depth.Asks.length == 0)) {
// No depth
msg = "No depth data, wait!"
Sleep(500)
} else {
// Obtain depth
Log("Place orders concurrently!")
var ordersIDs = pendingOrders(ordersNum, pendingPrice, pendingAmount, deltaPrice, deltaAmount)
while (true) {
var orders = _C(exchange.GetOrders)
if (orders.length == 0) {
Log("The current number of pending orders is 0, and the operation is stopped")
return
}
var tbl = {
type: "table",
title: "The current pending orders",
cols: ["id", "price", "amount"],
rows: []
}
_.each(orders, function(order) {
tbl.rows.push([order.Id, order.Price, order.Amount])
})
LogStatus(_D(), "\n`" + JSON.stringify(tbl) + "`")
Sleep(500)
}
}
LogStatus(_D(), msg)
}
}
戦略は交換APIとオーダーブックインターフェースをチェックします.注文簿データを入手できれば,戦略は交換.Go関数を使って同時注文をします.注文が実行された後,現在の待機中の注文のステータスは円形でチェックされます.戦略は実際にテストされていません.ここはコードデザインの参照だけです.興味がある場合は,変更または関数を追加することができます.